Fernsteuerung für Antennen Rotor - AZ-Delivery

Il rotore dell'antenna descritto nell'ultimo articolo può essere controllato tramite WLAN. Se non si desidera utilizzare lo smartphone, è possibile farlo con il telecomando descritto in questo articolo.

Questo telecomando ha due pulsanti e un potenziatore. Un modulo NODEMCU LUA con ESP8266 che funziona come un client web invia ogni modifica delle chiavi a un server web. Inoltre, viene sempre inviato un valore compreso tra 1 e 10, a seconda della posizione del potenziatore.

Circuito:

Ogni volta che lo stato dei due pulsanti cambia, viene inviata una richiesta al server.

 

Bom:

Schizzo Arduino:

/**
 - BasicHTTPClient.ino
 *
 - Creato il: 24 maggio 2015
 *
 */

#include <Arduino.H>

#include <ESP8266WiFi.H>
#include <ESP8266WiFiMulti.H>

#include <ESP8266HTTPClient.H>


Variabili globali
Const Char *Ssid = "Antenna";
Const Char *Password = "womo12345";
Stringa Messaggio; Messaggio per la richiesta
Int Velocità; velocità attuale da 1 a 10
Int Btn; Valore del pulsante corrente
Int lastBtn = 0; Valore del pulsante per l'ultima azione

ESP8266WiFiMulti WiFiMulti;

questa funzione invia una richiesta al server web
Vuoto Sendrequest (richiesta)( Stringa Cmd, Int Spd) {   Seriale.println("Richiesta di avvio");
 Se((WiFiMulti.Correre() == WL_CONNECTED)) {      HTTPClient (client) http (informazioni in stato;    Oggetto Declare della classe HTTPClient        http (informazioni in stato.Iniziare("http://192.168.4.1/data");     URL per l'invio dei dati del modulo al server Web    http (informazioni in stato.addHeader (intestazione)("Tipo di contenuto", "testo/semplice");  Specificare l'intestazione del tipo di contenutoSpecify content-type header    Messaggio = "VELOCITÀ"+Stringa(Spd)+"&"+Cmd+"=1"; Argomenti per la richiesta HTTPArguments for the HTTP request       Seriale.println("Avvia post");      Int HttpCode (informazioni in questo base informazioni = http (informazioni in stato.Inserisci(Messaggio);   Inviare la richiesta    Stringa Payload = http (informazioni in stato.Getstring();   La risposta del foro può essere ignorata,      Seriale.println(HttpCode (informazioni in questo base informazioni);   Stampa codice restituito HTTP      http (informazioni in stato.Fine();  Interrompere la connessione
 
 }  Altro {   Seriale.println("problema di connessione");
 }    }

Vuoto Installazione() {     Seriale.Iniziare(115200);   Preparazione dei perni   PinMode (Modalità pin)(D6,INPUT_PULLUP); D6 è il pulsante per sinistra   PinMode (Modalità pin)(D7,INPUT_PULLUP); D7 è il pulsante per il diritto   attendere che ESP8266 sia pronto     Per(uint8_t T = 4; T > 0; T--) {         Seriale.Printf("[SETUP] WAIT %d., T);         Seriale.sciacquone();         Ritardo(1000);     }     Collegamento all'antenna WLAN     Wifi.Moda(WIFI_STA);     WiFiMulti.addAP (informazioni in stato di(Ssid,Password);


}

Ciclo principale
Vuoto Ciclo() {   leggere il valore del misuratore di A0   Il valore è compreso tra 0 e 1024   diviso per 100 risultati da 0 a 10   Velocità = analogicOLettura(A0)/100;   Seriale.println(Velocità);   Impostare il valore minimo su 1   Se (Velocità < 1) Velocità = 1;   Pulsante letto entrambi in una variabile   a sinistra 1;   a destra 2;   nessuno - 3;   entrambi i valori : 0;   Btn = digitalRead (Lettura digitale)(D6) + 2 * digitalRead (Lettura digitale)(D7);   Solo se il valore del pulsante è cambiato   Se (Btn != lastBtn) {     Ricordare il valore della chiave e inviare la richiesta corrispondente     lastBtn = Btn;     Interruttore(Btn) {       Caso 0: Seriale.println("STOP" (STOP));         Sendrequest (richiesta)("STOP" (STOP),Velocità);         Pausa;       Caso 1: Seriale.Stampare("SINISTRA");         Seriale.println(Velocità);         Sendrequest (richiesta)("SINISTRA",Velocità);         Pausa;       Caso 2: Seriale.Stampare("DIRITTO");         Seriale.println(Velocità);         Sendrequest (richiesta)("DIRITTO",Velocità);         Pausa;       Caso 3: Seriale.println("STOP" (STOP));         Sendrequest (richiesta)("STOP" (STOP),Velocità);         Pausa;     }   }   0.1 s attesa   Ritardo(100);
}
Projekte für fortgeschrittene

Lascia un commento

Tutti i commenti vengono moderati prima della pubblicazione