微信哪里有天线宝宝微信动态表情动态图

ESP8266_用户手册_V0.3_图文_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
ESP8266_用户手册_V0.3
上传于||暂无简介
阅读已结束,如果下载本文需要使用1下载券
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩44页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢查看: 78908|回复: 71
wifi模块简单使用教程,如何将数据发送到电脑(esp8266 arduino库的使用)
本帖最后由 迷你强 于
08:17 编辑
说明一下,我的库是基于1.5.7版本的IDE开发的,主要是从里面复制了一个软串口库,所以1.0x版本会有问题。建议使用1.5x版本尝试下
目前发现的问题是,软件串口库有一个bug,会造成不定时不定位置的字符丢失现象,目前暂无很好的解决方案(除非bug原因被找到并修复),所以这个库的后续开发工作已经暂停,并且可能有些用户会遇到各种问题不能使用,这个就是目前所存在的问题,没有太好的解决方案,目前不推荐使用本库,本帖也仅限于参考,推荐学习研究AT指令,并通过arduino程序来发送这些指令
公告:新版本的OCROBOT SEED模块已经采用了官方版本的固件(已开源),所以要做本实验的童鞋,可以参考wiki上的固件更新教程将ocrobot固件上传到模块中(ocrobot固件及源代码均以开源)。
TB2KlxhapXXXXbUXpXXXXXXXXXX-.jpg (284.8 KB, 下载次数: 258)
22:01 上传
& & 最近大家都比较关心WIFI模块的使用,目前328p芯片系列的硬件库已经初步完成了(MANGOII&&NANO&&等),下面我给大家演示下具体的使用。首先就是网络的基础知识,这个需要理解下,自己找找资料研读下
具体就是要知道 TCP/IP协议集,什么是TCP 什么是UDP&&,TCP链接的原理,内网与外网的区别(nat技术),什么端口。
理解下面这句话:任何网络服务器可以理解为监听在指定端口的程序,负责接收数据并且做出反应。
好,我们今天就会用wifi模块往自己的计算机上发送一组字符串(“hello Intelnet~!”),直接发送到我们的自己的电脑的8080端口~
所以我们需要一个能在自己电脑上监听端口的软件,如果有熟悉的可以自己选用,不会的,就下载我提供的这个东西
(446.56 KB, 下载次数: 1508)
20:40 上传
点击文件名下载附件
我们目前只用右侧部分的功能,请照下图配置好软件
11111.jpg (240.84 KB, 下载次数: 250)
20:42 上传
模式选择为UDP模式(这个模式俗称发送后不管,也是非可靠链接,只管发送数据,路上丢了不会补发。好处就是速度快,效率高)
IP选择你自己的电脑的IP
端口设置为8080
下面的所有的钩钩都去掉
然后点击按钮,使其变红,这样就开启了端口监听,这个软件会在电脑上监听8080端口了。如果端口收到任何数据,都会显示出来。
我们来玩模块,按照下图来接线()
& && && && && &&&V&&-------- 3v3
ESP8266& &&&G&&------- GND& &&&ARDUINO
& && && && && &&&T --------- 10
& && && && && &&&R --------- 11
接好线,我们去下载arduino库~·
点击右边的 download ZIP下载所有文件,解压缩后将uarlWIFI_328 文件放入arduino的libraries目录下即可
注意目前这个库只适用于328p系列的主板,等硬件选择uarlWIFI这个文件库(当然,不能用我们下面的例子,以后有可能我会做合并)
然后启动arduino,写入下面的代码
[pre lang=&arduino& line=&1&]/*show you home wifi AP*/
#include &uarlWIFI_328.h&
void setup() {
&&Serial.begin(9600);
&&delay(2000);
&&wifi.confMode(STA);&&// STA or&&AP or&&AP+STA
&&wifi.Reset();
&&Serial.println(wifi.showAP()); //print wifi
void loop() {
打开串口监视器,看到类似下图的显示,就说明wifi模块已经正常工作了,下图显示的是你附件模块能够搜索到的wifi热点,所以每个人都不一样
1101.jpg (104.04 KB, 下载次数: 230)
21:00 上传
很多人在这个程序执行完成后发现,不能显示,我进过排查发现,有些人家周围的wifi信号非常密集,这就造成了显示的列表比较长,超过了arduino的串口缓冲区容量,所以需要手工修改串口缓冲区容量,arduino默认64字节
首先打开文件
\arduino-1.5.7\hardware\arduino\avr\cores\arduino\HardwareSerial.h
看第40 和41行 后面有两个64
我们需要将其改成128或者更大的数字,以保证能顺利的接收所有字符
然后我就要登陆wifi热点了。。这个用另外一个程序
[pre lang=&arduino& line=&1&]/*Join wifi AP*/
#include &uarlWIFI_328.h&
void setup() {
&&Serial.begin(9600);
&&delay(2000);
&&wifi.confMode(STA);&&// STA or&&AP or&&AP+STA& &选择STA模式,也就是客户端模式,简单的说就是作为网卡来用&&AP就是自己作为热点
&&wifi.Reset();& &&&//reboot wifi Modules
wifi.confJAP(&SSID&,&PASSWORD&);& &//这里填写你要加入的网络热点名与密码,如果是没有密码的也乱写一个写满8位,注意千万别写错了,不会提示的,你会很难排查。
delay(5000);& && && && && && && &&&//等待5秒钟时间,让路由器给你分配IP
& &Serial.println(wifi.showIP());&&// 串口显示获取到的IP,如果正常显示,说明登录网络成功了,如果不显示,需要检查SSID和密码是否写错了
void loop() {
千万注意这个程序是要自己修改SSID&&和password的~!!!!!!
比如我加入的网络是 OCROBOT& &密码是 &&那一句就要改成
wifi.confJAP(&OCROBOT&,&&);
别傻乎乎的一个字不改下载说不行~,严格区分大小写~!!!!!!&&
下载完后马上打开串口监视器,然后耐心等待。。。。。
比我耐心等待了10多秒以后,会显示如图下的内容
aaaa.jpg (72.01 KB, 下载次数: 217)
21:12 上传
呵呵这样就顺利连上自家网络了。。
到这一步后,模块的配置工作就完成啦~~~~只要以后在附近,就不用重新配置了,上电会自动连上的。方便吧~~
下面我们开始写程序来发个数据~
[pre lang=&arduino& line=&1&]#include &uarlWIFI_328.h&
void setup() {
wifi.confMux(0);& && & //切换模块到单链接通讯模式
wifi.Reset();& && && &&&//切换模式必须重启后生效
delay(5000);& && && & //重启后一定要给足够的时间让模块获取IP
wifi.newMux(UDP,&192.168.100.116&,8080);& & //建立一个连接 UPD 到我的电脑的8080端口
wifi.Send(&hello Intelnet~!&);& && && && && && && &&&//发送字符
delay(1000);& && && && && && && && && && && && && && && && && &//等一会
wifi.Send(&My name is miniqiang&);& && && && && & //接着发字符
void loop() {
如果一切顺利的话,你的监视器就会看到数据啦,如下图
123456.jpg (239.96 KB, 下载次数: 223)
21:46 上传
这样,简单的数据上传就完成了
收藏,并求淘宝链接……
哈哈,教程出来了。。。。。严重支持。。。 链接。。。。。。
刚买了这个模块& &今天估计能到手& & 貌似这个模块就用串口发送at指令就能用吧
wetnt 发表于
收藏,并求淘宝链接……
论坛导航栏的杂货铺中有售~
flashria 发表于
刚买了这个模块& &今天估计能到手& & 貌似这个模块就用串口发送at指令就能用吧
恩,AT指令。
有了这个帖子就敢放心买了
网上买了个跟这个板子不大一样,指令更新了。。库需要一个一个调 郁闷
啊哈,模块前几天入了俩,不过是官方的指令集版本,也是需要修改类库的,学习了
赞~通俗易懂。另外想请教一个问题,如果我想让WIFI模块每隔一段时间就主动访问计算机,然后获取计算机的数据,读取它的指令,让后通过串口控制Arduino,使得Arduino做出相应的行动。如何才能实现呢~
Powered by后使用快捷导航没有帐号?
查看: 1801|回复: 6
ESP8266模块网络解决方案
在线时间1518 小时
威望4698分
芯币15790枚
E金币103枚
TA的帖子TA的资源
五彩晶圆(中级), 积分 4698, 距离下一级还需 1302 积分
五彩晶圆(中级), 积分 4698, 距离下一级还需 1302 积分
ESP8266模块网络解决方案
1:测试模块已经联网的情况,在1分钟内没有接受广播包也就是用户上电时不需要修改路由器信息,运行情况:
采用策略为:如果在联网的情况下,一分钟没有接受到需要修改ssid和pwd的信息,那么wifi模块重启,采用之前的联网帐号和服务器建立连接上传数据。
2:测试模块已经联网的情况,在1分钟内接受广播包也就是用户上电时需要修改路由器信息(修改的路由可以联网),运行情况:
采用的策略:模块不需要重启,直接用新的帐号信息去和服务器建立通信连接
3:测试模块已经联网的情况,在1分钟内接受广播包也就是用户上电时需要修改路由器信息(路由器信息有误或者信号太弱总之修改后无法连接网络),运行情况:
采用策略:模块重新进入智能配置模式死等用户发送可以联网的账户信息。
4:测试模块没有联网的情况,接受广播包也就是用户上电时需要修改路由器信息(路由器信息有误或者信号太弱总之修改后无法连接网络),运行情况:
采用策略:如果没有联网的情况下,指定的路由信息无法和wifi连接,此时模块进入智能配置状态,一直等死用户将可以联网的路由信息发送过来
5:测试模块没有联网的情况,接受广播包也就是用户上电时需要修改路由器信息正常运行情况:
采用策略:如果没有建立网络的情况下,接受到的路由信息可以联网则直接和服务器建立连接发送数据
6:如果在建立完通信连接之后,在数据打包到发送数据的环节路由器无法访问外网
&&此时设备会进入重连网络的状态,直到路由器可以访问外网
file:///C:\Users\ZHIWAN~1\AppData\Local\Temp\ksohtml\wpsD650.tmp.jpgfile:///C:\Users\ZHIWAN~1\AppData\Local\Temp\ksohtml\wpsD660.tmp.jpg
7:如果在建立网络数据打包和上传服务器数据过程中,路由器掉电了.
设备会进入到重连网络,进入到智能快连状态,此时设备会一直等待路由器上电。
本帖子中包含更多资源
才可以下载或查看,没有帐号?
个人淘宝店:/
主营:zigbee,蓝牙,w5100,zigbee usbdongle等电子产品
在线时间1789 小时
芯币2438枚
E金币579枚
TA的帖子TA的资源
纯净的硅(初级), 积分 558, 距离下一级还需 242 积分
纯净的硅(初级), 积分 558, 距离下一级还需 242 积分
最近也在研究 ESP8266,感谢分享。
在线时间989 小时
威望4688分
芯币5606枚
E金币347枚
TA的帖子TA的资源
五彩晶圆(中级), 积分 4688, 距离下一级还需 1312 积分
五彩晶圆(中级), 积分 4688, 距离下一级还需 1312 积分
谢谢分享。wateras1您这个模块是从网上买的,还是你们自己画的板子做的呀。
在线时间1518 小时
威望4698分
芯币15790枚
E金币103枚
TA的帖子TA的资源
五彩晶圆(中级), 积分 4698, 距离下一级还需 1302 积分
五彩晶圆(中级), 积分 4698, 距离下一级还需 1302 积分
谢谢分享。wateras1您这个模块是从网上买的,还是你们自己画的板子做的呀。
哦哦,准备也要弄弄这个,谢谢楼主的额分享了。O(∩_∩)O哈哈~&
个人淘宝店:/
主营:zigbee,蓝牙,w5100,zigbee usbdongle等电子产品
在线时间245 小时
芯币1490枚
TA的帖子TA的资源
一粒金砂(中级), 积分 84, 距离下一级还需 116 积分
一粒金砂(中级), 积分 84, 距离下一级还需 116 积分
不错,看来最近ESP8266模块好热啊!多少钱买到?
12块左右就可以买到&
在线时间1518 小时
威望4698分
芯币15790枚
E金币103枚
TA的帖子TA的资源
五彩晶圆(中级), 积分 4698, 距离下一级还需 1302 积分
五彩晶圆(中级), 积分 4698, 距离下一级还需 1302 积分
不错,看来最近ESP8266模块好热啊!多少钱买到?
12块左右就可以买到
个人淘宝店:/
主营:zigbee,蓝牙,w5100,zigbee usbdongle等电子产品
在线时间989 小时
威望4688分
芯币5606枚
E金币347枚
TA的帖子TA的资源
五彩晶圆(中级), 积分 4688, 距离下一级还需 1312 积分
五彩晶圆(中级), 积分 4688, 距离下一级还需 1312 积分
哦哦,准备也要弄弄这个,谢谢楼主的额分享了。O(∩_∩)O哈哈~
荣誉会员勋章
曾经的版主且威望大于2000,或对EEWORLD论坛有突出贡献的坛友
论坛测评队员
Powered by
逛了这许久,何不进去瞧瞧?公众号:lholedu
机械,电子,软件,物联网机器人四大系列的实用知识传播。Pro-E,Ug,MasterCAM,Cimatron,Solidworks等,pads,altium design等,Android,IOS,linux,C,C++;arduino软件
感谢您阅读ESP8266 wifi 模块与用户自编程安卓APP之间的通信 ,本文可能来自网络,如果侵犯了您的相关权益,请联系管理员。QQ:查看: 7077|回复: 7
我怎么样让esp8266wifi模块接收数据并显示在串口监视器上啊?
我怎么样让esp8266wifi模块接收数据并显示在串口监视器上啊?
如何用arduino来测试ESP8266 WIFI模块(wifi普及预热中),这贴挺好,不过我怎么也没找到该wifi模块接收数据并在串口监视器中显示出来的相关例子啊
我刚好有段测试程序
#include &SoftwareSerial.h&
#include &dht11.h&
//SoftwareSerial mySerial(7, 8); // RX, TX
SoftwareSerial mySerial(9, 10); // RX, TX
dht11 DHT11;
#define DHT11PIN 3&&//Connect D3 to data pin of DHT11
#define httpled 13
#define pinOut 5
//请到申请登陆-》家中环境-》网关,里可以看到!
//#define APIKEY &8c5b8d26a8010092& //设置apikey
#define APIKEY &734f&
char server[] = &&;//声明API网址
//#define server &220.181.111.85&& & //
unsigned long last_
unsigned long timer,
char serialbuff[129]={0};
char buffer[35];
char buff[30];
bool ishttpget=
bool last_send=
int temperature=25;
int humdity=75;
int Count=0;
int sid=3;
int nid=1;
bool update=
void setup(void)
&&Serial.begin(115200);&&//设置串口波特率
&&mySerial.begin(9600);
&&//Serial.flush();&&//等待超出的串行数据完成传输
&&pinMode(httpled,OUTPUT);
&&pinMode(pinOut,OUTPUT);
&&delay(1000);
&&if(close_AT_show()) mySerial.println(&close_AT_show ok&);
&&mySerial.println(&wait join AP&);
&&if(conf_JAP(&sun&,&zw889989&)) mySerial.println(&join sun ok&);&&//登陆网络需要的ssid名称以及密码
&&else mySerial.println(&join sun fail&);
&&mySerial.println(&setup success&);
void loop(void)
&&if(millis() - last_http &= 5000)
& & //last = millis();//获取现在的时间
& & if(!ishttpget || millis() - last_http &= 30000)
& && &last_http = millis();
& && &ishttpget=& && &
& && &Count++;
& && &mySerial.println(Count);
& && &if(Count&=120)
& && &&&Count = 0;
& && &&&wsd =
& && &digitalWrite(httpled,HIGH);
& && &mySerial.println(&\n&&& REQ&);
& && &static char buf[42]={0};
& && &sprintf(buf,&{ck}&); //%s ,updateData
& && &if(wsd)
& && &&&wsd =
& && &&&int thsid=001;
& && &&&int thnid=002;
& && &&&DHT11.read(DHT11PIN);&&//读温湿度数据
& && &&&humdity = DHT11.
& && &&&temperature = DHT11.
& && &&&get_send_char(thsid,thnid,humdity,temperature,buff);//&{ck}&
& && &&&sendData(buff);
& && &else sendData(buf);&&//POST到网址,APIKEY,字符
&&if (Serial.available() & 0)
& & int index=0;
& & delay(100); // let the buffer fill up
& & int numChar = Serial.available();&&//获取从串口读取有效的字节数(字符)
& & if (numChar&128) numChar=128;
& & while (numChar--)
& && &serialbuff[index++] = Serial.read();
& & serial_String(serialbuff);
&&if (mySerial.available() & 0)
& & int index=0;
& & delay(100); // let the buffer fill up
& & int numChar = mySerial.available();
& & if (numChar&29) numChar=29;
& & while (numChar--)
& && &buffer[index++] = mySerial.read();
& & splitString(buffer);
void serial_String(char* data)
&&mySerial.println(data);
&&char body[30]={0};
&&get_znck_body(data,body);//获取只是{ckxxxxxx}的字符,因为这是我们的命令格式
&&mySerial.println(body);
&&int s=get_sid(body);
&&int n=get_nid(body);
&&int d=get_data(body);
&&if(&&s==sid && n==nid )
& & if( d==1 ) digitalWrite(pinOut,HIGH);
& & else digitalWrite(pinOut,LOW);
&&if(last_send)
& & mySerial.print(&&&& reply &);
& & mySerial.print(millis() - timer);
& & mySerial.println(& ms&);
& & mySerial.println(&&);
& & last_send =
&&//if(Serial.find(&Content-Type&)==true)
& & last_http = millis();
& & ishttpget=
& & digitalWrite(httpled,LOW);
&&// Clear the text and serial buffers
&&for (int x=0; x&129; x++)
& & serialbuff[x]='\0';
&&Serial.flush();&&//等待超出的串行数据完成传输
void splitString(char* data)
&&mySerial.println(data);
&&parameter = strtok (data, & ,&);
&&while (parameter != NULL)
& & mySerial.println(parameter);
& & //set_data(parameter);
& & parameter = strtok (NULL, & ,&);
&&// Clear the text and serial buffers
&&for (int x=0; x&30; x++)
& & buffer[x]='\0';
&&mySerial.flush();&&//等待超出的串行数据完成传输
void set_data(char* data)
&&if ((data[0] == 'y') || (data[0] == 'Y'))
& & int Ans = strtol(data+1, NULL, 10);
& & mySerial.println(&\n&&& REQ&);
& & static char buf[20]={0};
& & sprintf(buf,&{ck}&); //这个字符串代表获取新命令数据
& & if(update)
& && &update =
& && &sendData(buff);
& & else sendData(buf);
&&if ((data[0] == 'd') || (data[0] == 'D'))
& & int getdata = strtol(data+1, NULL, 10);
& & get_getdata_char(sid,nid,getdata,buff);
& & update =
&&if ((data[0] == 't') || (data[0] == 'T'))
& & int Ans = strtol(data+1, NULL, 10);
& & temperature = A
& & get_send_char(sid,nid,humdity,temperature,buff);//&{ck}&
& & update =
&&if ((data[0] == 'h') || (data[0] == 'H'))
& & int Ans = strtol(data+1, NULL, 10);
& & humdity = A
& & get_send_char(sid,nid,humdity,temperature,buff);
& & update =
&&if ((data[0] == 's') || (data[0] == 'S'))
& & int Ans = strtol(data+1, NULL, 10);
& & sid = A
& & get_send_char(sid,nid,humdity,temperature,buff);
& & update =
&&if ((data[0] == 'n') || (data[0] == 'N'))
& & int Ans = strtol(data+1, NULL, 10);
& & nid = A
& & get_send_char(sid,nid,humdity,temperature,buff);
& & update =
&&if ((data[0] == 'j') || (data[0] == 'J'))
& & int Ans = strtol(data+1, NULL, 10);
& & //setdata = A
& & if(Ans&10)
& && &if(conf_JAP(&860&,&zw889989&)) mySerial.println(&join 860 ok&);
& && &else mySerial.println(&join 860 fail&);
& & if(Ans&10)
& && &if(conf_JAP(&sun&,&zw889989&)) mySerial.println(&join sun ok&);
& && &else mySerial.println(&join sun fail&);
& & //update =
void sendData(char* thisData)&&//this method makes a HTTP connection to the server:
&&//digitalWrite(httpled,HIGH);
&&if(start_Mux(1,server,80))&&//if there's a successful connection:
& & mySerial.println(&connecting...&);
& & // send the HTTP PUT request:
& & S& && &
& & cmd = &POST /index.php HTTP/1.0\r\n&;
& & cmd += &Host: \r\n&;
& & cmd += &apikey:&;
& & cmd += APIKEY;
& & cmd += &\r\n&;
& & cmd += &Accept: *&;
& & cmd += &/&;
& & cmd += &*\r\n&;
& & cmd += &Content-Length: &;
& & size_t thisLength = strlen(thisData);
& & cmd += String(thisLength);
& & cmd += &\r\n&;
& & cmd += &Content-Type: application/x-www-form-urlencoded\r\n&;
& & cmd += &\r\n&;
& & cmd += String(thisData);
& & cmd += &\r\n&;
& & //mySerial.println(cmd);
& & //Send_test(cmd);
& & if(Send(cmd)) mySerial.println(&Send ok&);
& & else&&mySerial.println(&Send fail&);
& & // if you couldn't make a connection:
& & mySerial.println(&connection failed&);
& & //mySerial.println(&disconnecting.&);
& & //Serial.println(&AT+CIPCLOSE&);
boolean Send(String str)
&&Serial.print(&AT+CIPSEND=&);
&&Serial.println(str.length());
&&start = millis();
&&bool found=
&&while (millis()-start&3000)
& & if(Serial.find(&&&)==true )
& && &found =
&&if(found) Serial.print(str);
&&start = millis();
&&while (millis()-start&8000)
& & if(Serial.available()&0)
& && &if(Serial.find(&SEND OK&)==true)
& && &last_send =
& && &timer = millis();
//confJAP(&Rookie&,&zw889989&);&&//配置登陆网络需要的ssid名称以及密码
boolean conf_JAP(String ssid , String pwd)&&//配置登陆网络需要的ssid名称以及密码
&&Serial.print(&AT+CWJAP=&);
&&Serial.print(&\&&);& &&&//&ssid&
&&Serial.print(ssid);
&&Serial.print(&\&&);
&&Serial.print(&,&);
&&Serial.print(&\&&);& && &//&pwd&
&&Serial.print(pwd);
&&Serial.println(&\&&);
&&unsigned long start = millis();
&&while (millis()-start&18000)
& & if(Serial.find(&OK&)==true)
//startMux_0(1,&192.168.1.16&,5000);&&//建立tcp链接或者注册UDP端口号(单路模式)
boolean start_Mux(byte type, String addr, int port)&&//建立tcp链接或者注册UDP端口号(单路模式)
&&Serial.print(&AT+CIPSTART=&);
&&if(type&0) Serial.print(&\&TCP\&&);
&&else Serial.print(&\&UDP\&&);
&&Serial.print(&,&);
&&Serial.print(&\&&);
&&Serial.print(addr);
&&Serial.print(&\&&);
&&Serial.print(&,&);
&&Serial.println(String(port));
&&unsigned long start = millis();
&&while (millis()-start&5000)&&//当串口有完成数据返回时,结束语句
& & if(Serial.available()&0)
& && &char a =Serial.read();
& && &data=data+a;
& & if (data.indexOf(&OK&)!=-1 || data.indexOf(&ALREAY CONNECT&)!=-1 || data.indexOf(&ERROR&)!=-1)
& && &//if (data.indexOf(&Linked&)!=-1)
boolean close_AT_show()
&&Serial.println(&ATE0&);
&&unsigned long start = millis();
&&while (millis()-start&3000)&&//当串口有完成数据返回时,结束语句
& & if(Serial.find(&OK&)==true)
void get_znck_body(char *p,char *s)&&//获取只是{ckxxxxxx}的字符,因为这是我们的命令格式
&&char rechar[129]={0};
&&int bufi=0;
&&bool isend=
&&int charnum=0;& &
&&for(bufi=0;bufi&strlen(p);bufi++)
& & //Serial.print(p[bufi]);
& & if(p[bufi]=='{') isend=
& & if(p[bufi]=='}' && isend==true)
& && &isend=
& && &rechar[charnum]=p[bufi];
& & if(isend)
& && &if(charnum&129)
& && &&&rechar[charnum]=p[bufi];//Serial.print(rechar[charnum]);
& && &&&charnum++;& && &&&
&&//Serial.println(&&);
&&//memcpy(s,rechar,129);
&&sprintf(s,&%s&,rechar);
int get_sid(char *buff)&&//获取sid
&&if( strstr(buff,&{ck&) && strstr(buff,&}&) && strlen(buff)&10)
& & char charsid[4]={0};
& & memcpy(charsid,buff+3,3);
& & //Serial.println(charsid);
& & int intsid=atoi(charsid);
& & mySerial.print(&sid=&);
& & mySerial.println(intsid);
&&else return 0;
int get_nid(char *buff)&&//获取nid
&&if( strstr(buff,&{ck&) && strstr(buff,&}&) && strlen(buff)&10)
& & char charNid[4]={0};
& & memcpy(charNid,buff+6,3);
& & //Serial.println(charNid);
& & int intNid=atoi(charNid);
& & mySerial.print(&Nid=&);
& & mySerial.println(intNid);
& & return intN& && &
&&else return 0;
int get_data(char *buff)&&//获取data
&&if( strstr(buff,&{ck&) && strstr(buff,&}&) && strlen(buff)&10)
& & char charData[4]={0};
& & memcpy(charData,buff+9,1);
& & //Serial.println(charData);
& & int intData=atoi(charData);
& & mySerial.print(&Data=&);
& & mySerial.println(intData);
& & return intD& && &
&&else return 0;
void get_send_char(int sid,int nid,int humdity,int temperature,char *p)
&&sprintf(p,&{ck%.3d%.3d%d.%d}&,sid,nid,humdity,temperature);
void get_getdata_char(int sid,int nid,int getdata,char *p)
&&sprintf(p,&{ck%.3d%.3d%d}&,sid,nid,getdata);
可以和智能创客的服务器连接
在软串口看到服务器返回的数据
好长的代码,似乎dht11是温度传感器吧......
就是把温湿度POST到服务器
新手同问同问,高手给个例字
AT+CWJAP=&TP-LINK_76FC&,&%tianjuntangqili&
AT+CIPSTART=&TCP&,&&,80
AT+CIPSTART=&TCP&,&&,80
AT+CIPSTART=&TCP&,&&,80
AT+CIPSTART=&TCP&,&&,80
AT+CIPSTART=&TCP&,&&,80
AT+CIPSTART=&TCP&,&&,80
AT+CIPSTART=&TCP&,&&,80
AT+CIPSTART=&TCP&,&&,80
AT+CIPSTART=&TCP&,&&,80
AT+CIPSTART=&TCP&,&&,80串口一直打印这个
中文注译太少,看着费力。
Powered by

我要回帖

更多关于 微信表情天线宝宝gif 的文章

 

随机推荐