开放原子训练营(第四季)TobudOS——点灯大师,远程点灯!

开放原子训练营(第四季)TobudOS——点灯大师,远程点灯!

最近参加开放原子训练营(第四季)的活动, 现场入手了个新玩具。铛~ 铛~ 铛~主角出场: EVB_AIoT开发板
在这里插入图片描述
EVB_AIoT开发板,主控STM32H750HBX6,是基于ARM® Cortex®-M7内核的STM32H7系列高性能MCU。
在这里插入图片描述
在这里插入图片描述

功能参数
主控STM32H750HBX6
内存内置1MB RAM+外置32M SDRAM
存储内置128K Flash+外置64M QSPI+128M SPI Flash
调试板载ST-Link V2一线式开发(支持拖拽下载、串口调试、仿真下载)
摄像头支持24P DVP摄像头,最高像素支持到500万像素
显示板载HDMI驱动芯片,支持HDMI输出(720P)、支持RGB888接口输出
通信支持WAN_Interface、支持PCI-E接口模组

更多关于STM32H7系列的资料,请看这里:
https://www.st.com/zh/microcontrollers-microprocessors/stm32h750xb.html
还有这里:
https://www.stmcu.com.cn/Product/pro_detail/STM32H7/product

开发背景

最近迷恋上了“沾花惹草”,用这个板子给家里的花花草草做个盆栽植物滴灌系统也不错哦:可以用手机在全球各个角落随时远程查看家中小花小草们的喜人长势、查看当地的天气情况、花盆里的土壤温湿度,以及远程给小花小草们补给“甘露”、滋养小花小草们的小身心。但是,理想很丰满,往往现实很骨感;千里之行,常常还是得始于足下!

好吧,来,先让我这个“点灯大师”远程用它点亮第一盏小灯吧!
大师掐指一算:远程点亮第一盏小灯,得分为三步。

  • 第一步:搭建MQTT
  • 第二步:编写程序:点亮小灯
  • 第三步:微信小程序:远程操控

好了,下面让我们一步一步来实现吧~~

第一步:搭建MQTT 配置MQTT

搭建MQTT…嗯,好多琐碎要做哎,太麻烦了!算了,偷个懒吧,MQTT不要自己搭建啦,直接选用线上的免费资源吧!比如,腾讯云物联网开发平台

1. 登录腾讯云

当然,要登录腾讯云,首先我们要有一个腾讯云的账号!个人微信就可以注册哦~

微信注册好账号后,微信扫一扫、手机授权就可以登录了。

腾讯云:https://cloud.tencent.com/
在这里插入图片描述
微信扫一扫登录
在这里插入图片描述
扫描成功后
在这里插入图片描述
手机微信上,点击授权登录
在这里插入图片描述

2.进入物联网开发平台

登录腾讯云后,选择进入物联网开发平台

右上角点击进入“控制台”,搜索“物联网开发平台”,可以快速抵达。
链接地址: https://console.cloud.tencent.com/iotexplorer
在这里插入图片描述
注意: 从2023年9月8日起,物联网开发平台公共实例免费设备注册数由50个调整为10个了。 对于已在公共实例创建超过10个设备的用户,可继续使用超出部分设备,但不能再新建设备;若用户业务需要超过10个设备数需求,就需要购买企业实例或购买公共实例激活码了。

3. 新增实例

点击下方的蓝色按钮“新增实例”,新增一个实例。

成功新增实例后,会在“新增实例”按钮下面看到咱们自己新增的实例信息。
在这里插入图片描述
点击新增的"公共实例"部分,可以查看所有的项目列表。我这里只有一个我自己之前建立好的自定义项目: AIoT开发板测试
在这里插入图片描述
点击项目名称“AIoT开发板测试”, 可以查看该项目下的所有产品列表。本示例中只有一个产品:“测试demo”.
在这里插入图片描述

1). 物模型

物模型
物模型json文件:

{
  "version": "1.0",
  "properties": [
    {
      "id": "power_switch",
      "name": "电灯开关",
      "desc": "控制电灯开灭",
      "required": true,
      "mode": "rw",
      "define": {
        "type": "bool",
        "mapping": {
          "0": "关",
          "1": "开"
        }
      }
    },
    {
      "id": "lum",
      "name": "光传感器",
      "desc": "上报现场光传感器数据",
      "mode": "r",
      "define": {
        "type": "int",
        "min": "0",
        "max": "9999",
        "start": "0",
        "step": "5",
        "unit": "lm"
      },
      "required": false
    }
  ],
  "events": [],
  "actions": [],
  "profile": {
    "ProductId": "你自己的产品ID",
    "CategoryId": "3"
  }
}

第2、3的步骤,可以使用默认,点击“下一步”、“下一步”完成。

2). 设备开发

在这里插入图片描述

3). 交互开发

在这里插入图片描述

4). 设备调试

在这里插入图片描述

4. 生成mqtt信息

1) 获取云端设备的信息

新增实例完成后,获取云端设备的产品 ID、设备名称、设备密钥。

