物联网通讯之esp8266wifi模块
ESP8266是一款超低功耗的UART-WiFi 透传模块,拥有业内极富竞争力的封装尺寸和超低能耗技术,专为移动设备和物联网应用设计,可将用户的物理设备连接到Wi-Fi 无线网络上,进行互联网或局域网通信,实现联网功能。
ESP8266可广泛应用于智能电网、智能交通、智能家具、手持设备、工业控制等领域。
主要功能
ESP8266可以实现的主要功能包括:串口透传,PWM 调控,GPIO控制。
串口透传:数据传输,传输的可靠性好,最大的传输速率为:460800bps。
PWM 调控:灯光调节,三色LED 调节,电机调速等。
GPIO控制:控制开关,继电器等。
工作模式
ESP8266模块支持STA/AP/STA+AP 三种工作模式。
- STA 模式:ESP8266模块通过路由器连接互联网,手机或电脑通过互联网实现对设备的远程控制。
- AP 模式:ESP8266模块作为热点,实现手机或电脑直接与模块通信,实现局域网无线控制。
- STA+AP 模式:两种模式的共存模式,即可以通过互联网控制可实现无缝切换,方便操作。
应用领域
- 串口CH340 转Wi-Fi;
- 工业透传DTU;
- Wi-Fi 远程监控/控制;
- 玩具领域;
- 色LED 控制;
- 消防、安防智能一体化管理;
- 智能卡终端,无线POS 机,Wi-Fi 摄像头,手持设备等。
组件
– 1 * Adeept UNO板
– 1 * USB电缆
– 1 * ESP8266-01wifi模块
– 1 *跳线
– 1 *LED
– 1 *220Ω电阻
程序
步骤1:如下图所示连接电路。

步骤2:上传程序
/*************************************
File name:Adeept_wifi_control_led
Description:
Website:www.addept.com
E-mail:support@addept.com
Author:felix
Date:2019/6/10
*************************************/
#include<SoftwareSerial.h> //use the library to commmunicate with esp8266 wifi module
#define rxPin 2 //define rx and tx pin
#define txPin 3
SoftwareSerial mySerial = SoftwareSerial(rxPin,txPin); //creat an object mySerial
//define esp8266 wifi module variate
char judge = 0;
String comdata = "";
//define receive data
String text1 = "\r\n+IPD,0,1:1";
String text2 = "\r\n+IPD,0,1:2";
// put your setup code here, to run once:
void setup() {
pinMode(13,OUTPUT);
mySerial.begin(115200); // set up a wifi serial communication baud rate 115200
delay(4000);
mySerial.println("AT+RST\r\n"); //reset wifi
delay(5000);
delay(5000);
mySerial.println("AT+CWMODE=3\r\n"); //set to softAP+station mode
delay(4000);
mySerial.println("AT+CIPMUX=1\r\n"); //set to multi-connection mode
delay(4000);
mySerial.println("AT+CIPSERVER=1\r\n"); //set as server
delay(4000);
mySerial.println("AT+CIPSTO=7000\r\n"); //keep the wifi connecting 7000 seconds
delay(4000);
digitalWrite(13,HIGH); //configuration is complete
delay(1000);
digitalWrite(13,LOW);
}
// put your main code here, to run repeatedly:
void loop() {
//receive the data
while(mySerial.available()>0)
{
comdata += char(mySerial.read());
delay(1);
}
//set the judge
judgement();
//judge the variate "judge"
switch(judge)
{
case 1: while(!mySerial.available()){digitalWrite(13,HIGH); }
break;
case 2: while(!mySerial.available()) {digitalWrite(13,LOW);}
break;
default: break;
}
}
//set the judge
void judgement(){
if (comdata.length() > 0)
{
if(comdata==text1){
judge=1;
}
if(comdata==text2){
judge=2;
}
comdata = "";
}
}
步骤3:配置网络调试助手(server ip和端口号是esp8266-01模块出厂默认的)

步骤4:连接电脑与esp8266-01模块


步骤5:开始通过网络调试助手无线控制LED



