这段时间工作比较忙,两周没写文章了,这次分享是使用W806 开发板,通过ESP8266将温湿度数据上传到Onenet,ESP8266这个模块比较大众,本身也支持openmcu,这里主要是是使用AT固件,跟单片进行进行通讯,因为使用AT指令的应用比较多,所以实验下W806开发板和ESP8266的通讯。 1:硬件环境准备W806开发板: DHT11温湿度模块: WIFI模块ESP8266: 杜邦线若干: 2:软件环境开发2.1:温湿度信息获取如何驱动dht11温湿度模块,请查看下面这篇具体的文章,公众号上有讲。 https://mp.weixin.qq.com/s/OmDo6nddHpvHN23ExPV0bQ 2.2:AT指令通讯ESP8266的通讯指令有很多,我说下具体需要用到的几条命令。发送AT命令的时候,需要注意换行。 下面具体说下几条要用到的AT指令: 2.3.1:AT应答指令2.3.2:关闭回显2.3.3:查看软件版本2.3.4:设置工作模式
2.3.5:加入热点2.3.6:连接Onenet服务器2.3.7:设置透传数据2.3.8:准备发送数据2.3.9:将温湿度数据上传在串口发送框下,发送自己的信息数据。 具体代码实现: void esp8266_atcmd_queue(void)
{
uint8_t ret;
char send_buf[512]={0};
char data_len[32]={0};
char data_buf[]="{"datastreams":[{"id":"temp","datapoints":[{"value":22}]},{"id":"humi","datapoints":[{"value":65}]}]}";
//发送AT应答
if (sendCommand("ATrn", "OKrn", 3000, 5) == 0);
else print_Error_Code(1);
Delay_ms(100);
//关闭回显
if (sendCommand("ATE0rn", "OKrn", 3000, 5) == 0);
else print_Error_Code(2);
Delay_ms(100);
if (sendCommand("AT+CWJAP="替换你自己的WIFI热点名","替换你自己的wifi密码"rn", "OKrn",3000, 5)==0);
else print_Error_Code(4);
Delay_ms(100);
if (sendCommand("AT+CIPSTART="TCP","183.230.40.33",80rn", "CONNECT", 10000, 5)==0);
else print_Error_Code(5);
Delay_ms(100);
if (sendCommand("AT+CIPMODE=1rn", "OKrn", 3000, 10)==0);
else print_Error_Code(6);
Delay_ms(10);
if (sendCommand("AT+CIPSENDrn", ">", 3000, 10)==0);
else print_Error_Code(7);
Delay_ms(10);
strcpy(send_buf, "POST /devices/替换你自己的onenet的设备号/datapoints HTTP/1.1");
strcat(send_buf, "rn");
strcat(send_buf, "api-key:替换你子的密钥");
strcat(send_buf, "rn");
strcat(send_buf, "Host:api.heclouds.com");
strcat(send_buf, "rn");
sprintf(data_len,"Content-Length:%d",strlen(data_buf));
strcat(send_buf, data_len);
strcat(send_buf, "rn");
strcat(send_buf, data_buf);
if (sendCommand(send_buf, "succ", 3000, 10)== 0)
{
memset(send_buf, 0, sizeof(send_buf));//清缓存数据
printf("send_data_okrn");
}
}3:Onenet环境配置3.1:登录Onenet平台https://open.iot.10086.cn/console/ 3.2:进入产品https://open.iot.10086.cn/develop/global/product/#/public?protocol=3&other=1 3.3:选择http协议Onenet里面协议有很多,我这里选择http协议来进行说明。 3.4:创建产品添加产品信息如下: 创建完成之后,查看产品页面。 进入设备列表,进行添加设备,完成如下: 3.5:获取API和密钥,代码编写要用到跟代码里面的信息要一一对应。 4:物联网数据上传就是将获取到的温湿度数据进行上传,你也可以添加自己的驱动数据上传。 5:实验现象查看设备里面的数据流信息,数据已经上传,双11这一天。 温度历史数据: 湿度历史数据: 实物图: https://www.bilibili.com/video/BV19h411t73F?share_source=copy_web
|