2) 下载 python 脚本

Python 脚本: https://github.com/OpenAtomFoundation/TencentOS-tiny/blob/master/tools/mqtt_config_gen.py

3) 生成 mqtt 信息。

用PythonIDE(我这里用的是PyCharm)打开Python脚本mqtt_config_gen.py, 使用 python 脚本会生成 mqtt 用户名 密码等信息,同时还生成 mqtt_config.h、mqtt_connect_demo.c 文件。

这些文件稍后会用到哦~~
在这里插入图片描述
在这里插入图片描述
mqtt_config.h
在这里插入图片描述

mqtt_connect_demo.c
在这里插入图片描述

第二步:编写程序:点亮小灯

1. 获取代码

获取EVB_AIoT开发板对应的mqtt代码: mqttclient_iot_explorer

GitHub地址https://github.com/OpenAtomFoundation/TobudOS/blob/master/doc/30.TencentOS_Tiny_EVB_AIoT_QuickStart.md
在这里插入图片描述
也可以参考以下资料哦。
开放原子代码仓https://atomgit.com/OpenAtomFoundation/TobudOS

训练营参考代码https://atomgit.com/tobudos/DeveloperTrainingCamp2023

训练营实验手册: https://atomgit.com/OpenAtomFoundation/TobudOS/blob/master/doc/TobudOS_EVB_AIoT_STM32_Guide.md

诚意满满,附上截图~~
开放原子代码仓
在这里插入图片描述
训练营参考代码
在这里插入图片描述
训练营实验手册
在这里插入图片描述

2. 修改代码

1) 打开项目

用Keil uVision(建议5以上的版本)创建个stm32项目,然后打开下载好的mqtt的项目文件
在这里插入图片描述

2) 打开mqttclient_iot_explorer.c

需要修改的文件是mqttclient_iot_explorer.c.
在这里插入图片描述

3)修改 mqttclient_task 函数

打开mqttclient_iot_explorer.c后, 根据之前生成的 mqtt 客户端信息,修改 mqttclient_task 函数。

需要修改的内容如下:

  • 引入 mqtt_config.h
  • 复制 mqtt_connect_demo.c 代码到 mqttclient_task 函数对应部分
    在这里插入图片描述

3. 编译工程(构建项目)

点击按钮,编译工程(或者构建项目)。
在这里插入图片描述

4. 烧录代码

编译工程不报错,就可以连接板子、烧录代码了。
在这里插入图片描述

5. 连接腾讯云

返回腾讯云物联网开发平台, 查看设备状态。此时,设备dev01(板载小灯)显示为:“在线”。
在这里插入图片描述
设备(板载小灯)连接成功。

第三步:微信小程序:远程操控

要用微信小程序实现Wi-Fi远程操控,又不想自己写微信小程序怎么办?我们可以用“腾讯连连”呀!

1. 打开“腾讯连连”

首先,用手机在微信搜索小程序“腾讯连连”。
在这里插入图片描述

2. 添加家庭

进入微信小程序“腾讯连连”后,点击【我的】–>【家庭管理】,添加一个我们自己喜欢的名称即可。这里我取的名字是:Jojo的小窝。

3. 添加设备

返回【首页】,点击底部中间的“加号”图标:添加设备。

添加设备,我们这里用“扫一扫”。扫描线上设备的二维码,进行设备添加。
在这里插入图片描述
** 腾讯云-物联网开发平台**
在这里插入图片描述

4. Wi-Fi远程操控

设备添加成功后,如图所示,可在“腾讯连连”的微信小程序中看到我们自己的设备(板载小灯)。
在这里插入图片描述

点击我的设备,进入开灯、关灯的界面。按钮左右滑动,可以实现远程开灯,关灯。
在这里插入图片描述
在这里插入图片描述

实验成功:手机通过Wi-Fi远程点亮小灯

点亮小灯、关灭小灯。
(温湿度传感器还没连接,微信小程序下方暂时没有温湿度相关数据。)
在这里插入图片描述


参考资料汇总

开发板技术参数

EVB_AIoT开发板技术参数
在这里插入图片描述

参考代码

开放原子代码仓https://atomgit.com/OpenAtomFoundation/TobudOS

训练营参考代码https://atomgit.com/tobudos/DeveloperTrainingCamp2023

训练营实验手册: https://atomgit.com/OpenAtomFoundation/TobudOS/blob/master/doc/TobudOS_EVB_AIoT_STM32_Guide.md

GitHub参考代码
https://github.com/OpenAtomFoundation/TobudOS/blob/master/doc/30.TencentOS_Tiny_EVB_AIoT_QuickStart.md

“快来围观,这里有不少给咱们小白们准备的好东东( examples )! ”
在这里插入图片描述
针对不同的板子,还有不同的参考代码。我这个“点灯”项目, 这次用的板子是EVB_AIoT, mqtt client的代码参考的是这部分。在这里插入图片描述

SDK文档

腾讯物联网终端操作系统 - 产品文档
https://cloud.tencent.com/document/product/1098/36330
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值