Schlagwort-Archive: ESP8266

BitBastelei #553 – ESPHome: ESP-Firmware für HomeAssistant

BitBastelei #553 - ESPHome: ESP-Firmware für HomeAssistant

(466 MB) 00:32:59

2023-08-20 10:00 🛈

Wenn man selbst Sensoren oder Aktoren mit WLAN bauen möchte, dann sind ESP32 und ESP8266 fast immer der Prozessor der Wahl. Aber welche Firmware? Selber schreiben ist aufwändig und Tasmota ist nicht ganz so flexibel, wenn man von Standardfunktionen abweicht. Hier möchte ESPHome ansetzen: Technisch baut man hier eine komplett eigene Firmware für den jeweiligen Anwendungszweck, statt sich mit Code und Libraries herumzuschlagen, muss man hier nur in einer Konfiguration beschreiben was man möchte. Alles Weitere erledigt die Automatik, welche auch gleich noch eine verschlüsselte Verbindung zu HomeAssistant aufbaut und diesen fertig konfiguriert. Das verspricht zumindest die Projektbeschreibung.

Inhalt

00:00 Arduino mit HomeAssistant – Varianten
00:59 Das ESPHome-Konzept
02:53 Installation
05:05 ESPHome Dashboard im Browser
12:35 Ein- und Ausgaben per Config-Datei
19:20 Firmware-Installation
24:09 OTA-Updates und Neukonfiguration
26:48 Nutzung auf der Textkonsole
28:00 Meinung / Fazit

Links zum Thema

Transparenz

Die Geräte wurden selbst gekauft und bezahlt. Die Software ist kostenlos und unter freier Lizenz.

BitBastelei #526 – ESP WiFi Switch Fehlersuche & Reparatur

BitBastelei #526 - ESP WiFi Switch Fehlersuche & Reparatur

(2 GB) 00:00:00

2023-02-12 11:00 🛈

WiFi-Schalter ähnlich des Sonoff Basic sind schon lange auf dem Markt. Ein solcher hat in einer meiner Versuchsaufbauten nun den Dienst quittiert: Das Gerät verschwand irgendwann aus dem WLAN und tauchte nicht mehr auf. Also: Werkzeug raus, wird schon nicht viel sein.

Inhalt

  • 00:00 Das Problemgerät
  • 03:40 Reparatur
  • 08:15 Firmware-Upgrade
  • 10:23 Gehäuse notdüftig anpassen
  • 12:46 Fazit

Fehler und Ergänzungen

  • 00:10 Da hat es wohl die Audiospur etwas weggetrieben. Sollte zumindest für den Rest des Videos gleich bleiben
  • 07:13 *Editing

Transparenz

Die gezeigten Geräte wurden selbst gekauft und bezahlt.

BitBastelei #523 – ESP8266 Boot Modes und nötige Widerstände

BitBastelei #523 - ESP8266 Boot Modes und nötige Widerstände

(2 GB) 00:24:42

2023-01-22 11:00 🛈

Der ESP8266 war und ist ein beliebter Mikrocontroller bei Bastlern, er hat jedoch eine teils sehr nervige Eigenheit: Das starten. Während die meisten µCs einfach nur Strom benötigen möchte ein ESP diverse Pins HIGH oder LOW haben um zu wissen, was er beim Einschalten denn tun soll. Kein Problem, wenn man nur fertige Development-Boards nutzt, für eigene Schaltungen muss man sich jedoch selbst um das alles kümmern. Welche Pins das sind und wie man bei ESP01 oder ESP12 mit ein paar Tricks ohne viel externe Beschaltung auskommt, dass zeige ich dieses Mal.

Inhalt

  • 00:00 Devboards vs. Module
  • 06:06 Programmierung und Boot-Modi
  • 08:02 Pins für „normalen“ Boot
  • 12:42 ESP01: Minimalschaltung
  • 16:58 ESP12: Minimalschaltung
  • 19:16 Boot-Sequenz über RC-Glieder
  • 23:33 Fazit

Transparenz

Die ESPs, Programmiergeräte und Bauteile wurden selbst gekauft und bezahlt.

BitBastelei #511 – LED-Signalsäule für OctoPrint mit ESP8266/Arduino

BitBastelei #511 - LED-Signalsäule für OctoPrint mit ESP8266/Arduino

(2 GB) 00:18:21

2022-10-30 11:00 🛈

