要达到的效果是用你的电脑或者手机通过局域网去把信号传输给ESP8266,让8266控制LED灯闪烁。
首先你要下载一个Arduino IDE
其次你要买一个esp8266小板(我用的是esp8266-01)
思路如下
首先,我们要接入局域网,那么我们的esp8266和电脑就必须先要处于同一个局域网下,通俗点讲,这俩货要连在同一个wifi下,比如你家的同一个路由器下,好的,esp8266和电脑虽然都连在同一个wifi下,但是咋通信呢,他俩怎么互相找到对方呢,有个常识就是要想通信,一般有一个作为服务端,一个作为客户端,然后给服务端取个名字,客户端通过这个名字去找,这样他俩就能连到一起了,互相握个手,就能开始交谈了,这就是典型的TCP通信,你的电脑也是这么连上百度的服务器的(当然还有路有什么的,目前不关我们事,先不管)。
开始边撸代码边实验
电脑通过网络调试助手开一个tcpserver作为服务端,esp8266作为客户端。
#include <ESP8266WiFi.h> //加入ESP8266wifi头文件
#define LEDPIN 2 //GPIO2
WiFiClient client;
const char *ssid = "HEXBOT"; //ssid,你家的wifi名称
const char *password = "HEXBOT01?02?03";//wifi密码
const char *host = "192.168.0.107"; //改为上图所示的IP地址(改为你自己的)
const int tcpPort = 8266;//改为上图所示的本地端口号(改为你自己的)
void setup()
{
Serial.begin(115200);
pinMode(LEDPIN,OUTPUT);
delay(10);
Serial.println();
Serial.print("Connecting to ");//会通过usb转tll模块发送到电脑,通过ide集成的串口监视器可以获取数据。
Serial.println(ssid);
WiFi.begin(ssid, password);//启动
//在这里检测是否成功连接到目标网络,未连接则阻塞。
while (WiFi.status() != WL_CONNECTED)
{
Serial.println("WiFi connection failed......");
delay(500);
}
Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP()); //WiFi本地IP
}
void loop()
{
while (!client.connected()) //若未连接到电脑服务端,则esp8266客户端进行连接。
{
if (!client.connect(host, tcpPort))//实际上这一步就在连接服务端,如果连接上,该函数返回true
{
Serial.println("connection....");
delay(500);
}
}
while (client.available())//available()表示是否可以获取到数据
{
char val = client.read();//read()表示从网络中读取数据。
Serial.println(val); //打印出来接收到的值
if(val=='a'){ //pc端发送a和b来控制
digitalWrite(LEDPIN, LOW);
}
if(val=='b')
{
digitalWrite(LEDPIN, HIGH);
}
}
}
正常情况下就可以通过发送a和b控制你的小灯了。
端口如下:
你可以测量gpio2电平变化。
如果你把esp8266通过串口把信息发到其他单片机上,那就能做更多的事情了。
手机连接同上,软件如下。
在百度上搜索网络调试助手,打开第一个连接。
选择普通下载就行
打开后界面如下,打开配置就可以配置了