机智云代码工程移植/采集数据上发/控制数据下拉/配置入网

发布时间:2024-03-20  

前言

本项目主要通过使用STM32F103C8T6作为主控MCU,ESP8266作为数据透传模块,接入机智云AIoT云平台,通过在线智能产品,实现了远程联网、温湿度监测、APP控制等功能。


上文介绍了“创建云端产品,烧录Gagent”,“DHT11驱动的编写”。本文主要介绍,机智云代码工程移植、采集数据上发、控制数据下拉、配置入网。


机智云代码工程移植

前面我们有说到,在机智云平台创建产品完成后,生成了一个 MCU 的工程,这个工程是 CubeMX 所创建的,为了保持一致性,我们选择使用 HAL 库进行开发。


1、创建一个新的 CubeMX 工程。

芯片选型为:STM32F103RCTx


2、配置相关外设

2.1 SYS 配置为 SWD 调试

b78feeaa-c55c-11ec-bce3-dac502259ad0.png


2.2 使能外部高速时钟,并配置为外部晶振

b7ade892-c55c-11ec-bce3-dac502259ad0.png


2.3 配置 TIM3 相关参数,机智云的通信协议中会用到

b7c89930-c55c-11ec-bce3-dac502259ad0.png


2.4 配置 TIM2 相关参数,用于实现 us 级的延时

b7e5981e-c55c-11ec-bce3-dac502259ad0.png


2.5 配置 USART1,用在 PC 端打印信息

b7fdc7ae-c55c-11ec-bce3-dac502259ad0.png


2.6 配置 USART2,用于连接 ESP-8266

b8193b56-c55c-11ec-bce3-dac502259ad0.png


2.6 配置所用到的 IO 口

两个按键

  • 两个按键的公共端配置为 推挽输出模式、低电平且下拉

  • 两个按键的自由端配置为 输入模式、上拉


DHT11 DATA 引脚

  • 配置为 推挽输出模式、高电平且上拉


LED 灯

  • 配置为 推挽输出模式、低电平

b8353202-c55c-11ec-bce3-dac502259ad0.png


2.7 配置时钟树

输入频率根据板子上的晶振频率填写,我们现在是 8 MHz。接着锁相环进行 9 倍频,使 AHB、APB1、APB2 桥的频率达到最高。

b859ef2a-c55c-11ec-bce3-dac502259ad0.png


2.8 自动生成 CubeMX 工程

最好对下面的选项进行勾选。

b8789a4c-c55c-11ec-bce3-dac502259ad0.png


3、将机智云平台生成的协议 demo 移植进入自己的工程

打开机智云工程文件夹,将其中的 Gizwits、Hal、Utils 文件夹复制到自己的工程文件夹中。

b8970a90-c55c-11ec-bce3-dac502259ad0.png


在 Keil 中将复制的所有文件导入工程

b8aec342-c55c-11ec-bce3-dac502259ad0.png

b8cf3dfc-c55c-11ec-bce3-dac502259ad0.png


修改 hal_key.c 中的初始化

语句中对应的IO 口和引脚号改为自己配置好的

b8f6485c-c55c-11ec-bce3-dac502259ad0.png

完成上述步骤后,工程移植成功。


采集数据的上发


voidgizwitsHandle(dataPoint_t*dataPoint)

参数 dataPoint [in]:用户设备数据点。

该函数中完成了相应协议数据的处理即数据上报的等相关操作。

自定义相关代码如下:







void userHandle(void){  DHT11_Read_Data(&temperature, &humidity); currentDataPoint.valuetemperature = temperature;//Add Sensor Data Collection  currentDataPoint.valuehumidity = humidity;//Add Sensor Data Collection}

控制数据的下拉


int8_tgizwitsEventProcess(eventInfo_t*info,uint8_t*gizdata,uint32_tlen)
  • 参数 info [in]:事件队列

  • 参数 data [in]:数据

  • 参数 len [in]:数据长度

用户数据处理函数,包括wifi状态更新事件和控制事件。

自定义相关代码如下:















case EVENT_LED:  currentDataPoint.valueLED = dataPointPtr->valueLED;  GIZWITS_LOG("Evt: EVENT_LED %d 
", currentDataPoint.valueLED);if(0x01 == currentDataPoint.valueLED)  {//user handle    PCout(15) = 1; // led灯亮  }else  {//user handle      PCout(15) = 0; // led灯灭  }break;


ESP8266配置入网

有两种配网的方式:airlink、softap。

这里我们选用 softap 模式进行配网。


步骤如下:

1、板子上电后,短按 按键2 进入 softap 模式

如果想要查询是否处于 softap 模式,可以将串口连接至 PC,查看打印出的相关信息。


2、进入机智云 APP 中选择 热点配置

填写要连接的路由器的账号和密码,以及ESP-8266发出的 WIFI 名前缀和密码。

b90f0d7e-c55c-11ec-bce3-dac502259ad0.jpg


3、选择乐鑫模组

b92db026-c55c-11ec-bce3-dac502259ad0.jpg


4、按照提示,连接前缀为 XPG-GAgent- 的热点信号

b9496ff0-c55c-11ec-bce3-dac502259ad0.png


5、等待几秒钟时间

b9731e04-c55c-11ec-bce3-dac502259ad0.jpg


6、连接成功

b98cfb3a-c55c-11ec-bce3-dac502259ad0.jpg


至此,即完成了 ESP-8266 softap 模式的配网。


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>