ESP8266 —— El teléfono móvil controla las luces LED en el Arduino (modo de comando LAN AT)

Principio del experimento

El teléfono móvil utiliza el software del teléfono móvil para controlar el encendido y apagado del LED Arduino que se ha conectado al 8266.

Pasos experimentales

Paso 1 : Conecte ESP8266 a través de USB-TTL para configurar el comando AT y guardar el modo de transmisión transparente. El cableado es el siguiente:

ESP8266 USB-TTL
VCC 3,3 V
GND GND
EN 3,3 V
RX TX
TX RX

Inserte la descripción de la imagen aquí
Envíe el comando AT a través del asistente de depuración en serie:

//设置WiFi应用模式为Station
AT+CWMODE_DEF=3
//连接到WiFi路由器,请将SSID替换为路由器名称,Password替换为路由器WiFi密码
AT+CWJAP_DEF="SSID","Password"
//连接单连模式
AT+CIPMUX=0
//设置为透传模式
AT+CIPMODE=1
//进入透传模式,并保存(进入后模块就一直为透传模式,需要退出则取消发送新行,发送+++)
,IP地址为远端设备地址,例:我用手机控制,那么我的手机在路由器WIFI上的IP地址为192.168.0.104
AT+SAVETRANSLINK=1,"你的手机的IP",8080,"TCP"

Después de que la configuración sea exitosa, el módulo pasará automáticamente cuando se encienda, si desea salir del modo de paso. Para volver al modo AT, debe enviar un comando: + +
feedback: CERRADO. (Si no sale de la transmisión transparente, nunca podrá ingresar al modo AT. Consulte el conjunto de comandos AT para obtener instrucciones).

Paso 2 : Sube el Arduino al programa de control de LED. (Tenga cuidado de no elegir el modelo de placa y el lema COM incorrectos)

int led_pin = 13;
//定义一个10字节的整型数据变量cmd作为命令,这里可以修改为不同的数字。此处设置为10是为了有更好的兼容性。
char cmd[10];
//判断收到的cmd是否有内容
bool valid_cmd = false;

void setup()
{
    
    
//定义连接led的引脚为输出信号
pinMode(led_pin, OUTPUT);
Serial.begin(115200);
}
void loop()
{
    
    
/*以下部分是串口信息处理过程*/
//定义一个整数型变量i
int i;
//如果串口收到有数据
if (Serial.available() > 0)
{
    
    
//变量i最大为10
for (i = 0; i < 10; i++)
{
    
    
//清空缓存,存入cmd变量,并以\0作为结束符
cmd[i] = '\0';
}
//此时i只能取前9位,第10位是结束符\0
for (i = 0; i < 9; i++)
{
    
    
//再次判断串口如果收到有数据,防止数据丢失
if (Serial.available() > 0)
{
    
    
//给变量cmd赋值,取串口收到的前9位字符
cmd[i] = Serial.read();
delay(1);
}
else
{
    
    
//如果串口数据超过9位,后面的字符直接忽略,跳到下一步
break;
}
}
/*以上串口信息处理结束*/

//得到最终变量cmd的有效值
valid_cmd = true;
}

//判断变量cmd的值,开始处理
if (valid_cmd)
{
    
    
//如果变量cmd的前2位的值是on
if (0 == strncmp(cmd, "on", 2))
{
    
    
//则连接led的引脚电压被置高5V,
digitalWrite(led_pin, HIGH);
//串口打印返回值ON,表示ON的操作执行成功
Serial.println("ON");
}
else if (0 == strncmp(cmd, "off", 3)) //否则如果变量cmd的前3位的值是off
{
    
    
//则连接继电器的引脚电压被置低0V,灯的电路被断开,灯灭
digitalWrite(led_pin, LOW);
//串口打印返回值F,表示OFF的操作执行成功
Serial.println("OFF");
}
else //如果以上两个条件都不成立,前2位不是ON,或者前3位不是OFF,即不正确的命令
{
    
    
//仅串口打印返回值X,表示指令错误。
Serial.println("X");
}
//到此,变量cmd的指令被处理完毕
valid_cmd = false;
}
//延迟10毫秒,返回loop主程序继续读取新的串口指令
delay(10);
}

Paso 3 : Conecte el ESP8266 y las luces LED a Arduino.

ESP8266 Arduino
Vcc 3,3 V
GND GND
EN 3,3 V
RX TX
TX RX

Paso 4 : Abra la APLICACIÓN del teléfono móvil, agregue un SERVIDOR TCP, el número de puerto debe ser consistente
1. Abra el asistente de depuración de red, haga clic en Configuración del SERVIDOR TCP
Inserte la descripción de la imagen aquí
2. Cuando el servidor está encendido, el ESP8266 se conecta automáticamente.
Inserte la descripción de la imagen aquí
3. Envíe "on" en el cuadro de envío para iluminar el LED de 13 pines en el Arduino.
4. Envíe "off" en el cuadro de envío para apagar el LED de 13 pines en el Arduino.

Recordatorios:
1. Si ESP8266 no aparece en el servidor (teléfono móvil), verifique si el teléfono y ESP8266 están conectados al mismo enrutador. No utilice enrutadores secundarios (es decir, enrutamiento-enrutamiento), de lo contrario, puede bloquear la red y provocar fallas en la conexión.
2. En este pequeño experimento: debe recordar guardar el modo de transmisión transparente. Si no lo guarda, no podrá ingresar automáticamente al modo de transmisión transparente después de encender nuevamente. Se recomienda que primero aprenda sobre el uso de ESP8266 antes de probar este experimento.
3. La dirección IP es la dirección IP del teléfono móvil en el WIFI del enrutador, no la rellene mal.
4. El asistente de depuración de red en el teléfono móvil, las minúsculas "on" y "off" se envían en el cuadro de envío, y la retroalimentación es en mayúsculas "ON" y "OFF"; la retroalimentación "X" significa que los dos primeros los dígitos del cuadro de envío no están activados. Los primeros tres dígitos no están desactivados, por lo que retroalimenta "X" para indicarlo, según la definición del programa.

Supongo que te gusta

Origin blog.csdn.net/weixin_44925547/article/details/106974684
Recomendado
Clasificación