自学内容网 自学内容网

物联网应用开发--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)!