硬件篇
开箱,这质感,这沉稳而又不失光泽,i了i了。
机先若具机先眼
智士于此莫敢言
云峰高出白云间
带雨带烟深浅沿
来来去去如风卷
设使它地亦且联
备群娱之翕习哉
升之升之愈备恋
华筵直待华灯照
! 极焉
切入正题:测试的是gokit2.1 STM32底板+gokit2.3 ESP8266功能板(功能板上额外附加DHT11温湿度模块、直流电机小马达模块、红外感应ST188模块、RGB灯模块、其他常用接口),
测试目的让我的设备能够联网并可以通过APP控制我的设备。
如果我们想让我们的设备接入机智云。(这里备注,esp8266本身就集成了wifi和stm32的部分功能,这里引入NodeMCU这个观点,所以一个esp8266就可以完成一个可以联网的方案即机智云的SOC方案。而在这里我仅把他当作wifi模块)
需要什么:1联网模块(可以用ESP8266),2一个MCU(可以用STM32F103C8T6),3机智云账号。
为什么:让stm32F103C8编程完成与esp8266完成数据通信,通信方式:uart串口(stm32的TX&RX与ESP8266的RX&TX导线连起来)。
Tips,stm32编程已完成除上网外的全部功能,esp8266就是让他上网。上网:stm32的数据给esp8266,esp8266再把数据给app(机智云)。所以你会发现,就是个数据给来给去,我们stm32用UART/I2C/SPI就可以完成,是的。所以本质上说,就是完成esp8266与stm32间的通信(这里引及uart,I2C,spi等,我们用的就是uart串口,为什么不用I2C、SPI、网上有没,有(我记得是当初用NODEMCU时看到的))
怎么做:要联网模块实现数据的传来传去,以gokit2.3 板载esp8266为例,
1:Esp8266烧录机智云GAgent固件,
官网标准步骤:
经验设计法:
之所以这样连,是因为,避免了来回插拔esp8266转接板(我劲使大了,排针弯来弯去)
连线如下:
烧录完毕:
2:机智云云端设备配置及工程代码生成:
设备创建:
数据点配置:
代码生成:
下载其mcu代码后解压观看,三个东西,1图:有关设备的。2图:机智云工具代码(无需修改)。3图:main文件
代码移植part1(将我们的stm32工程文件中加入除上述main.c的所有文件)(宏观操作),为什么不加入上面的main,可以看下mian里有什么,
工具包头文件的引用和初始化及用户数据的传输函数及数据结构体的解析。在我们实际项目main里引用就可以了。
代码移植part2(微观操作),总的来说就三点,1uart串口配置,2定时器配置,3数据的上报和下传:
1USART串口配置part1:根据官网pdf流程配置,已知gokit2.3esp8266用的是stm32的USART2(PA2、PA3),故串口2及其中断配置完成后,在其中断服务函数中将收到的数据付给机智云value
2USART串口配置part2:在gitwits_product..c中进行写操作配置,注意在当前c文件中加入串口2的头文件
3定时器的配置:在自己的工程中进行定时器的配置,在中断服务函数中加入gizTimerMS(),其实你会发现我们之前做的和选择做的部分都会在机智云product.c文件中找到,是的,像RT-thread中object-device-pin-drv_gpio中间过渡层存在着大量虚函数一样,在这里我们需要将虚函数与我们实际的(串口服务函数定时器服务函数)连接起来,当然我们亦可以将各类中断服务函数define为机智云product.c中的。
数据的下传:我们在机智云定义了什么变量在EVENTProcess()中都会体现,如布尔值:仅0和1,在这里我将开定义了speed=100,
数据的上传:在userHandle中将数据结构体的子类即stepmoto_state赋值为speed(功能函数),
Main中的初始化:在这里我们需要对于机智云用到的串口、定时器、中断和自己的按键操作进行初始化
将airlink和softap功能函数包含进按键函数中,以便配网:
在云端我们点击设备日志中的查看,看到进一步数据。
测试过给我一个感觉,就是快,让设备以较短周期接入云端,而且开发者中心有app源码生成,可以提高整个设备的开发效率,当然如果用官网的HAL库开发会更快。
作者: ZKbeer, 来源:面包板社区
链接: https://mbb.eet-china.com/blog/uid-me-3935095.html
版权声明:本文为博主原创,未经本人允许,禁止转载!
用户3937490 2021-1-6 11:15
ZKbeer 2021-1-6 11:13
用户3937490 2021-1-6 10:51