An professionellen Anlagen finden man häufig Signalsäulen um auch aus der Ferne den aktuellen Betriebszustand schnell erkennen zu können. Solche Signalsäulen hatte ich in Folge #433 bereits gezeigt, bis auf eine kleine „Mute/Unmute-Anzeige“ für Videokonferenzen (#438) aber nicht weiter genutzt. Dabei habe ich auch eine Anlage, die lange Zeit läuft und besser im Blick gehalten werden sollte: Der 3D-Drucker. Dank OctoPrint ist dieser auch im Netz verfügbar und der Status dank offener API einfach abzufragen. Also kombinieren wir mal Ampel und OctoPrint um den aktuellen Zustand des 3D-Druckers immer im Auge behalten zu können.

Inhalt

  • 00:00 Rückblick: Signalsäulen + Ansteuerung
  • 03:46 Plan
  • 06:07 Testaufbau
  • 08:01 Anzeigen
  • 11:20 ESP12 statt NodeMCU?
  • 14:18 Software: Konfiguration und API-Keys
  • 15:39 Software: Interne Funktion
  • 17:46 Fazit

Links zum Thema:

Transparenz

Die gezeigten Geräte wurden selbst gekauft und bezahlt.

BitBastelei #506 – Telegram-Nachrichten mit Arduino (ESP8266/ESP32) versenden

BitBastelei #506 - Telegram-Nachrichten mit Arduino (ESP8266/ESP32) versenden

(703 MB) 00:21:02

2022-09-25 10:00 🛈

Sensoren unter Arduino auslesen ist schnell erledigt. Was aber, wenn man jederzeit auch Mitbekommen möchte, wenn etwas passiert? Für diese Anwendungen gibt es diverse Push-Dienste, die Nachrichten direkt auf das Smartphone zaubern. Alternativ kann man aber auch fertige Messenger wie z.B. Telegram verwenden. Dank der Möglichkeit „Bots“ anzulegen und der Universal-Arduino-Telegram-Bot-Library von  @Brian Lough  kann man so von Handy, PC und allen anderen Geräten direkt mit dem ESP kommunizieren. Sofern man den Messenger bereits nutzt auch ganz ohne zusätzliche Apps.

Inhalt

  • 00:00 Planung
  • 02:28 Telegram-Bot anlegen & Konfigurieren
  • 06:30 Kanal-ID ermitteln
  • 08:45 ESP: IO-Test
  • 12:05 ESP: WiFi und NTP
  • 14:03 ESP: Universal-Arduino-Telegram-Bot
  • 17:03 Test & Möglichkeiten
  • 19:41 Fazit

Links zum Thema

https://github.com/witnessmenow/Universal-Arduino-Telegram-Bot

Transparenz

Die gezeigten Geräte wurden selbst gekauft und bezahlt.

BitBastelei #489 – DIY Temperaturüberwachung mit DS18B20

BitBastelei #489 - DIY Temperaturüberwachung mit DS18B20

(1 GB) 00:29:55

2022-05-15 10:00 🛈

Wenn es um Temperaturen geht ist der DS18B20 einer meiner Lieblingssensoren: Digitale Kommunikation, vorkalibriert, wenig Kabel. Diesmal sollen diese wieder ein praktisches Problem Lösen: Kalte Füße. Also indirekt. Einerseits soll es in der Lage sein Störungen der Heizungsanlage zu erkennen und melden, andererseits sollen die Temperaturwerte helfen für einen etwaigen Ersatz ohne fossile Energieträger planen zu können.

Inhalt

  • 00:00 Warum das Ganze?
  • 02:26 Möglichkeiten 
  • 05:03 Funktion von Warmwasserheizungen
  • 06:54 Wo messen?
  • 08:45 Wie messen?
  • 12:52 Versuchsaufbau
  • 15:49 Software und erster Test
  • 22:53 Test mit mehreren Sensoren
  • 23:33 Aufbau
  • 28:34 Fazit

Transparenz

Die für das Gebastel genutzten Komponenten wurden selbst gekauft und bezahlt.

BitBastelei #488 – WiFi-Wasserlecksensor: Heute schon gepatched?

BitBastelei #488 - WiFi-Wasserlecksensor: Heute schon gepatched?

(2 GB) 00:26:56

2022-05-08 10:00 🛈

