前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >AIoT应用创新大赛-基于TencentOS Tiny 的智慧灯

AIoT应用创新大赛-基于TencentOS Tiny 的智慧灯

原创
作者头像
百特曼
发布2022-03-15 08:54:21
6250
发布2022-03-15 08:54:21
举报
文章被收录于专栏:IOT开发板学习IOT开发板学习
视频内容

基于腾讯云的智能灯

一、总体设计

本次有幸参与2021 TencentOS Tiny AIoT应用创新大赛,智能灯基于腾讯云和恩智浦联合推出的TencentOS Tiny EVB_AIoT开发套件,使用数字型光强度传感器监测环境亮度,并传输至腾讯云物联网开发平台,同时利用腾讯连连通过微信远程控制灯。

二、硬件设计

系统基于TencentOS Tiny AIoT开发套件,核心板采用的RT1062处理器属于i.MX RT系列MCU,是由NXP推出的跨界处理器,跨界是指该系列MCU的定位既非传统的微控制器、也非传统的微处理器,i.MX RT系列MCU则综合了两者的优势,既具备高频率(最高主频600M)、高处理性能,也具备中断响应迅速、实时性高的特点。此外,板载Type-C接口CMSIS DAP仿真器。

bh1750传感器有接近视觉灵敏度的光谱灵敏度特性,它支持I2CBUS接口,支持1.8v逻辑输入接口。传感器有两种可选的I2Cslave地址,无需其他外部件。光源依赖性弱,受红外线影响很小。传感器通过降低功率功能,实现低电流化。通过50Hz/60Hz除光噪音功能实现稳定的测定,最小误差变动在±20%.

外设

接口

TencentOS Tiny AIoT引脚

ESP8266

UART

GPIO_AD_B0_12/GPIO_AD_B0_13

BH1750

IIC

GPIO_AD_B1_00/GPIO_AD_B1_01

LED

PIN

GPIO_B1_15

恩智浦的MCU针脚识别对于新手不够友好,好在其MCUXpresso IDE提供了个有意思的模块PINS,可以比较方便的配置针脚,配置好以后选择点击“更新源代码”,生成的代码保存在pin_mux.c和pin_mux.h文件中。

三、软件实现

软件设计较简单,bh1750在Tiny的BSP中可以找到驱动程序bh1750_i2c_drv.c。通过TencentOS tiny 提供的丰富的物联网组件(选择了MQTT),快速接入腾讯云物联网平台IoT Explorer,通过注册MQTT事件,并且在订阅事件的回调函数中完成云端下发事件的处理。

上报数据代码:

while (1) {

bh1750_start(ONCE_H_MODE);

bh1750_read_lux(&lux);

memset(&msg, 0, sizeof(msg));

snprintf(report_buf, sizeof(report_buf), REPORT_DATA_TEMPLATE, lux);

msg.payload = (void *) report_buf;

error = mqtt_publish(client, "$thing/up/property/EXAMPLE/dev001", &msg);

MQTT_LOG_D("mqtt publish error is %#0x", error);

}

接受灯光控制处理代码:

cjson_root = cJSON_Parse((char*)msg->message->payload);

if (cjson_root == NULL) {

printf("report reply message parser fail\r\n");

event_flag = report_fail;

goto exit;

}

cjson_method = cJSON_GetObjectItem(cjson_root, "method");

method = cJSON_GetStringValue(cjson_method);

if (cjson_method == NULL || method == NULL) {

printf("report reply status parser fail\r\n");

event_flag = report_fail;

goto exit;

}

if (strstr(method, "control")) {

cjson_params = cJSON_GetObjectItem(cjson_root, "params");

cjson_switch = cJSON_GetObjectItem(cjson_params, "power_switch");

if (cjson_params == NULL || cjson_switch == NULL) {

printf("control data parser fail\r\n");

cJSON_Delete(cjson_root);

return;

}

//control LED

power_switch = cjson_switch->valueint;

if (power_switch == 0) {

GPIO_PinWrite(GPIO2, 31, 0);

} else if (power_switch == 1) {

GPIO_PinWrite(GPIO2, 31, 1);

}

cJSON_Delete(cjson_root);

return;

}

