摘要:本文内容是讲述用小熊派开发板模拟自动售货机,基于论坛提供的工程代码,通过云端开发和设备终端开发,实现终端数据在的华为云平台显示。

本文内容是讲述用小熊派开发板模拟自动售货机,基于论坛提供的工程代码,通过云端开发和设备终端开发,实现终端数据在的华为云平台显示。通过实际操作和学习,提升了华为云应用能力和物联网相关技能。本文也适用于IoT物联网开发全栈成长计划,第三阶段学习交流用。感谢大家批评指正!

实验资源

云平台:华为云物联网设备接入服务

通信协议:mqtt

通信方式:WiFi

开发环境:VSCode

工程代码:Huawei_LiteOS_Lab_AIoT 下载链接:https://bbs.huaweicloud.com/blogs/174611

模型文件:AIoT123_Model 下载链接:https://bbs.huaweicloud.com/blogs/174611

模拟设备:小熊派开发板(stm32)

实验步骤

一.云端开发

前提:注册华为云,并且通过实名认证

  • 创建产品

华为云⇒物联网⇒设备接入IoTDA

产品⇒创建产品 ,如下图所示:

如下图所示:

所属资源空间:随便选一个

产品名称(自定义):AIOT

协议类型:MQTT

数据格式:JSON

厂商名称(自定义):123

设备类型(自定义):123

  • 添加模型

打开刚才创建的产品⇒上传模型文件。如下图所示:

选择本地下载好的AIoT123_Model.zip文件(下载链接请看本文开始)⇒点击确定

会显示上传成功⇒点击确认。如下图所示:

  • 增加设备

点击设备⇒注册设备

如下图所示:

所属资源空间:与产品的选择保持一致。

所属产品(刚才创建):AIOT。

设备识别码(自定义):456789123。

设备名称(自定义):AIOT_123。

设备认证类型:密钥。

密钥(自定义),不要忘了设置密码,后边要用。

点击确认后,会提示设备创建成功,如下图所示。找个记事本把设备ID和密码保存起来待用。

二.终端开发

关于开发工具VSCode和IoTLink插件下载和安装, 请参考https://bbs.huaweicloud.com/forum/thread-83464-1-1.html

  • 导入工程

下载Huawei_LiteOS_Lab_AIoT工程文件(下载链接请看本文开始部分),解压。打开VSCode导入工程,如下图所示:

如下图所示:

工程目录:D:\iot\Huawei_LiteOS_Lab_AIoT\targets\STM32L431_BearPi

makefile:D:\iot\Huawei_LiteOS_Lab_AIoT\targets\STM32L431_BearPi\GCC,选择makefile文件

硬件平台:STM32L431

点击确定

  • 配置工程

修改Demos\oc_mqtt_demo\oc_mqtt_vending_machine.c文件,把云平台的设备ID和密码(之前在记事本保存好的),分别替换第98和第99的xxxxxx。

如下图所示:

修改wifi账号和密码,找一个附近常用可以上网的WiFi账号和密码。需要修改2处,第一处是.config文件。第二处是iot_config.h文件。如下图所示:

  • 编译工程

修改完文件后,保存一下。点击build,如下图所示:

  • 下载到开发板

连接好小熊派开发板,把AT开关拨到MCU端,点击Download。如下图所示:

如下图显示:下载成功后,显示屏上会显示商品名称。操作F1(选择)和F2(确定)按键,随便选择一个商品,然后选择Submit,F2下单。

三.云平台接收显示数据

华为云⇒物联网⇒设备接入IoTDA⇒设备,可以看到有数据上来了,如下图显示:

打开设备影子,可以查看详细数据,如下图所示:

本文分享自华为云社区《手把手教你_基于小熊派STM32开发板模拟自动售货机_连接华为云IOT物联网平台》,原文作者:mjj13 。

点击关注,第一时间了解华为云新鲜技术~