Wer hätte vor dem IoT gedacht, dass man die Firmware seines Wasserleckpiepers tauschen könne? In den letzten Monaten haben mehrere Rohrbrüche hier für etwas Chaos gesorgt. Glücklicherweise sind alle recht früh aufgefallen und haben außer etwas Wisch- und Dichtarbeit keine größeren Schäden angerichtet. Wenn es nach mir geht soll dies aber so bleiben – ein Wassersensor soll dafür sorgen, dass die Defekte nicht mehr nur zufällig entdeckt werden. Leider fand ich auf die schnelle kein Zigbee-Gerät, sondern nur WLAN. Davon ausgehend, dass Wasseralarm nicht so oft auftreten sollte, dürfte der höhere Stromverbrauch Mit der Software des Herstellers ist das Gerät schnell Funktionsbereit – aber wenn laut Internet das Modul nichts anderes als ein ESP ist kümmern wir uns doch gleich auch noch um eine freie Firmware auf Tasmota-Basis, die dank MQTT auch ohne Internet funktioniert.

Inhalt

  • 00:00 Vorgeschichte und Sensor
  • 02:56 Zerlegerei
  • 07:09 WiFi vs. Zigbee & Co
  • 08:32 Installation & Anleitung
  • 10:06 App-Einrichtung
  • 13:26 Proprietär vs. Open Source Firmware
  • 14:41 Pinsuche & Verkabelung
  • 18:43 Tasmota flashen
  • 21:58 Protokollanalyse
  • 25:09 Automation mit Homeassistant
  • 25:35 Fazit

Links zum Video

Tasmota-Regeln

  • Rule1 ON TuyaReceived#Data=55AA00050005650100010070 DO backlog publish2 stat/%topic%/STATUS CLOSED; delay 5; publish2 stat/%topic%/STATUS OPEN ENDON
  • Rule2 ON TuyaReceived#Data=55AA000500086602000400000064DC DO publish2 stat/%topic%/BATT 100 ENDON

Transparenz

Das Gerät wurde selbst gekauft und bezahlt. * Ich bin Teilnehmer beim Amazon Partnerprogramm. Durch Nutzung von Amazon -Links im Video oder auf meiner Webseite erkennt Amazon , dass Ihr über meine Seite zu ihnen gefunden habt. Ich werde prozentual an hierüber erzielten Umsätzen beteiligt, die Preise ändern sich hierdurch für Käufer*innen nicht. Falls ihr das Produkt kaufen wollte empfehle ich selbst die Preise nochmal zu vergleichen.

BitBastelei #466 – Quick’n’Dirty LED Dimmer

BitBastelei #466 - Quick'n'Dirty LED Dimmer

(915 MB) 00:15:59

2021-12-05 11:00 🛈

Wenn die Nachbarn plötzlich weihnachtsbedingt mehr LEDs als ich an ihren Häusern zur Schau stellen, dann kann ich das so nicht stehen lassen. Also raus mit der LED-Strippe und Licht an. Oder auch nicht. Einzig freie Outdoor-LED ist ein 230V-Streifen, dem ich zuletzt ein „meh“ gegeben hab. Etwas wenig Isolation für meinen Geschmack. Aber was für gleichgerichtetes AC gedacht war funktioniert auch mit stromlimitiertem DC. Wenn man jetzt bloß noch eine Steuerung oder einen Dimmer hätte um das Konstrukt zeitgesteuert schalten zu können.

Inhalt

  • 00:00 Streifenplan
  • 00:44 DC-Versorgung
  • 02:04 Transistorforderung
  • 02:34 Transistorwünsche
  • 04:31 Transistorsuche
  • 08:44 Transistorketten
  • 10:04 Transistorlöterei
  • 10:58 Controllersuche
  • 12:05 Software
  • 13:38 Anschluss
  • 14:33 Ende

Code

#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
#include <ESP8266mDNS.h>

#include <uri/UriBraces.h>
#include <uri/UriRegex.h>

#ifndef STASSID
#define STASSID ""
#define STAPSK  ""
#endif

#define PWMSTEPS 256
#define LED D1

const char *ssid = STASSID;
const char *password = STAPSK;

