Fernsteuerung für Antennen Rotor

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);
}
Projekte für fortgeschrittene

Deja un comentario

Todos los comentarios son moderados antes de ser publicados

Publicaciones de blog recomendadas

  1. Wir bauen eine Smart Home Zentrale mit ArduiTouch
  2. Schrittmotor Steuerung für Antennen Rotor
  3. Arbeiten mit dem Cayenne Dashboard - einfacher Sensor (Teil 1)
  4. Mit dem ESP8266 8 Lampen steuern