开发实践丨用小熊派STM32开发板模拟自动售货机的更多相关文章

  1. 小熊派IoT开发板系列教程正式发布——免费学习

    [摘要] 小熊派开源社区针对小熊派IoT开发板首次规划了小熊派未来的系列教程.从基础到进阶的设计,可适应具有不同基础的开发者,通过该系列教程的学习,开发者能够轻松掌握IoT产品的开发.该系列教程包括单 ...

  2. 小熊派4G开发板初体验

    开发板硬件资源介绍 前阵子小熊派发布了一款超高性价比的4G开发板(19.8元包邮),但是板子仅限量1000套.小熊派官方给我送了一块,我们一起来学习学习: 板子做得小巧精致,控制核心用的是移远的EC1 ...

  3. Android游戏开发实践(1)之NDK与JNI开发03

    Android游戏开发实践(1)之NDK与JNI开发03 前面已经分享了两篇有关Android平台NDK与JNI开发相关的内容.以下列举前面两篇的链接地址,感兴趣的可以再回顾下.那么,这篇继续这个小专 ...

  4. Android游戏开发实践(1)之NDK与JNI开发01

    Android游戏开发实践(1)之NDK与JNI开发01 NDK是Native Developement Kit的缩写,顾名思义,NDK是Google提供的一套原生Java代码与本地C/C++代码&q ...

  5. Android游戏开发实践(1)之NDK与JNI开发02

    Android游戏开发实践(1)之NDK与JNI开发02 承接上篇Android游戏开发实践(1)之NDK与JNI开发01分享完JNI的基础和简要开发流程之后,再来分享下在Android环境下的JNI ...

  6. Android游戏开发实践(1)之NDK与JNI开发04

    Android游戏开发实践(1)之NDK与JNI开发04 有了前面几篇NDK与JNI开发相关基础做铺垫,再来通过代码说明下这方面具体的操作以及一些重要的细节.那么,就继续NDK与JNI的学习总结. 作 ...

  7. 实践案例丨利用小熊派开发板获取土壤湿度传感器的ADC值

    摘要:一文带你用小熊派开发板动手做土壤湿度传感器. 一.实验准备 1.实验环境 一块stm32开发板(推荐使用小熊派),以及数据线 已经安装STM32CubeMX 已经安装KeilMDK,并导入stm ...

  8. WePY - 小程序敏捷开发实践丨掘金开发者大会

    声明:内容转载他处,如有侵权,可协商下架 本主题虽然在其它地方讲了很多次,但还是有非常多新内容.因为很多东西正在做或者想要做.本次分享主要分为以下几个部分: WePY 的介绍 WePY 的用户 上面展 ...

  9. 开发实践丨昇腾CANN的推理应用开发体验

    摘要:这是关于一次 Ascend 在线实验的记录,主要内容是通过网络模型加载.推理.结果输出的部署全流程展示,从而快速熟悉并掌握 ACL(Ascend Computing Language)基本开发流 ...

随机推荐

  1. tcp 接收被动关闭 fin

    void tcp_rcv_established(struct sock *sk, struct sk_buff *skb, const struct tcphdr *th, unsigned int ...

  2. linux命令查看日志

    首先介绍几个日志查看种常用的简单命令: 1.tail tail 命令可用于查看文件的内容,有一个常用的参数 -f 常用于查阅正在改变的日志文件. tail -f filename 会把 filenam ...

  3. 02 Filter过滤器

    Filter 一.Filter过滤器 Filter过滤器它是JavaWeb的三大组件之一.三大组件分别是:Servlet程序.Listener监听器.Filter过滤器 Filter过滤器是JavaE ...

  4. kettle练习

    Kettle实现,把数据从CSV文件复制到Excel文件. 首先,创建一个转换,找到核心对象,找到输入里面的CVS文件输入图元,拖拽到工作区域,双击CVS文件输入. 可以修改步骤的名称,点击浏览,选择 ...

  5. classmethod、staticclassmethod内置装饰器函数

    # method 英文是方法的意思 # classmethod 类方法 # 当一个类中的方法中只涉及操作类的静态属性时,此时在逻辑上,我们想要直接通过类名就可以调用这个方法去修改类的静态属性,此时可以 ...

  6. 图解HTTP简单笔记【上】

    第一章 了解WEB及网络基础(省略了TCP/IP的知识点) 1.1.使用HTTP协议访问web  当我们在主机的浏览器的地址输入URL之后 请求将回发送至目标服务器 目标服务器在接受到响应请求时将会响 ...

  7. C#设计模式-外观模式(Facade Pattern)

    引言 在软件测试中,一般都是在功能测试稳定的情况下再进行UI自动化测试.或者进行性能测试.如果一个一个进行太麻烦,此时可以使用对外提供一个简单接口,通过这个接口可以访问内部一群接口.例如进行UI自动化 ...

  8. php 缩略图封装的方法

    /** * PHP生成缩略图 * @param $basepath /原文件地址 * @param $des_w /缩略图的宽 * @param $des_h /缩略图的高 * @param $sty ...

  9. C++基础知识篇:C++ 修饰符类型

    C++ 允许在 char.int 和 double 数据类型前放置修饰符.修饰符用于改变基本类型的含义,所以它更能满足各种情境的需求. C/C++的学习裙[七一二 二八四 七零五 ],无论你是小白还是 ...

  10. java多态2

    1 package pet_2; 2 3 public class Pet { 4 private String name; 5 6 public String getName() { 7 retur ...