Schlagwort-Archive: Arduino

BitBastelei #557 – 12V/20V LED Deckenlampen-Dimmer mit ESP32

BitBastelei #557 - 12V/20V LED Deckenlampen-Dimmer mit ESP32

(2 GB) 00:23:21

2023-09-17 10:00 🛈

In einem der letzten Videos hatte ich gezeigt, wie man eine Deckenlampe an 12V oder mittels Trigger-Board an USB-C betreiben kann. Diesmal soll das Ganze dann “smart” werden – insbesondere Dimmen wäre sehr hilfreich. Also: Step-Up mit Dimmfunktion ran, Strom richtig einstellen und ESP an – kann ja nicht so schwer sein, oder?

Inhalt

  • 00:00 Recap
  • 01:07 Der Plan
  • 02:37 HLB-A1: Stromeinstellungsraten
  • 06:25 HLB-A1: Enable-Schaltung
  • 08:46 HLB-A1: Stromeinstellung
  • 11:03 Erster PWM-Dimm-Versuch mit ON/OFF
  • 13:19 Zweiter PWM-Dimm-Versuch mit VADJ
  • 21:13 Fazit

Fehler und Ergänzungen

  • 02:09 Nicht ganz – PWM geht nicht. Später mehr.

Transparenz

Das Produkt wurde selbst gekauft und bezahlt.

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 #537 – 3.3V Relais-Modul

BitBastelei #537 - 3.3V Relais-Modul

(2 GB) 00:14:15

2023-04-30 10:00 🛈

Für schnelle Basteleien habe ich immer ein paar Relaismodule in der Schublade, leider sind meine Standardmodelle aber für klassische Arduino-Boards mit 5V ausgelegt. Neuere Devboards wie ESP8266 und ESP32, welche 3.3V nutzen, funktionieren mit diesen Modulen nicht. Beim Stöbern habe ich nun ein ähnliches Modul für 3.3V gefunden – mit einigen seltsamen Eigenheiten.

Inhalt

  • 00:00 Bisherige 5V-Relais-Module
  • 03:28 3.3V-Relais-Modul
  • 05:30 Schaltung
  • 09:30 Testschaltung
  • 11:21 Strommessung
  • 12:42 Fazit

Links zum Produkt

Transparenz

Die Geräte wurden selbst gekauft und bezahlt. In der Videobeschreibung sind Affiliate-Links zu Produkten, welche im Video zu sehen sind. Durch Nutzung dieser Links erkennt der Händler, 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. Tipp: Vergleicht vor einem Kauf die Preise – einige Händler erhöhen diese, wenn sie merken, dass die in Videos verlinkt wurden.

BitBastelei #530 – Siemens/Telemecanique Tür-Befehlsgerät

BitBastelei #530 - Siemens/Telemecanique Tür-Befehlsgerät

(2 GB) 00:31:21

2023-03-12 11:00 🛈

Da verleitet einen der streamende Kollege mal wieder auf der Auktionsseite der Wahl vorbei zu schauen und dann das: Ein interessant aussehende Befehlsgerät kurz vor Fristende, bei dem der Preis doch sehr günstig aussieht. Da kann man auch schon mal ohne vorgesehenes Projekt zuschlagen. Also: Schauen wir mal was ich geschossen hab, was drin steckt und was man so mit anstellen kann.

Inhalt

  • 00:00 Das Gerät
  • 02:15 Zerlegerei
  • 04:59 Modulsysteme
  • 21:11 LED-Check & Umbau
  • 27:09 Quick’n’Dirty ESP-Umrüstung
  • 29:29 Test & Fazit

Fehler und Ergänzungen

  • 18:15 Nope. Das ist eine reine Lampe. Mit Taster müsste das ZB4BW313 (9,14€; selbes IP-Rating) sein.

Transparenz

Die gezeigten Geräte 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 #471 – Soundmodul für Weihnachtskrippe

BitBastelei #471 - Soundmodul für Weihnachtskrippe

(2 GB) 00:28:02

2022-01-09 11:00 🛈

Weihnachtskrippen sind in meiner Ecke bei Christen ein fester Bestandteil der Weihnachtsfeierlichkeiten. Einige Ausführungen werden seit Generationen jedes Jahr wieder aufgebaut. Solch alte Basteleien haben aber ein Problem, denn die Zeiten ändern sich. Wo früher einmal Täglich der Bauer sein Pferdefuhrwerk entlang kutschierte rasen nun im Minutentakt tonnenschwere Blechkarossen mit Verbrennungsmotoren vorbei – da kommen die damaligen Spieluhren akustisch nicht mehr gegen an. Schauen wir mal, ob etwas moderne Technik Abhilfe schaffen kann.

Inhalt

  • 00:00 Pandemiefoo
  • 00:30 Vorgeschichte
  • 02:25 Bisherige Technik
  • 05:02 Konzept
  • 09:23 Module auflöten
  • 11:24 Verbindungsplan
  • 13:51 Erster Test / Kurzschlusssuche
  • 19:26 Software
  • 20:20 Fehlersuche: Kein UART
  • 23:53 Fertig.

Links zum Thema

Transparenz

Die gezeigten Geräte wurden selbst gekauft und bezahlt.

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 #450 – RTL8720DN: ESP32-Alternative mit 5GHz-WLAN? (RTLDuino/BW16)

BitBastelei #450 - RTL8720DN: ESP32-Alternative mit 5GHz-WLAN? (RTLDuino/BW16)

(2 GB) 00:20:59

2021-08-15 10:00 🛈

Der ESP32 ist für viele Bastler einer der beliebteren Mikrocontroller – halbwegs schnell, internes WLAN und günstig. Ein großer Knackpunkt: Er kann nur zu 2.4GHz-WLANs verbinden. Mit dem RTL8720 aus der Realtek Ameba-Serie scheint es da eine Alternative zu geben – hiermit soll endlich Dual-Band, also auch 5GHz-WLAN möglich sein. Und günstige Development-Boards scheinen auch nicht wirklich teurer als ein ESP. Also schauen wir doch mal, ob sich da ein ESP-Killer startklar macht, oder ob fehlende Doku und zweifelhafte SDKs auch hier die Bastelmotivation ersticken.

Inhalt

  • 00:00 RTL8720 vs. ESP32
  • 05:12 Arduino-Support einrichten
  • 08:05 Erster Test
  • 11:38 RTLDuino-Uploadproblematik
  • 15:29 LED-Test
  • 16:33 WLAN-Test
  • 18:57 Fazit

Fehler und Ergänzungen

  • 07:44 Realtek hat die Anleitung inzwischen aktualisiert
  • Allgemein: Das RTL8720-Board scheint weniger Strom zu ziehen als ein vergleichbares mit ESP32

Links zum Thema

Transparenz

Die gezeigten Geräte wurden selbst gekauft und bezahlt.