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); }