in mijn vorige post, de antenne beschreven, de rotor kan via Wi-Fi kan gecontroleerd worden. Wie zou niet willen gebruiken hun Smartphone kunt dit ook doen met de in dit document beschreven van een afstandsbediening.
Deze afstandsbediening heeft twee knoppen en een Potentiometer. Als een Web-Client werken NodeMCU LUA module met ESP8266 zendt elke Wijziging van de toetsen op een Web Server. Daarnaast is steeds een waarde tussen de 1 en de 10 zal worden verzonden, afhankelijk van de Potentiometer positie.
Circuit:
Altijd wanneer facedwith de toestand van de twee knoppen veranderen is een Verzoek dat wordt verzonden naar de Server.
Onderdelen lijst:
Arduino Sketch:
/** * basic HttpClient.ino * * Gemaakt op: 24.05.2015 * */ #include <Arduino.h> #include <ESP8266WiFi.h> #include <ESP8266WiFiMulti.h> #include <ESP8266HTTPClient.h> //globale variabelen const char *ssid = "antenne"; const char *wachtwoord = "womo12345"; String message; //bericht voor de Aanvraag int speed; //huidige snelheid van 1 tot 10 int btn; //de stroom van de knop value int lastBtn = 0; //Knop waarde voor de laatste actie ESP8266WiFiMulti wifi multi; //Deze functie verzendt een Aanvraag naar de webserver void sendRequest( String cmd,, int spd) { Seriële.println("Start Verzoek"); als((wifi multi -.run() == WL_CONNECTED)) { HTTPClient http; //Declare object van de klasse HTTPClient http.beginnen("http://192.168.4.1/data"); //URL naar formulier gegevens naar de webserver te sturen http.addHeader("Content-Type", "text/plain"); //Specificeer de content-type header van het bericht = "- SNELHEID="+String(spd)+"&"+cmd+"=1"; //argumenten voor de HTTP-Aanvraag Serial.. println("Start Post"); int httpCode = http.POST(bericht); //het Verzenden van de aanvraag String lading = http.getString(); //antwoord krijgt, maar het kan worden genegeerd Seriële.println(httpCode); //Print de HTTP-return-code http.einde(); //beëindigen de verbinding } anders { Serial.. println("Probleem"); } } void setup() { Seriële.beginnen(115200); //Pinnen voor te bereiden pinMode(D6,INPUT_PULLUP); //D6 is de knop voor links pinMode(D7,INPUT_PULLUP); //D7 is een knop voor het juiste //wacht tot de ESP8266 is klaar voor(uint8_t t = 4; t > 0; t--) { Seriële.printf("[SETUP] - WAIT %d\n",, t); Seriële.flush(); vertraging(1000); } //met de Wi-Fi-antenne om verbinding te maken met WiFi.- modus(WIFI_STA); wifi multi.addAP(ssid,wachtwoord); } //main loop void loop() { //read Potentiometer waarde van A0 //waarde is tussen 0 en 1024 //gedeeld door 100 is 0 tot 10 snelheid = analogRead(A0)/100; Seriële.println(snelheid); //minimale waarde 1 als (snelheid < 1) snelheid = 1; //Knop lezen in een Variabele //links = 1; //rechts = 2; //geen = 3; //beide = 0; btn = digitale lezen(D6) + 2 * digitale lezen(D7); //Alleen als de knop waarde veranderd als (btn != lastBtn) { //de waarde van de sleutel om te onthouden en overeenkomen met de Aanvraag verzenden lastBtn = btn; schakelaar(btn) { geval 0: Seriële.println("STOP"); sendRequest("STOP",snelheid); breken; geval 1: Serieel.afdrukken("LINKS "); Serial.. println(snelheid); sendRequest("LINKS",snelheid); breken; geval 2: Serieel.afdrukken("RECHTS "); Seriële.println(snelheid); sendRequest("RECHTS",snelheid); breken; geval 3: Seriële.println("STOP"); sendRequest("STOP",speed); break; } } //0.1 s wachten vertraging(100); }