赞
踩
链接:https://pan.baidu.com/s/1Y3hiw_oVPKRTT9mtGg7WDA?pwd=mlhy
提取码:mlhy
如ESP8266接3.3v无法正常工作则接入5V电压
GPIO0一定要接地(接地代表烧录固件模式)
注意波特率115200
ESP8266的TX----->TTL板的RX
ESP8266的RX----->TTL板的TX
ESP8266的3V3----->TTL板的3V3/5V
ESP8266的GND-----TTL板的GND
ESP8266的GPIO0(0)-----TTL板的GND
烧录完毕后紧接测试:输入AT+GMR
烧录完毕后GPIO0口一定要悬空,只与TLL模块连接RX、TX、GND、VCC四个口。
选择自定义品类,联网方式选择WiFi,数据格式选JSON。
产品栏选我们刚刚新建的产品,设备名称由自己定义,但注意不要太过复杂,因为后续上报消息需要用到设备名称。
数据类型根据需要自定,我这边选择的是单浮点型。
注意一定要点击发布上线。
此处大坑:地区一定是华东2,否则后续发送命令必定出错(有感而发)
这里一定要随便填一下
生成前:
生成后:
依次输入以下命令:
AT+RST //ESP8266恢复出厂设置
AT+CWMODE=3 //AP+Station模式
AT+CWJAP="DES","abcd1234" //对应自己的WiFi及密码
WiFi连接成功
依次发送以下命令:
AT+MQTTUSERCFG=0,1,"client_id","Sound_STM32&k0c49DpK2UJ","27FF93D8794315693C55A2379F7135D1B9171C35",0,0,""
成功后返回OK:
在keil软件里用的格式为:
Serial_SendString("AT+MQTTUSERCFG=0,1,\"client_id\",\"Sound_STM32&k0c49DpK2UJ\",\"27FF93D8794315693C55A2379F7135D1B9171C35\",0,0,\"\"\r\n");
Attention:逗号前要加转义字符'\';
AT+MQTTCLIENTID=0,"2321312|securemode=3\,signmethod=hmacsha1\,timestamp=23213|"
成功后返回OK:
在keil软件里用的格式为:
Serial_SendString("AT+MQTTCLIENTID=0,\"2321312|securemode=3\\,signmethod=hmacsha1\\,timestamp=23213|\"\r\n");
Attention:com后面的分号要去掉
AT+MQTTCONN=0,"k0c49DpK2UJ.iot-as-mqtt.cn-shanghai.aliyuncs.com",1883,1
成功后返回OK:
在keil软件里用的格式为:
- Serial_SendString("AT+MQTTCONN=0,\"k0c49DpK2UJ.iot-as-mqtt.cn-shanghai.aliyuncs.com\",1883,1\r\n");
-
Attention:每条消息之间一定要有一定的间隔时间
查看主题:
Attention:注意${deviceName}要修改成自创的设备名字,如Sound_STM32
AT+MQTTSUB=0,"/sys/k0c49DpK2UJ/Sound_STM32/thing/service/property/set",1
Attention:订阅主题操作只需要执行一次,后续在单片机上无需重复进行
格式:
AT命令:
AT+MQTTPUB=0,"/sys/k0c49DpK2UJ/Sound_STM32/thing/event/property/post","{\"params\":{\"temp\":30}}",1,0
成功后返回:
查看物模型数据:
在keil软件里用的格式为:
printf("AT+MQTTPUB=0,\"/sys/k0c49DpK2UJ/Sound_STM32/thing/event/property/post\",\"{\\\"params\\\":{\\\"temp\\\":%d}}\",1,0\r\n",buffer[2]-3);
在keil软件里用的格式为:
- const char* pubtopic="/sys/k0c491prW9f/mqtt_STM32/thing/event/property/post";
- printf("AT+MQTTPUB=0,\"%s\",\"{\\\"method\\\":\\\"thing.event.property.post\\\"\\,\\\"params\\\":{\\\"temp\\\":%d.%d\\,\\\"humi\\\":%d.%d\\,\\\"Light\\\":%.1f\\}}\",0,0\r\n",pubtopic,buffer[2]-3,buffer[3],buffer[0],buffer[1],100-(float)AD_GetValue(ADC_Channel_6)/4096*100);
该功能得写好串口接收代码才能很好地运用起来。如:用来给单片机串口发ON或OFF来控制LED灯的亮灭,笔者在此就不多做演示了。
附串口接收代码:
- char RECS[250];
- void USART1_IRQHandler()
- {
- if(USART_GetITStatus(USART1,USART_IT_RXNE))
- {
- RECS[i++]=USART_ReceiveData(USART1);
- if((RECS[i-2]=='\r')|(RECS[i-1]=='\n'))
- {
- RECS[i-2]='\0';
- i = 0;
- j = 0;
- while(RECS[j++] != '\0')
- {
- if(RECS[j]=='L' && RECS[j+1]=='E' && RECS[j+2]=='D' && RECS[j+3]=='O'&& RECS[j+4]=='N')
- {
- GPIO_ResetBits(GPIOC,GPIO_Pin_13);
- }
- }
- }
- USART_ClearITPendingBit(USART1, USART_IT_RXNE);
- }
- }
1、数据库地域必须与物联网平台对应。
2、登陆数据库:
第一次开通数据库需要手动重置账号与密码,详情请各位自行百度。要牢记用户名与密码,后续会用到。
3、新增Mysql实例以及创建表:
新增实例:
实例名称后续会用到。我这边的实例名称是mlh。
创建表:
附带一些简单的数据库查询语句:
- -- 查看所有数据 -- SELECT * FROM `receive`
- -- 插入数据 INSERT INTO `receive` (`temp`, `humi`, `light`) VALUES (100, 100, 100);
- -- 更新指定id的数据 UPDATE `receive` SET `temp` = 15, `humi` = 25, `light` = 35 WHERE `id` = 1;
- -- 新建自增id列 ALTER TABLE `receive` ADD COLUMN `id` INT AUTO_INCREMENT PRIMARY KEY FIRST;
- -- 删除范围内的数据 DELETE FROM `receive` WHERE `id` BETWEEN 11 AND 400;
- -- 删除所有表数据 DELETE FROM `receive`
- -- 删除指定id的数据 DELETE FROM `receive` WHERE `id` = 13;
- -- 获取当前最大的id值 SELECT MAX(`id`) FROM `receive`;
- -- 设置自增的初始值为当前最大id值 + 1
- -- ALTER TABLE `receive` AUTO_INCREMENT = 2;
- -- 插入数据 INSERT INTO `receive` (`temp`, `humi`, `light`) VALUES (100, 100, 100);
- -- 添加时间戳 ALTER TABLE receive ADD COLUMN timestamp_column TIMESTAMP DEFAULT CURRENT_TIMESTAMP;
-
至此云数据库配置完成。
1、创建数据源
添加Topic
2、添加数据目的
名称自定
点击编辑
填入第一步我们配置好的信息,实例,数据库名称, 用户账号密码等。
3、配置解析器
先创建解析器
关联我们刚刚配置好的数据源和数据目的
最后配置解析器脚本
我这边上传的是三个数据,每次上报数据都会进行一次数据流转,所以一定要一次性上报三条数据,这样数据库才能正常接收,否则接收不到数据数据库则为NULL。(物模型一次性上报数据的方法上文有提及)
用SQL语句进行表查询
可以看到上报到云平台的数据被转存进数据库保持起来,并且支持数据的导入导出。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。