MQTT接入的用户名密码信息需要一个python脚本生成,需要到github上下载mqtt_config_gen.py,执行脚本生成后更新源码的MQTT接入信息。

编译代码生成开发板固件:

四、腾讯云端(IoT Explorer)配置

端侧处理完毕后,接下来需要在腾讯云端(IoT Explorer)创建产品和设备,主要包括产品开发中的物模型建立,一个亮度用于上传云端环境亮度,一个开关用户云端控制LED。

随后在“产品开发”的“设备调试”页面中,使用微信的腾讯连连扫描产品二维码,接入通讯连连。

五、实际运行

(一)端侧log。通过DAP将固件烧入开发板,接上串口软件,波特率设置115200,可以看到MQTT连接成功的日志,如果WIFI和MQTT密码信息正确的话。

(二)云端调试。利用IoT Explorer的功能对系统进行调式。

包括历史上报数据统计。

(三)总体运行效果

(三)腾讯连连控制。

最后感谢腾讯公司的2021 TencentOS Tiny AIoT应用创新大赛。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、总体设计
  • 本次有幸参与2021 TencentOS Tiny AIoT应用创新大赛,智能灯基于腾讯云和恩智浦联合推出的TencentOS Tiny EVB_AIoT开发套件,使用数字型光强度传感器监测环境亮度,并传输至腾讯云物联网开发平台,同时利用腾讯连连通过微信远程控制灯。
  • 系统基于TencentOS Tiny AIoT开发套件,核心板采用的RT1062处理器属于i.MX RT系列MCU,是由NXP推出的跨界处理器,跨界是指该系列MCU的定位既非传统的微控制器、也非传统的微处理器,i.MX RT系列MCU则综合了两者的优势,既具备高频率(最高主频600M)、高处理性能,也具备中断响应迅速、实时性高的特点。此外,板载Type-C接口CMSIS DAP仿真器。
  • bh1750传感器有接近视觉灵敏度的光谱灵敏度特性,它支持I2CBUS接口,支持1.8v逻辑输入接口。传感器有两种可选的I2Cslave地址,无需其他外部件。光源依赖性弱,受红外线影响很小。传感器通过降低功率功能,实现低电流化。通过50Hz/60Hz除光噪音功能实现稳定的测定,最小误差变动在±20%.
  • 恩智浦的MCU针脚识别对于新手不够友好,好在其MCUXpresso IDE提供了个有意思的模块PINS,可以比较方便的配置针脚,配置好以后选择点击“更新源代码”,生成的代码保存在pin_mux.c和pin_mux.h文件中。
  • 软件设计较简单,bh1750在Tiny的BSP中可以找到驱动程序bh1750_i2c_drv.c。通过TencentOS tiny 提供的丰富的物联网组件(选择了MQTT),快速接入腾讯云物联网平台IoT Explorer,通过注册MQTT事件,并且在订阅事件的回调函数中完成云端下发事件的处理。
  • 上报数据代码:
  • 编译代码生成开发板固件:
  • 四、腾讯云端(IoT Explorer)配置
  • 随后在“产品开发”的“设备调试”页面中,使用微信的腾讯连连扫描产品二维码,接入通讯连连。
  • 五、实际运行
  • (一)端侧log。通过DAP将固件烧入开发板,接上串口软件,波特率设置115200,可以看到MQTT连接成功的日志,如果WIFI和MQTT密码信息正确的话。
  • (二)云端调试。利用IoT Explorer的功能对系统进行调式。
  • 包括历史上报数据统计。
  • (三)总体运行效果
  • (三)腾讯连连控制。
  • 最后感谢腾讯公司的2021 TencentOS Tiny AIoT应用创新大赛。
相关产品与服务
TencentOS Server
TencentOS Server 是腾讯云推出的 Linux 操作系统,它旨在为云上运行的应用程序提供稳定、安全和高性能的执行环境。它可以运行在腾讯云 CVM 全规格实例上,包括黑石物理服务器2.0。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档