Lösung-Servomotor
#include <ESP32Servo.h> // Bibliothek für die Steuerung des Servos
#include <SoftwareSerial.h> // Bibliothek SoftwareSerial.h
#include <ThingSpeak.h> // Bibliothek ThingSpeak.h
#include <WiFi.h> // Bibliothek WiFi.h
const char* NETZWERK = ""; // Netzwerkname
const char* PASSWORT = ""; // Netzwerk-Passwort
const int CHANNEL_ID = ; // Channel ID
const char* CHANNEL_API_WRITE_KEY = ""; // Write API Key
const char* CHANNEL_API_READ_KEY = ""; // Read API Key
String inhalt = ""; // Variable für den Inhalt des QR-Codes nach dem Auslesen
long zeit = 0; // Variable zur Zwischenspeicherung der Programmlaufzeit
WiFiClient client; // client
SoftwareSerial QR_Port(16,17); // Rx, Tx
Servo garagentor; // Servo-Name definieren
void InternetverbindungHerstellen()
{
WiFi.begin(NETZWERK, PASSWORT); // Aufbau der Internetverbindung
while (WiFi.status() != WL_CONNECTED) // Warten bis mit Internet (Router) verbunden
{
}
Serial.println("Verbunden mit IP-Adresse: " + WiFi.localIP().toString()); // Ausgabe, dass Internetverbindung besteht
// Ausgabe der zugewiesenen IP-Adresse im Netz
}
int leseThingSpeak()
{
return (ThingSpeak.readIntField(CHANNEL_ID, 1, CHANNEL_API_READ_KEY)); // Daten lesen und zurückgeben
}
void schreibeThingSpeak(int wertField1)
{
ThingSpeak.setField(1, wertField1); // Wert in Feld 1 schreiben
ThingSpeak.writeFields(CHANNEL_ID, CHANNEL_API_WRITE_KEY); // Daten senden
}
void oeffneGarage()
{
for(int i=120; i >= 10; i--)
{
garagentor.write(i); // Servo-Schritte steuern
delay(30); // Verzögerung
}
}
void schliesseGarage()
{
for(int i=10; i <= 120; i++)
{
garagentor.write(i); // Servo-Schritte steuern
delay(30); // Verzögerung
}
}
void setup() {
Serial.begin(9600); // Verbindung zum PC
QR_Port.begin(9600); // Verbindung zum QR-Port-Scanner-Modul
InternetverbindungHerstellen(); // öffnen der Methode für die Internetverbindung
ThingSpeak.begin(client); // Starten des Clients
garagentor.attach(13); // Pin 13 für PWM definieren
}
void loop() {
if(QR_Port.available()) // Abfrage, ob QR-Code-Daten vorhanden sind
{
zeit = millis(); // Programmlaufzeit zwischenspeichern
while(millis() <= (zeit+500)) // eine halbe Sekunde warten
{
if(QR_Port.available()) // Abfrage, ob QR-Code-Daten vorhanden sind
{
inhalt += (char)QR_Port.read(); // Daten in Variable inhalt speichern
}
}
Serial.println(inhalt); // Daten ausgeben
inhalt = ""; // Inhalt löschen für erneutes Einlesen
}
}
Last modified: Wednesday, 7 July 2021, 11:02 AM