一、烧录固件
首先要对WiFi模块烧录进Onenet上云AT指令的固件
1、硬件连接
(WiFi模块)VCC————5V/3.3V(USB-TTL模块)
(WiFi模块)GND————GND(USB-TTL模块)
(WiFi模块)TXD————RXD(USB-TTL模块)
(WiFi模块)RXD————TXD(USB-TTL模块)
(WiFi模块)GPIO_0————GND
(WiFi模块)RST————不接(复位的方法就是将RST接地后拔出)
2、开始烧录
添加进固件文件后设置对应的参数后开始下载即可。
若出现等待上电,则将模块复位即可。
二、云端创建设备
1、添加产品
进入Onenet➡控制台➡切换至旧版➡多协议接入➡MQTT(旧版)➡添加产品
2、添加设备
产品➡设备列表➡添加设备
到此,记下产品ID、设备ID以及自己设置的鉴权信息
3、创建数据流
设备列表➡设备➡操作➡数据流➡数据流模板管理➡添加数据流模板
4、创建应用
应用管理➡添加应用(onenet的组件相对比较少,凑合着用)
三、敲程序
(1)接入WiFi的AT指令
AT+CWJAP=(WiFi名称),(WiFi密码)
(2)接入Onenet的AT指令
AT+IOTCFG=(设备ID),(产品ID),(鉴权信息)
(3)上传数据的AT指令
AT+IOTSEND=(上传数据类型),(数据流名称),(上传数据值)
其中,上传数据类型:
0:数据是数值类型
1:数据是字符串类型
2:数据是gps
贴上程序:(main函数)
(烧完固件后WiFi模块的波特率为115200)
int main(void)
{
USART0_Configuration();//初始化串口,波特率设置为115200
USART1_Configuration();
UsartPrintf(HT_USART1, "AT+CWJAP=LovelyGirl,88888886\r\n");//连接WiFi
delay(1000);
UsartPrintf(HT_USART1, "AT+IOTCFG=71598XXXX,XXXXXX,XX\r\n");//接入Onenet
delay(500);
while(1)
{
UsartPrintf(HT_USART1, "AT+IOTSEND=0,bluelight,150\r\n");//上传数据流bluelight的数据
delay(100);
UsartPrintf(HT_USART1, "AT+IOTSEND=0,intensity,151\r\n");
delay(100);
}
return 0;
}
到此,合泰单片机已可将数据传入Onenet云端!
如果连接不成功的话,可以试试修改一下延时,有一次,把延时定为10ms,然后就一直连接不成功。
while(1)
{
UsartPrintf(HT_USART1, "AT+IOTSEND=0,bluelight,150\r\n");
delay_ms(10);
}
把延时改为100ms就成功了!
By the way,这是我见过的接入云端最简单的方法了,不过,各方面的应用也比较局限。