STM32连接ESP8266向oneNET上传数据

前期的工作就是通过STM32控制ESP8266的初始化,使其连接wifi。其中UART1与ESP8266通讯,UART2接收ESP8266传输回来的数据,并将其打印在电脑上,方便调试。

类似:

现在尝试使用STM32上传一个数据保存到oneNET的value1中。首先需要将ESP8266连接到服务器上

AT+CIPSTART="TCP","183.230.40.33",80

AT+CIPMODE=1//开启透传模式

AT+CIPSEND//开始透传  在连接成功时,才会返回succ


然后就可以在oneNET上看最最新上传的数据32


向设备发送:+++

为退出发送模式

之后的任务是继续优化发送接收的函数。发送能够多次发送并且遇到异常的情况能够重启设备,接收数据能够解析JSON数据,提取关键的信息。



这两天搞了好久,对cJSON数据没有解析,暂时放弃判断返回数据来识别各个AT指令执行结果。改了新的写法,使用定时器,定时触发事件,置位标志位来执行各个动作事件,比如连接wifi,连接oneNET。

定时器配置


下面就是定时器的中断函数,大概一秒进入一次。

主函数进行判断各种标志位是否置位。


将要发送的数据用二维数组进行封装,可以实行循环发送。

AT指令数组:


AT配置


执行效果:


对配置oneNET也是一样


还有要上传数据到oneNET就得要将数字和字符进行相关的转化,再合成一个字符串按照cJSON的格式,我是自己写了一个,很简单的


下面是我暂时最新工程的连接:

链接:https://pan.baidu.com/s/1Y1eSuqeRFhNj5JX4LBrE3A

提取码:velq

暂时STM32这一块的问题基本解决了,之后对各种异常进行简单的优化,识别返回的JSON格式的数据读取设备的转态等。但是stm32这块暂时不打算搞了,现在可以研究APP Inventor。制作出一个APP可以从oneNET上简单读取数据,再完成这部分,毕设实物基本完成了,之后可能开始写论文了。所以整个代码不可能写得十分完美的,解决不了的bug还是会留在那里的。

你可能感兴趣的:(STM32连接ESP8266向oneNET上传数据)