Kurzanleitung, um einen Digispark ATtiny85 (oder clone) mit Platformio inkl. Mausemulation zum laufen zu bringen.
Jumpstart: Digispark ATtiny85 & Platformio weiterlesenKategorie: Technik
Einen ESP8266/ESP32 mit Hilfe von Alexa steuern
In den letzten Tage und Wochen habe ich mich etwas mit dem Thema beschäftigt, wie man mit Hilfe von Alexa (*) einen ESP8266 oder ESP32 ansteuern kann.
Da das Thema etwas unübersichtlich ist, hier mein Versuch das Thema zu strukturieren.
Grob kann man zwei Fälle unterscheiden:
- Der ESP8266/ESP32 simuliert ein anderes Gerät, welches von Alexa unterstützt wird
- Es wird ein externer Dienst genutzt, der von Alexa unterstützt wird
Simulation eines Gerätes | Externer Dienst |
Vor- und Nachteile: | |
👍 Läuft ohne zusätzliche Dienste | 👎 externe Dienste und/oder Skills sind notwendig |
👎 Beschränkter Funktionsumfang (An, Aus, Prozent) | 👍 Größerer Funktionsumfang (siehe Funktionsumfang von Alex-Nachrichten) |
👍 Einfache Sprachebefehle | 👎 Vor dem Befehl, muss man Alexa mitteilen, welcher Skill genutzt wird “Alexa verwende XXX und …” |
Beispiele: |
|
esp8266-alexa-wemo-emulator oder Fauxmoesp
Diese Lösung simuliert ein Belkin WeMo(*) Gerät. Der ESP kann 16 virtuelle Geräte/Funktionen bereitstellen. Leider nur mit An und Aus Funktionalität. |
Sinric
Diese Lösung erfordert eine Anmeldung und die Installation eines Skills. Danach werden diverse Geräte/Funktionen bereitgestellt. Z.B. können Ein- und Ausschalter, Lampen, Thermostate oder Fernseher bereitgestellt werden und dann über die passenden Sprachbefehle gesteuert werden.
|
Espalexa
Espalexa simuliert eine Philips Hue Bridge (*). Der ESP kann 20 virtuelle Geräte/Funktionen bereitstellen. Neben An und Aus, unterstützt dieser Anzahl auch Helligkeitsstufen von 0% bis 100%.
|
|
Für mich hat der Funktionsumfang von “Simulation eines Gerätes” nicht gereicht. Ich wollte aber auch nicht neben Amazon noch einen zusätzlichen Dienstleister nutzen.
Ich habe mir also meinen Skill selber zusammengestellt. Da mir die AWS Lambda Function irgendwie nicht gefallen habe, habe ich mich für die Web-Service Variante entschiedenen. Hierbei werden die Informationen vom Skill an den eigenen Server weitergeleitet. Hierfür nutze ich im Moment eine ziemlich gepatchte Version von Alexa-PHP-Endpoint. Ich habe einige der Pull-Requests eingespielt und noch die eine oder andere Änderung vorgenommen.
Da ich Alexa für die Heim-Automatisierung nutze, werden die Daten direkt in MQTT gespeichert.
Druckerstatus in Node-Red
Trotz intensiven Suchens habe ich keine fertige Lösung gefunden, wie man den Status eines Netzwerkdruckers (IPP-Supprt vorausgesetzt) innerhalb von Node-Red abfragen könnte.
Also selber ans Werk.
Nach einigen Suchen bin auf das Tool ipptool (sudo apt install cups-ipp-utils) gestoßen. Mit Hilfe von diesem Tool kann man den Status eines Druckers über IPP abfragen. Die folgende Bash-Datei (“printerstatus”) ruft den Status den Druckers (in meinem Fall IP 192.168.2.123) ab. Wenn der Drucker nicht erreichbar ist, wird ein Offline Status zurückgeliefert.
#!/bin/bash /usr/bin/ipptool -T 5 -c -t -v ipp://192.168.2.123/ipp/ get-printer-attributes.test || echo " printer-state-message (textWithoutLanguage) = Offline"
Ich habe die Datei unter “/home/pi/bin/printerstatus” abgelegt.
In Node-Red ist es keine große Herausforderung mehr. Die Datei regelmäßig aufrufen, die Ausgabe zeilenweise splitten, nach der Zeile “printer-state-message” suchen und das Ergebnisse ausgeben.
[{"id":"71745fbb.535e1","type":"exec","z":"379c0ed1.2ef2da","command":"/home/pi/bin/printerstatus","addpay":false,"append":"","useSpawn":"false","timer":"10","oldrc":false,"name":"Ipptool","x":270,"y":660,"wires":[["9afc54de.945c4"],[],[]]},{"id":"f6207655.510128","type":"inject","z":"379c0ed1.2ef2da","name":"30 sec","topic":"","payload":"","payloadType":"str","repeat":"30","crontab":"","once":false,"onceDelay":0.1,"x":100,"y":660,"wires":[["71745fbb.535e1"]]},{"id":"9afc54de.945c4","type":"split","z":"379c0ed1.2ef2da","name":"Split \\n","splt":"\\n","spltType":"str","arraySplt":1,"arraySpltType":"len","stream":false,"addname":"","x":460,"y":740,"wires":[["cdc67f9b.25fd5"]]},{"id":"cdc67f9b.25fd5","type":"switch","z":"379c0ed1.2ef2da","name":"Filter State","property":"payload","propertyType":"msg","rules":[{"t":"cont","v":"printer-state-message","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":640,"y":740,"wires":[["85cef94c.6ec2c8"]]},{"id":"41376012.1d44b","type":"ui_text","z":"379c0ed1.2ef2da","group":"2ca42408.15cfac","order":0,"width":"4","height":"1","name":"","label":"Status: ","format":"{{msg.payload}}","layout":"row-spread","x":690,"y":840,"wires":[]},{"id":"85cef94c.6ec2c8","type":"change","z":"379c0ed1.2ef2da","name":"Remove Prefix","rules":[{"t":"change","p":"payload","pt":"msg","from":"printer-state-message (textWithoutLanguage) =","fromt":"str","to":"","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":460,"y":840,"wires":[["41376012.1d44b"]]},{"id":"2ca42408.15cfac","type":"ui_group","z":"","name":"Geräte-Steuerung","tab":"d60df41e.ae9c2","order":1,"disp":true,"width":"6","collapse":false},{"id":"d60df41e.ae9c2","type":"ui_tab","z":"","name":"Geräte-Steuerung","icon":"dashboard","order":3}]
Das ipptool unterstützt auch eine XML-Ausgabe, da aber XML nicht gut in Node-Red zu verarbeiten ist, habe ich die Text-Ausgabe genutzt.
Gehäuse für DPS5005
Nachdem ich mir letztens ein DPS5005 gekauft habe, stellt sich die Frage nach einer Stromversorgung und einem Gehäuse.
Da der DPS5005 hauptsächlich für kleine Basteleien gedacht ist, habe ich mich für ein altes Laptop-Netzteil entschieden. 65W und 20 Volt sollte für die meisten meiner Anwendungsfälle erst reichen.
Für das Gehäuse habe ich mich für eine Eurobox von Reichelt entschiedenen. Gehäuse für DPS5005 weiterlesen
SOT23-5 für Fritzing
Für ein Projekt habe ich heute nach einem SOT23-5 PCB-Footprint für Fritzing gesucht.
Nach langen (unnötigen) Suchen bin ich fündig geworden: Einfach das Bauteil TPS76433 als Basis nutzen.
DSO138 — Taschenoszilloskop
Mit Hilfe dieses Taschenoszilloskop kann man zumindest einfache Messungen durchführen.
Laut diverse Tests ist das Ozilloskop für Signale bis zu 65 kHz geeignet.
Bezugsquelle:
10 Platinen (10x10cm) für unter 5€
Bei allpcb(*) kann man sich zur Zeit seine eigenen Platinen zu einem super Preis fertigen lassen.
10x Platinen mit einer maximalen Größe von 10 x 10 cm kann man im Moment zu einem Preis von 5,49$ also knapp 4,62€ bestellen.
Eckdaten
- 10 Stück
- max. 10×10 cm groß
- FR4
- Doppelseitig inkl. Durchkontaktierungen
- beidseitiger Bestückungsdruck
- Lötstoplack (grün & weiß)
Die Platinen kosten 5$, Paypal Gebühren 0,49$ und im Moment kostenlosen Versand.
Geliefert wird per TNT. Lieferzeit inkl. Fertigung liegt so bei 7 Tagen.
ESP8285 ESP-M3 flashen
Die Tage habe ich meinen ersten ESP8285 ESP-M3(*) erhalten:
Wer den ESP8285 noch nicht kennt:
Der ESP8285 ist im Prinzip ein ESP8266, jedoch ist ein 1MB größer Flashspeicher integriert worden. Hierdurch sind im Vergleich zum ESP8266 platzsparendere Boards möglich.
Im folgenden eine kurze Anleitung, wie man den ESP-M3 flasht.
In der jeweiligen Entwicklungumgebung sollten folgende Einstellungen gewählt werden:
- Board: 8285 (Gerneric)
- Flash-Size: 1M / 64 K SPIFF
Benötigt werden:
- einige “Testhaken” + Kabel
- ein USB-Serial Wandler mit 3,3 Volt
Verbindungen:
GND
ESP-M3 | USB-Serial |
---|---|
VCC | 3,3 V |
GND | GND |
RXD | TXD |
TXD | RXD |
Vorgehen:
- USB-Serial und ESP-M3 gemäß Tabelle verbinden
- GPIO0 mit GND verbinden
- USB-Serial Konverter in den USB-Buchse stecken
- GPIO0 von GND trennen
- Wie gewohnt, den ESP-M3 flashen
Bei mir sah die ganze Aktion so aus:
H-Bridge L298N
Eine einfache H-Bridge mit einem L298N. Obwohl der L298N schon uralt und nicht gerade effizient ist, wird er immer noch gerne genommen.
Eckdaten sind max. 46 Volt und max. 4 Ampere für beide Ausgänge zusammen. Wie immer sind dies die maximalen Werte und somit nicht in dieser Höhe für einen Dauerbetrieb geeignet.
Besonders schön an dem L298N ist, dass es fertige Platinen schon ab 1,30€ gibt, wenn man die langen Lieferzeiten in Kauf nimmt. Wer es schneller haben will, sollte auf Amazon oder Ebay zurückgreifen:
Bezugsquellen:
USB Logic Analyzer
Dieser wirklich sehr einfache 8 Kanal Logic Analyzer, der deutlich unter 10€ kostet, hat mir jetzt schon in vielen Fällen geholfen.
Sei es bei der Analyse der Ausgänge eines ESP8266 ….
… oder der Auswertung eines DCC-Signales bei der Modelleisenbahn
Zu beachten ist, dass es zwischen dem Logic Analyzer und dem USB-Anschluss keine galvanisch Trennung gibt. Der USB-Anschluss des Computer kann also bei Fehlbenutzung beschädigt werden. Der Logic Analyzer ist für max. 5,25 Volt ausgelegt.
Bezugsquellen: