物联网应用开发--STM32与机智云通信(ESP8266 Wi-Fi+手机APP+LED+蜂鸣器+SHT20温湿度传感器)
实现目标
1、熟悉机智云平台,会下载APP
2、熟悉新云平台创建产品,项目虚拟调试
3、掌握云平台生成MCU代码,并移植。机智云透传固件的下载
4、具体目标:(1)注册机智云平台;(2)下载手机APP,并学会使用;(3)新建一个联网方案为WIFI的项目;(3)云平台生成STM32F103代码,并移植到开发板。下载机智云固件;(4)手机、云平台,开发板互联,能够控制LED、蜂鸣器,温湿度传感器数据数据能够上传。
一、机智云概述
广州机智云物联网科技有限公司旗下品牌,全球领先的智能IoT开发及云服务平台,国内首个物联网自助开发平台。
截至2023年6月,机智云智能IoT开发及云服务平台累计拥有超过35万开发者,连接超过3000万设备,服务超过20000家企业,覆盖200+个国家和地区
二、下载手机APP
APP下载网址:https://devdocs.gizwits.com/download.html#166419072635445 亦可以扫右边的二维码下载安装。
说明:如果下载的最新版本使用不了,可以下载旧一点的版本安装。
三、机智云开发者中心使用
3.1 云平台注册
注册网址:https://dev.gizwits.com/zh-cn/developer/intro
3.2 创建新产品
(1)注册—>登录—>打开开发者中心—>点击创建
(2)照明—>球泡灯—>自定义方案—>灯
(3)产品名称:智能家居控制系统;类型:单品(WI-FI);数据传输方式:变长;功耗:正常 。设置好后点击“创建”。
(4)点击“去编辑” 添加标准数据点 可写:BEEP, LED1,LED2,LED3,LED4 布尔型 等共四个; 只读:temp,hum 数值型:(0-100),分辨率 :1 等共2个;
3.3 用虚拟设备调试产品
(1)打开机智云手机APP,登录界面点击“跳过”;打开云平台开发界面左侧“虚拟设备”;用手机APP扫描云平台左上角的二维码“扫码绑定虚拟设备”。现在可以虚拟调试设备了。
说明:设置数据后,可以点击“上报”,在手机APP端就能看到对应的信息。
3.4 生成MCU代码并下载
打开MCU开发,选择独立MCU方案,选择MCU平台为STM32F103C8x,复制PS并粘贴,点击生成代码包,再下载。
四、硬件连接
1、开发板ESP8266模块原理图
说明:P7为USART1、USART2和WIFI功能短接端子。本实验中,用两个跳接帽分别接上P7(3与5)、P7(4与6)。我们通过PC串口助手、USB转串口(CH340)给WIFI模块烧写固件。
五、AT固件烧录
打开 PC 端的flash_download_tool软件,选择ESP8266 DownloadTool,选择待烧录的机智云固件 GAgent_00ESP826_04020025_32Mbit_201708301927_combine.bin 文件,并设置好 bin 文件烧录至芯片的地址信息和其他的一些信息。
软件和固件下载地址:https://download.csdn.net/download/luojuan198780/89336791
烧写步骤:
1、先按住开发板上KIO0和WRST两个按键,再点击软件左下方的“START”按钮,再依次松开WRST、KIO0两个按键。
2、验证 打开串口助手,串口参数:115200,1,8,无
如果固件下载成功,串口助手上会打印机智云心跳信息,如下图所示:
六、STM32CubeMX配置
6.1 STM32CubeMX上修改管脚
将KEY1:PB10 改为 PB11 , KEY2:PA8 改为PB10 ,输入模式。以适配开发板,见6.2图。
6.2 添加4个LED,1个蜂鸣器
(1)添加LED1-LED4(PB9,PB8,PB5,PB4),初始电平为高电平;(2)添加BEEP(PC13),初始电平为低电平。
6.3 I2C(SHT20温湿度传感器)
机智云工程采样硬件I2C ,初始化时卡死,改采用模拟I2C,PB6-SCL PB7-SDA .两个管脚设置为开漏输出。
6.4 生成代码设置
默认配置说明:(1)USART1用于调试打印;(2)USART2用于与ESP8266 透传模块通信(波特率9600);(3)采用外部晶振,系统时钟72MHz;(4)原版还开启了ST-LINK下载。
七、程序设计
7.1 机智云下行控制
(1)打开gizwits_product.c 文件中 gizwitsEventProcess 函数,编写LED和蜂鸣器的控制逻辑。以LED1为例,其它LED2-LED4、BEEP 类似。
if(0x01 == currentDataPoint.valueLED1)
{
HAL_GPIO_WritePin(GPIOB, LED1_Pin, GPIO_PIN_RESET);//打开LED1
}
else
{
HAL_GPIO_WritePin(GPIOB, LED1_Pin, GPIO_PIN_SET);//关闭LED1
}
7.2 传感器数据上行上传
7.3.1 移植模拟SHT20 驱动(HAL版本)至工程
(1)将sht20.c 、sht20.h 两个文件复制到工程...\Hal 目录下
SHT20驱动文件下载地址:https://download.csdn.net/download/luojuan198780/89345453
(2)点击添加 sht20.c 文件至工程
(3)添加sht20.h头文件至gizwits_product.c文件头部,定义两个变量。
#include "sht20.h"
float tm,rh;
(4)在gizwits_product.c文件 userHandle(void)函数中编写数据上传程序
void userHandle(void)
{
static uint32_t thLastTimer = 0;
if((gizGetTimerCount() - thLastTimer) > 1000)
{
SHT20_GetValue(&tm,&rh);
printf("SHT20_tem:%.1f℃\r\n",tm);
printf("SHT20_hum:%.1f%%\r\n",rh);
currentDataPoint.valuetemp = tm;//Add Sensor Data Collection
currentDataPoint.valuehum = rh;//Add Sensor Data Collection
thLastTimer = gizGetTimerCount();
}
}
八、项目调试
8.1 串口打印调试信息
长按K2,学会让WIFI处于Airlink 模式,确保在这个模式下手机、开发板互联才会成功。
8.2 网络配置
(1)先提供一个可用的wifi给开发板和装有机智云APP的手机,让手机连上此WIFI。
(2)给开发板上电。再打开手机”机智云”APP,完成以下操作:
(3)输入提供的WiFi名称及密码,选着WIFI模组的厂家
(3)在点击“我已完成上述操作”之前,长按开发板K2按键2秒左右,让WiFi模块进入AirLink 模式。
(4)显示黄色创建的设备,则识别成功,可以点击进行进行控制操作或查看上传数据。
总结
原文地址:https://blog.csdn.net/luojuan198780/article/details/139102383
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!