El rotor de antena descrito en el último artículo se puede controlar a través de WLAN. Si no desea utilizar su teléfono inteligente, puede hacerlo con el mando a distancia descrito en este artículo.
Este mando a distancia tiene dos botones y un potenciómetro. Un módulo NodeMCU LUA con ESP8266 trabajando como cliente web envía cada cambio de claves a un servidor Web. Además, siempre se envía un valor entre 1 y 10, dependiendo de la posición del potenciómetro.
Circuito:
Cada vez que cambia el estado de los dos botones, se envía una solicitud al servidor.
Bom:
Arduino Sketch:
/** * BasicHTTPClient.ino * * Creado el: 24 de mayo de 2015 * */ #include <Arduino.H> #include <ESP8266WiFi.H> #include <ESP8266WiFiMulti.H> #include <ESP8266HTTPClient.H> Variables globales Const Char *Ssid = "Antena"; Const Char *Contraseña = "womo12345"; Cadena Mensaje; Mensaje de solicitud Int Velocidad; velocidad actual 1 a 10 Int Btn; Valor actual del botón Int lastBtn = 0; Valor del botón para la última acción ESP8266WiFiMulti WiFiMulti; esta función envía una solicitud al servidor web Vacío Sendrequest( Cadena Cmd, Int Spd) { Serial.println("Solicitud de inicio"); Si((WiFiMulti.Ejecutar() == WL_CONNECTED)) { HTTPClient http; Declarar el objeto de la clase HTTPClient http.Comenzar("http://192.168.4.1/data"); URL para enviar datos de formulario al servidor web http.addHeader("Content-Type", "Texto/sin formato"); Especificar encabezado de tipo de contenido Mensaje = "SPEED"+Cadena(Spd)+"&"+Cmd+"=1"; Argumentos para la solicitud HTTP Serial.println("Iniciar Publicación"); Int httpCode = http.Exponer(Mensaje); Enviar la solicitud Cadena Carga útil = http.Getstring(); La respuesta del agujero se puede ignorar, pero Serial.println(httpCode); Imprimir código de retorno HTTP http.Final(); Detener la conexión } Más { Serial.println("Problema de conexión"); } } Vacío Configuración() { Serial.Comenzar(115200); Preparación de pines pinMode(D6,INPUT_PULLUP); D6 es el botón para la izquierda pinMode(D7,INPUT_PULLUP); D7 es el botón para la derecha esperar hasta que ESP8266 esté listo Para(uint8_t T = 4; T > 0; T--) { Serial.Printf("[SETUP] WAIT %d., T); Serial.rubor(); Retraso(1000); } Conéctese a la antena WLAN Wifi.Moda(WIFI_STA); WiFiMulti.addAP(Ssid,Contraseña); } Lazo principal Vacío Bucle() { leer el valor del potenciómetro de A0 El valor está entre 0 y 1024 dividido por 100 resultados 0 a 10 Velocidad = analogRead(A0)/100; Serial.println(Velocidad); Establezca el valor mínimo en 1 Si (Velocidad < 1) Velocidad = 1; Botón leer ambos en una variable izquierda 1; derecho 2; ninguno de los 3; tanto 0; Btn = digitalRead(D6) + 2 * digitalRead(D7); Sólo si el valor del botón ha cambiado Si (Btn != lastBtn) { Recuerde el valor de la clave y envíe la solicitud correspondiente lastBtn = Btn; Interruptor(Btn) { Caso 0: Serial.println("STOP"); Sendrequest("STOP",Velocidad); Romper; Caso 1: Serial.Impresión("IZQUIERDA"); Serial.println(Velocidad); Sendrequest("IZQUIERDA",Velocidad); Romper; Caso 2: Serial.Impresión("Derecha"); Serial.println(Velocidad); Sendrequest("Derecha",Velocidad); Romper; Caso 3: Serial.println("STOP"); Sendrequest("STOP",Velocidad); Romper; } } 0.1 s esperando Retraso(100); }