Ferien Dreams of reni-land
Home
Reed-Kontakt
Arduino
Arduino LCD Display
Arduino Weiche
Lichtschranke
Fotowiderstand
TFT Bildschirm
Arduino UNO WiFi
Arduino Uno/ Uno
Arduino MP3 Player
Arduino LED Strip
Arduino LED Löten
Arduino Karussell
Power Turm Umbau
Flipper Umbau
Skalierung zu 1:87
Verkauf
Faller Motor
 
 
 
 
 
Arduino WIFI - Steuerzentrale: (Arduino WEMOS D1 und 2 Arduino UNO)
Homepage
Bordverwalter
Voreinstellung
       
WEMOS D1 – Arduino UNO kompatibles Board mit ESP8266 Chip
Zubehör:
Arduino Wemos D1
2 LED und Kabel
 
Einrichten:

Als erstes muss eine zusätzliche Adresse eingerichtet werden, dazu wird über das Menü zu den „Voreinstellungen“
navigiert („Datei“ => „Voreinstellungen“ ).

Im neu geöffneten Fenster „Voreinstellungen“ wird nun die
Adresse => http://arduino.esp8266.com/stable/package_esp8266com_index.json <= in das
Feld „zusätzliche Boardverwalter-URLs“ eingeben.

Nun die Bibliothek über das Menü „Werkzeuge“ -> „Board: „xyz“ “=> „Boardverwalter…“ hinzuzufügen.
Im nun geöffneten Fenster können Sie über das Eingabefeld „Grenzen Sie Ihre Such ein...“ die Liste mit der Eingabe „esp“ einschränken.

Es wird nun der Eintrag „esp8266 by ESP8266 Community“ gewählt.
Nun noch die Schaltfläche „installieren“ betätigen und nach dem der installationsvorgang beendet wurde.
Kann das Fenster über die Schaltfläche „Schließen“ geschlossen werden.
Nun ist die Bibliothek eingebunden es kann fast losgehen.
Als erstes muss man das korrekte Board auswählen.=>NodeMCU 1.0 (ESP-12E Module) <=
Nun kann auch das Beispiel unten hochgeladen werden.
Im Serieller Monitor sieht man dann die IP Adresse

Da die Anmeldung am Netzwerk relativ lange dauert
und das Gerät später zuverlässig über eine bestimmte IP Adresse angesprochen werden soll,
habe ich das Modul mit der MAC Adresse, eine feste IP Adresse im "Modem/Connect Box etc." vergeben.

 
Anschliessen:
1 LED an Pin D5 und GND
1 LED an Pin D6 und GND
 
Es wird keine Garantie gegeben das die Resourcen (*.css, *.png) Dateien aus diesem Beispiel dauerhaft erreichbar sind.
Programmcode:

#include <ESP8266WiFi.h>

const char* ssid = "*******"; //SSID aus dem Router
const char* password = "**********"; //Passwort für den Zugang zum WLAN
const String htmlOK = "HTTP/1.1 200 OK";
const String htmlContentType = "Content-Type: text/html";
const String htmlBegin = "<!DOCTYPE HTML><html>";
const String htmlLinks = "<head><link rel='stylesheet' href='http://reni-land.ch/arduino.css'/></head><body>";
const String htmlEnd = "</body></html>";
const String htmlBreakLine = "</br>";

int ledPin = D5; //digitaler PIN 5 des Wemos D1 an welchem die LED angeschlossen ist.
int ledPin1 = D6; //digitaler PIN 6 des Wemos D1 an welchem die LED angeschlossen ist.

int ledStatus = LOW; //aktueller Status der LED (default / start -> AUS)
int ledStatus1 = LOW; //aktueller Status der LED (default / start -> AUS)

WiFiServer server(80); //Port auf welchem der Server laufen soll.