//https://gist.github.com/mathiasvr/19ce1d7b6caeab230934080ae1f1380e
const uint16_t CIE[256] = {
    0,    0,    1,    1,    2,    2,    3,    3,    4,    4,    4,    5,    5,    6,    6,    7,
    7,    8,    8,    8,    9,    9,   10,   10,   11,   11,   12,   12,   13,   13,   14,   15,
   15,   16,   17,   17,   18,   19,   19,   20,   21,   22,   22,   23,   24,   25,   26,   27,
   28,   29,   30,   31,   32,   33,   34,   35,   36,   37,   38,   39,   40,   42,   43,   44,
   45,   47,   48,   50,   51,   52,   54,   55,   57,   58,   60,   61,   63,   65,   66,   68,
   70,   71,   73,   75,   77,   79,   81,   83,   84,   86,   88,   90,   93,   95,   97,   99,
  101,  103,  106,  108,  110,  113,  115,  118,  120,  123,  125,  128,  130,  133,  136,  138,
  141,  144,  147,  149,  152,  155,  158,  161,  164,  167,  171,  174,  177,  180,  183,  187,
  190,  194,  197,  200,  204,  208,  211,  215,  218,  222,  226,  230,  234,  237,  241,  245,
  249,  254,  258,  262,  266,  270,  275,  279,  283,  288,  292,  297,  301,  306,  311,  315,
  320,  325,  330,  335,  340,  345,  350,  355,  360,  365,  370,  376,  381,  386,  392,  397,
  403,  408,  414,  420,  425,  431,  437,  443,  449,  455,  461,  467,  473,  480,  486,  492,
  499,  505,  512,  518,  525,  532,  538,  545,  552,  559,  566,  573,  580,  587,  594,  601,
  609,  616,  624,  631,  639,  646,  654,  662,  669,  677,  685,  693,  701,  709,  717,  726,
  734,  742,  751,  759,  768,  776,  785,  794,  802,  811,  820,  829,  838,  847,  857,  866,
  875,  885,  894,  903,  913,  923,  932,  942,  952,  962,  972,  982,  992, 1002, 1013, 1023,
};

bool changed = false;
uint16_t fadeTime = 100;
uint32_t delayTime = 0;
uint16_t target = 0;
uint16_t current = 0;

uint32_t systick = 0;

ESP8266WebServer server(80);

void setup(void) {
  pinMode(LED, OUTPUT);
  digitalWrite(LED, HIGH);
  delay(250);
  
  Serial.begin(115200);
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);
  Serial.print("\n\n\nConnecting.");

  // Wait for connection
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("OK");
  Serial.print("Connected to ");
  Serial.println(ssid);
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());

  if (MDNS.begin("esp8266")) {
    Serial.println("MDNS responder started");
  }

  server.on(F("/"), []() {
    String state = "<h1>Status</h1><br>";
    state += "<b>Current</b>: "+String(current)+"<br>";
    state += "<b>Target</b>: "+String(target)+"<br>";
    state += "<b>FadeTime</b>: "+String(fadeTime)+"<br>";
    state += "<b>DelaydTime</b>: "+String(delayTime)+"<br>";
    state += "<b>Changed</b>: "+String(changed)+"<br>";
    state += "<b>Systick</b>: "+String(systick)+"<br>";
    state += "<b>Uptime</b>: "+String(millis())+"<br>";
    server.send(200, "text/html", state);
    Serial.println("Index");
  });

  server.on(UriBraces("/fadeTime/{}"), []() {
    String data = server.pathArg(0);
    fadeTime = data.toInt();
    server.send(200, "text/plain", String("FadeTime: '") + fadeTime + "'");
    Serial.println(String("FadeTime: '") + fadeTime + "'");
  });

  server.on(UriBraces("/fade/{}"), []() {
    String data = server.pathArg(0);
    target = data.toInt();
    delayTime = fadeTime * 1000 / PWMSTEPS;
    server.send(200, "text/plain", String("Fade: '") + target + "'");
    Serial.println(String("Fade: '") + target + "'");
  });

  server.on(UriBraces("/set/{}"), []() {
    String data = server.pathArg(0);
    target = data.toInt();
    current = target;
    changed = true;
    server.send(200, "text/plain", String("Set: '") + target + "'");
    Serial.println(String("Set: '") + target + "'");
  });

  server.begin();
  Serial.println("HTTP server started");
}

void loop(void) {
  server.handleClient();

  if(delayTime > 0) {
    uint32_t cmicros = micros();
    uint32_t cmp = systick;
    if(2^32 - systick >= delayTime) {
      cmp = 2^32 - systick - delayTime;
    }
  
    if(cmp >= delayTime) {
      if(target > current) current++;
      if(target < current) current--;
      if(target == current) delayTime = 0;
      changed = true;
      systick = cmicros;
    }
  }

  if(changed) {
    Serial.print("\nChanged");
    Serial.print(" - Current: ");
    Serial.print(current);
    uint16_t pwmt=PWMSTEPS-current;
    Serial.print(" - PWM: ");
    Serial.print(pwmt);
    pwmt = CIE[pwmt];
    Serial.print(" - CPWM: ");
    Serial.println(pwmt);
    analogWrite(LED, pwmt);
    changed = false;
  }
}

Transparenz

LED-Streifen, ESP und DC-DC-Wandler wurde selbst gekauft und bezahlt. Das Spenderboard wurde mir vor längerem als E-Schrott geschenkt.

BitBastelei #460 – Shelly 2.5: Smart-Switch für „in die Dose“

BitBastelei #460 - Shelly 2.5: Smart-Switch für "in die Dose"

(2 GB) 00:28:16

2021-10-24 10:00 🛈

Wenn es um „Smart-Switches“, also WLAN-Adapter für feste Installationen, geht, dann sind die Platzhirsche vermutlich Sonoff und Shelly. Das Grundmodell „Sonoff Basic“ hatte ich ja schon öfter hier, ist aber unpraktisch, wenn man z.B. ein Licht weiterhin auch per Schalter schalten möchte. Ein Touch-Switch kann hier helfen, passt aber optisch oft nicht zum bestehenden Schalterprogramm. Hier möchte Shelly mit ihren Geräten ansetzen: Sie sind extrem klein, bieten bei diesem Modell 2 Ausgänge und können – ähnlich wie mein Optokoppler-Board – auch 230V-Eingänge abfragen. So lassen sich die Geräte sowohl per Schalter als auch WLAN steuern und nichts kommt sich in die Quere. Zu schön um wahr zu sein? Nunja, so ganz ohne Haken kommt das Paket natürlich nicht.

Inhalt

  • 00:00 Andere Smart-Aktoren und Sensoren
  • 01:30 Shelly 2.5 – was bekommen wir?
  • 04:59 Anschluss
  • 07:06 App-Installation
  • 07:52 Web-UI ohne App
  • 10:23 Manuelle App-Einrichtung
  • 11:08 Energiemessfunktion
  • 12:22 Eingänge
  • 14:04 Regelwirrwarr: Relais vs. Kapazitiv/Induktiv
  • 16:23 Regelwirrwarr: Gerätedosen und Nachrüstpflichten
  • 20:41 Regelwirrwarr: Hochtemperaturnetzteil
  • 24:31 Fazit (ja, mit kaputtem Ton)

Links zum Thema

Fehler und Ergänzungen

  • 07:52 Über die App konnte ich das Gerät nicht einrichten. Es wurde nicht gefunden.
  • 13:22 Für Personen mit kaputtem Sarkasmusdetektor: Niemals Grün/Gelb für irgendetwas außer Schutzleiter nutzen.
  • 17:22 Schraublöcher. Nicht Schrauben.
  • 20:01 Je nach Verlegung und Länge.
  • 20:11 Je nach Interpretation. Einige sagen, dass eine Lampe nie ?10A kommen kann und das daher passt. Andere haben schon vom Heimwerker*innen nachgerüstete Steckdosen und IR-Heizstrahler hinter leicht angekokelten Lichtschaltern gefunden und sind da etwas vorsichtiger.
  • 21:09 Wohlgemerkt: Das Wärmebild ist im Leerlauf, ohne Last und außerhalb der Dose mit besserer Kühlung
  • 22:17 H07V-U müsste das sein. Einige Varianten sind auch bis 90°C zugelassen.

Transparenz

Das Gerät wurde selbst gekauft und bezahlt. * Ich bin Teilnehmer beim amazon.de Partnerprogramm. Durch Nutzung von Amazon-Links im Video oder auf meiner Webseite erkennt Amazon, dass Ihr über meine Seite zu ihnen gefunden habt. Ich werde prozentual an hierüber erzielten Umsätzen beteiligt, die Preise ändern sich hierdurch für Käufer*innen nicht.

BitBastelei #455 – LiFePO4: Die besseren Lithium-Akkus?

BitBastelei #455 - LiFePO4: Die besseren Lithium-Akkus?

(2 GB) 00:28:48

2021-09-19 10:00 🛈

Wenn man von Lithium-Akkus spricht, meint man oft LCO-Zellen – Lithium-Cobaltdioxid. Es gibt aber auch andere Zellchemien wie LiFePO4/LEP/LFP, welche ganz eigene Vor- und Nachteile haben. Welche Unterschiede das sind und wie sich LiFePO4 als Bastlernutzen lässt schauen wir in diesem Video.

Inhalt

  • 00:00 LCO vs. LFP: Unterschiede
  • 08:08 14500 und Alkaline-Ersatz
  • 10:51 LFP Schutz, Ladeboards
  • 20:27 TP5000: Ladestrom anpassen und Zuleitung
  • 22:44 Fertiger Aufbau mit ESP8266-Direktversorgung
  • 26:44 Fazit

Links zum Thema

Transparenz

Die gezeigten Geräte wurden selbst gekauft und bezahlt.