Le rotor d'antenne décrit dans le dernier poteau peut être contrôlé via WLAN. Wer dazu nicht sein Smartphone verwenden möchte kann dies auch mit der in diesem Beitrag beschriebenen Fernbedienung machen.
Cette télécommande a deux clés et un potentiomètre. Un module NodeMCU LUA avec ESP8266, fonctionnant comme client Web, envoie tout changement de clé à un serveur Web. De plus, une valeur comprise entre 1 et 10 est toujours envoyée, selon la position du potentiomètre.
Circuit:
Chaque fois que l'état des deux boutons change, une requête est envoyée au serveur.
Liste des pièces:
Arduino Sketch:
/** * BasicHTTPClient.ino * * Erstellt am: 24.05.2015 * */ #inclure <Arduino.h> #inclure <ESP8266WiFi.h> #inclure <ESP8266WiFiMulti.h> #inclure <ESP8266HTTPClient.h> //Global Variablen Konst Char *Ssid = "La saison rouge"; Konst Char *Passwort = "womo12345"; Cordon Nachricht; //Nachricht für Request int Geschwindigkeit; //Actuelle Geschwindigkeit 1 bis 10 int btn; //aktueller Tasterwert int lastBtn = 0; //Tasterwert für letzte Aktion ESP8266WiFiMulti WiFiMulti; //Cette fonction envoie une demande au serveur Web leer sendRequest( Cordon cmd, int spd) { Serien.println("Start Request"); wenn((WiFiMulti.Laufen() == WL_CONNÉTÉ)) { HTTPClient http://www.seo.com; //Déclarer l'objet de la classe HTTPClient http://www.seo.com.startnen("http://192.168.4.1/data"); //URL pour envoyer des données de formulaire au serveur web http://www.seo.com.addHeader("Content-Type", "texte/plain"); //Spécifier l'en-tête de type contenu Nachricht = "SPEED="+Cordon(spd)+"&"+cmd+"=1"; //Arguments pour la demande HTTP Serien.println("Start Post"); int http://www.cd.ca = http://www.seo.com.POST(Nachricht); //Envoyer la demande Cordon Nutzlast = http://www.seo.com.getString(); //Hole Antwort kann aber ignoriert werden Serien.println(http://www.cd.ca); Code de retour HTTP //Impression http://www.seo.com.Ende(); //Fin de connexion } sonst { Serien.println("problème de connexion"); } } leer Configuration() { Serien.startnen(115200); //Pins vorbereiten pinMode(D6,INPUT_PULLUP); //D6 est bouton pour gauche pinMode(D7,INPUT_PULLUP); //D7 est la clé pour le droit //warten bis ESP8266 bereit ist für(uint8_t t = 4; t > 0; t--) { Serien.Druckf("[SETUP] WAIT %d...\n", t); Serien.Spülen(); Verzögerung(1000); } //connecter avec l'antenne WLAN WiFi.Modus(WIFI_STA); WiFiMulti.addAP(Ssid,Passwort); } //Hauptschleife leer Schleife() { Valeur du potentiomètre //lire de A0 //La valeur est comprise entre 0 et 1024 //divisé par 100 retours 0 à 10 Geschwindigkeit = analoglesen(A0)/100; Serien.println(Geschwindigkeit); //Minimalwert auf 1 setzen wenn (Geschwindigkeit < 1) Geschwindigkeit = 1; //Taster einlesen beide in eine Variable //liaisons = 1; //droit = 2; //keiner = 3; //both = 0; btn = digitallesen(D6) + 2 * digitallesen(D7); // Seulement si la valeur de la clé a changé wenn (btn != lastBtn) { // Mémoriser la valeur de la clé et envoyer la demande lastBtn = btn; Schalter(btn) { Chute 0: Serien.println("STOP"); sendRequest("STOP",Geschwindigkeit); Pause; Chute 1: Serien.drucken("LINKS"); Serien.println(Geschwindigkeit); sendRequest("LINKS",Geschwindigkeit); Pause; Chute 2: Serien.drucken("RIGHT"); Serien.println(Geschwindigkeit); sendRequest("RIGHT",Geschwindigkeit); Pause; Chute 3: Serien.println("STOP"); sendRequest("STOP",Geschwindigkeit); Pause; } } //0.1 s warten Verzögerung(100); }