Bei meinem Projekt habe ich einen Microschalter (Taster) in das Türschloss eingebaut,
damit ich sehen kann, ob die Tür verschlossen ist oder offen. Dafür nehme ich D1 Mine und ein Display,
und lasse mir darüber den Status anzeigen, ob die Tür offen oder geschlossen ist.
Nun meine Frage: wie kann ich die Sketch D1 Mine und ein Display mit dem Sketch Web Server miteinander
verbinden, so dass ich auf der Internetseite den Status des Microschalters sehe, ob die Tür geschlossen oder offen ist?Verwende dieses Symbol um Code zu posten
Im Anhang habe ich die beiden Sketch beigefügt.
Vielleicht können Sie mir helfen.
Aufrufen eine Web Seite mDNS Server
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
#include <ESP8266mDNS.h>
ESP8266WebServer server(80);
const char* ssid = " ";
const char* password = " ";
// http://makesmart-esp.local/
const char* dns_name = "Tuer_Kontakte";
void eigeneFunktion();
void setup()
{
Serial.begin(9600);
Serial.println("ESP Gestartet");
WiFi.begin(ssid, password);
Serial.print("Verbindung wird hergestellt ...");
while (WiFi.status() != WL_CONNECTED)
{
delay(500);
Serial.print(".");
}
Serial.println();
Serial.print("Verbunden! IP-Adresse: ");
Serial.println(WiFi.localIP());
// Bei Android-Geräten wird der mDNS oft nicht unterstützt, dann muss auf die IP-
Adresse zurückgegriDen werden
if (MDNS.begin(dns_name)) {
Serial.println("DNS gestartet, erreichbar unter: ");
Serial.println("http://" + String(dns_name) + ".local/");
}
server.onNotFound([](){
server.send(404, "text/plain", "Link wurde nicht gefunden!");
});
server.on("/", []() {
server.send(200, "text/plain", "ESP-Startseite!");
});
server.on("/custom", []() {
server.send(200, "text/plain", "Nur eine Beispiel-Route");
eigeneFunktion();
});
server.begin();
Serial.println("Webserver gestartet.");
}
void loop() {
Abfrage von 3 Taster und anzeige auf Display
#include <Wire.h> // Wire Bibliothek einbinden
#include <LiquidCrystal_I2C.h> // Vorher hinzugefügte LiquidCrystal_I2C Bibliothek
einbinden
LiquidCrystal_I2C lcd(0x27, 20, 4); //Für ein vierzeiliges I2C-LCD verwendet man den
Code "LiquidCrystal_I2C lcd(0x27, 20, 4)"
int pinStatusGargentor = 16;
int pinStatuswerkstattor = 14;
int pinStatuskellertor = 12;
void setup()
{
Serial.begin(115200);
pinMode(pinStatusGargentor,INPUT);
pinMode(pinStatuswerkstattor,INPUT);
pinMode(pinStatuskellertor, INPUT);
lcd.begin();
lcd.backlight();
}
void loop()
{
if (digitalRead(pinStatusGargentor) == LOW)//16
{
Serial.println("Tür geschlosen");
lcd.setCursor(0, 0);
lcd.print("Garge.Tuer geschosen");
Werkstatttor();
Kellertor();
}
else
{
Serial.println("Tür offen");
lcd.setCursor(0, 0);
lcd.print("Garge.Tuer offen ");
Werkstatttor();
Kellertor();
}
}
void Werkstatttor()
{
if (digitalRead(pinStatuswerkstattor) == LOW)//14
{
lcd.setCursor(0, 1);
lcd.print("Werks.Tuer geschosen");
}
else
{
lcd.setCursor(0, 1);
lcd.print("Werks.Tuer offen ");
}
}
void Kellertor()
{
if (digitalRead(pinStatuskellertor) == LOW)//12
{
lcd.setCursor(0, 2);
lcd.print("Kellertuer geschosen");
}
else
{
lcd.setCursor(0, 2);
lcd.print("Kellertuer offen ");
}
}