void setup() {

pinMode(ledPin, OUTPUT); //Den LEDPin als ausgang setzen.
pinMode(ledPin1, OUTPUT); //Den LEDPin als ausgang setzen.

digitalWrite(ledPin, ledStatus); //Die LED initial auf den Status "AUS" setzen.
digitalWrite(ledPin1, ledStatus1); //Die LED initial auf den Status "AUS" setzen.
WiFi.begin(ssid, password); //Initialisieren der Wifi Verbindung.

while (WiFi.status() != WL_CONNECTED) { //Warten bis die Verbindung aufgebaut wurde.
delay(500);
}
server.begin(); // Starten des Servers.
}
/**
* Die Funktion gibt den HTML Kopf auf dem Client aus.
* Dieses wird für jeden Respond verwendet.
**/
void printHtmlHeader(WiFiClient client){
client.println(htmlOK);
client.println(htmlContentType);
client.println("");
client.println(htmlBegin);
client.println(htmlLinks);
}
void loop() {
//Prüfen ob sich ein Client verbunden hat, wenn nicht die Loop "verlassen"
WiFiClient client = server.available();
if (!client) {
return;
}

// Wenn sich ein Client verbunden hat solange warten bis Daten gesendet werden.
while(!client.available()){
delay(1);
}

//Lesen der Anfrage vom Client
String request = client.readStringUntil('\r');
client.flush();

//Wenn in der Anfrage die Zeichenkette "/ledpinA" vorkommt dann...

if (request.indexOf("/ledpinA") != -1) {
if(ledStatus == HIGH){
ledStatus = LOW;
} else {
ledStatus = HIGH;
}
digitalWrite(ledPin, ledStatus);
}

if (request.indexOf("/ledpinB") != -1) {
if(ledStatus1 == HIGH){
ledStatus1 = LOW;
} else {
ledStatus1 = HIGH;
}
digitalWrite(ledPin1, ledStatus1);
}

//Gibt den Html Header auf der Antwort aus.
printHtmlHeader(client);

//Ab hier wird die Webseite zusammengesetzt.
client.println("<div class='mainWrapper'>");

String value = "-undefined-";
String valueA = "-undefined-";

//Die Adresse für die Bilder
const String imgStartUrl = "http://reni-land.ch/";
String imgUrl = imgStartUrl + "light_on.png";

const String imgStartUrlA = "http://reni-land.ch/";
String imgUrlA = imgStartUrlA + "light_on.png";

//HTML Code
if(ledStatus == HIGH) {
value = "AN";
} else {
value = "AUS";
imgUrl = imgStartUrl + "light_off.png";
}

if(ledStatus1 == HIGH) {
valueA = "AN";
} else {
valueA = "AUS";
imgUrlA = imgStartUrlA + "light_off.png";
}

 

client.print("<table width='100%' border='1'>");
client.print("<tr>");
client.print("<td>LED I</td>");
client.print("<td>LED II</td>");
client.print("<td>LED III</td>");
client.print("</tr>");
client.print("<tr>");
client.print("<td align='center'><img src='"+imgUrl+"' widht='64' height='64'/></td>");
client.print("<td align='center'><img src='"+imgUrlA+"' widht='64' height='64'/></td>");
client.print("<td align='center'><img src='"+imgUrl+"' widht='64' height='64'/></td>");
client.print("</tr>");

client.print("<tr>");
client.print("<td>Status: ");
client.print(value);
client.print("</td>");

client.print("<td>Status: ");
client.print(valueA);
client.print("</td>");

 

client.print("<td>&nbsp;</td>");
client.print("</tr>");

 

client.print("<tr>");
client.print("<td><div class='headline'><a href=\"/ledpinA\">Start</a></div></td>" );
client.print("<td><div class='headline'><a href=\"/ledpinB\">Start</a></div></td>");
client.print("<td>&nbsp;</td>");
client.print("</tr>");

//SSID und IP Adresse Anzeige
client.print("<tr>");
client.print("<td colspan='3' bgcolor='ccff33'>");
client.print("reni-land.ch: ");
client.print(ssid);
client.print(" IP: ");
client.print(WiFi.localIP());
client.print(" <br> ");
client.print(WiFi.macAddress());
client.print("</td>");
client.print("</tr>");

client.print("</table>");


//client.println(htmlBreakLine);
client.println(htmlBreakLine);
client.println(htmlEnd);
delay(1); //1ms. Pause
}