Mando a distancia para rotor de antena

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);
}
Proyectos para avanzados.

Deja un comentario

Todos los comentarios son moderados antes de ser publicados

Artículos de blog

  1. Ahora instalamos el esp32 a través de la administración.
  2. Lüftersteuerung Raspberry Pi
  3. Arduino IDE - Programmieren für Einsteiger - Teil 1
  4. ESP32 - das Multitalent
  5. Transporte Aéreo - programación de ESP mediante redes locales inalámbricas