今天来给大家出一篇 esp8266的无线传输。一开始接触是从淘宝买的跨阵物联 -M1模块,由于次模块管脚较少,不利于开发,所以本人打算利用模块上的esp8266-01,配合这STM32F103ZET6,二者串口通信来拓展管脚。贴出淘宝链接
-
第一步 搭建esp8266-01开发环境,一开始,以为这个小玩意和蓝牙模块一样,只是一个数据传输的作用,直到自己查阅资料,发现这就是一个功能强大的单片机。 下面摘要两个大神的帖子。大家可以参照下面两个帖子,来搭建好esp8266的开发环境。
http://www.arduino.cn/thread-17895-1-1.html
http://www.arduino.cn/thread-17896-1-1.html -
第二步就是esp8266-01的硬件接线
esp8266-01 u转串模块
VCC-----------3.3
GND----------GND
GPIO0--------GND
CH_PD--------3.3
RX-------------TX
TX-------------Rx
-
第三步就是物联平台了,可以给大家推荐几个免费的物联网平台:贝壳物联、酱菜创客等等。之前用过酱菜创客的平台,这个平台虽然免费,但是本人觉得这个平台传输太慢了,点个灯要好几秒。所以果断放弃了这个。之后又接入过阿里云的平台,但是要付钱的,所以也gg了。 最后找到了一个稳定而且免费的物联平台:
http://www.doit.am/
言归正传,我们为什么要找物联平台。 我们的目的是要实现无论在何时何地都可以实现控制。思路是这样的: 要用手机app控制一盏灯,就是要把手机发出数据让单片机接收到,在这中间,需要一个数据转发的过程,所以,我们需要云平台来给我们转发数据。
首先,手机接入云平台,然后发送信息。
其次,云平台收到后,转发给其他接入平台的设备。
最后,esp8266接入云平台,收到转发的数据,通过串口发给单片机,从而实现了控制。
具体接入平台的步骤:
首先点击网站获取自己的IP和端口号 http://tcp.doit.am/
打开后你会看到这样的页面,页面里的IP地址和端口号需要记下来,一会在esp8266的编程中需要用到。
- 准备工作做好后,开始实战。
开始用arduino软件平台进行编写。下面贴出部分代码:
#include <ESP8266WiFi.h>
const char *ssid = "。。。。。 ";//这里是我的wifi,你使用时修改为你要连接的wifi ssid
const char *password = "。。。。。";//你要连接的wifi密码
const char* serverIP = "。。。。";//你再网站上得到的IP
int serverPort = 。。。。;//你在网站上得到的端口号
WiFiClient client;
char buff[512]; // 最大存512个字符变量
int nm = 0; //记录当前接收的标志位
int nm1 = 0; // 定时连接的标志位
void connect1() //接入
{
if (!client.connect(serverIP, serverPort))//如果连接失败
{
Serial.println("connection failed"); //esp8266 发送
delay(5000);
return;
}
bConnected = true;
Serial.println("connection ok")