bitcoinSwitch – Die Brücke zwischen zwei Welten
“0” und “1” sind die elementaren Zustände unserer digitalen Welt. Einfache Schaltvorgänge die logisch verarbeitet etwas steuern oder regeln können und damit unsere Echtwelt beeinflussen. Unser ganzer Fortschritt und Komfort ist darauf aufgebaut, jedoch tun sich die etablierten Zahlungssysteme schwer damit, dem Geld eine Brücke zwischen diesen beiden Welten zu bauen. Unser Bargeld unterliegt einem enormen Prüf- und Sicherheitsaufwand. Bei unserem “digitalen” Fiatgeld kommt gleich eine Schar an Intermediäre und strengsten Reglementierungen (selbst für Kleinstzahlungen) zum Einsatz. Mikropayments oder seltene Zahlungen lohnen sich oft nicht, weil die Kosten für die Einrichtung, Grundgebühr oder die laufenden Kosten so hoch sind. Wir bremsen unsere Entwicklung aus, wir müssen unsere Erträge an Dritte abgeben, nur weil das System ineffizient ist. Unser klassisches Geld ist noch nicht im 21. Jahrhundert angekommen, was sich aber gerade ändert, denn es gibt ein neues Geld – Bitcoin ⚡ Lightning.
1. bitcoinSwitch, kurz erklärt
Der bitcoinSwitch ist, vereinfacht gesagt, nichts anderes als ein Mikrocontroller (Halbleiterchip mit Prozessor und Peripheriefunktion), eine Software und einem Relais zum Schalten von Strom und Spannung. Der Mikrocontroller ist per Wifi mit dem Internet verbunden und kann den Kontostand eines Lightning ⚡ Wallet abfragen. Wird ein Zahlungseingang registriert, schaltet der Mikrocontroller das Relais, welches eine beliebige Aktion auslösen kann. Zum Beispiel den Strom für eine Steckdose schalten, den Motor eines Automaten antreiben, etwas freigeben, heizen, pumpen, etc. Die Möglichkeiten werden nur durch die eigene Fantasie begrenzt. “0” und “1”, sind nicht nur die Grundlagen der digitalen Welt und der von Bitcoin, sondern auch die der Automatisierung.
2. Der Aufbau
Klein, fein, einfach! Ein bisschen Elektronik, etwas Software, die Funktionalität von Lightning ⚡ und schon kann man damit etwas schalten.
3. Die Komponenten
Es braucht nicht viel und ist erstaunlich günstig. Die Hauptbestandteile wie Relais und Mikrocontroller bekommt man schon für weniger 10 Euro und die Software ist kostenlos. Die Hardware Komponenten bestehen aus einem ESP32 Mikrocontroller, ein Relais (High-Level-Trigger), eine USB Datenkabel, Jumper Kabel und natürlich die Spannungsversorgung, z.B. ein USB Power Pack oder Laptop. Je nachdem welchen Typ von ESP32 Mikrocontroller ihr habt, kann die Pinbelegung, die Funktion und Anzahl der Tasten bzw. LEDs leicht variieren. Im Prinzip sind alle ESP32 mit Wifi ähnlich und sollten funktionieren.
Um das Programm auf den Mikrocontroller zu schreiben, braucht man mittlerweile nur noch einen Webbrowser. Das eigentliche bitcoinSwitch Programm ist free and open source Software (FOSS) auf GitHub. Das beschreiben des ESP32 mit dem bitcoinSwitch Programm wird über eine Webseite gemacht, sie wird Web Installer genannt. Damit könnt ihr den bitcoinSwitch auch gleich konfigurieren. Denn der bitcoinSwitch benötigt eine Internet Verbindung und ein Wallet. Der hinterlegt Internet Zugang kann euer Heinnetz oder ein Hotspot sein.
Als Wallet müsst ihr ein spezielles Lightning ⚡ Wallet verwenden, das LNbits Wallet. LNbits ist ein Wallet und Account System, mit vielen Erweiterung rund um das LNURL (Lightning URL) Protkoll. Als Einstieg eignet sich ein Wallet des freie Demo Server demo.lnbits.com. Es ist kostenlos, jedoch ohne Gewährleistung oder Garantie auf die Funktion oder die Funds. Zum Testen mit kleinen Beträgen, völlig ausreichend.
4. Beispiele für den bitcoinSwitch
Hier stelle ich kurz drei Projekte vor. Weitere Infos dazu findet ihr im Anhang.
4.1 Candy Machine
Die Candy Machine ist ein Bonbonautomat. Ein kleiner Motor treibt eine kleine Förderschnecke an. Hier wurde der ursprüngliche “Touch Taster” unter dem Auswurf, durch den bitcoinSwitch ersetzt. Bezahlt jemand die Lightning Invoice von dem QR Code, dann werden ein paar Bonbons ausgeworfen.
4.2 Low budget beer tap – for plebs!
Es gibt schon sehr gute Bierzapfanlagen, bei denen man mit Lightning bezahlen kann. Die waren mir aber alle zu komplex und zu teuer, ich wollte etwas einfaches und günstiges, für jeden Pleb eben. Dann fand ich das 5 Liter Frische Fass von Krombacher. Die sind etwas teurer als normale 5 Liter Fässer, aber sie haben eine integrierte CO2 Druckpatrone. Die hält das Bier 30 Tage frisch und vor allem den Druck konstant. Das Zapfsystem wird über ein Hebel betätigt, der wiederum ein innenliegendes Ventil betätigt. Für dieses bitcoinSwitch Projekt wird der Hebel automatisch über einen 12V Linearantrieb angetrieben. Registriert der bitconSwitch einen Zahlungseingang, dann schaltet er zwei Relais. Diese Relais polen die Spannung für den Linearantrieb um. Für den eingestellten Zeitraum fährt der Antrieb dann in die eine oder andere Richtung. Der Antrieb hat eigenen Endlagenschalter. Die zusätzlichen Handschalter sind optional.
4.3 Universal bitcoinSwitch
Ich dachte mir, warum nicht gleich einen universellen Schalter bauen, der 230V schalten kann? Der Universal bitcoinSwitch ist ein 230V Verlängerungskabel, in dem ein Schalter eingebaut wurde. Damit kann man eine Steckerbuchse schalten, die dann alle möglichen Geräte (bis zu einer bestimmten Leistung!) für einen bestimmten Zeitraum einschalten können. Zum Beispiel: Eine Ladestation, eine Pumpe, eine Heizung oder ein Motor für ein Kinderfahrgeschäft. Das ist auf jeden Fall die mobile und universelle Variante.
Vorsicht: 230V ist eine gefährliche Spannung!!! Bitte nur bei ausreichender Kenntnis und Erfahrung nachbauen.
5. Die Einrichtung des bitcoinSwitch
Die Einrichtung des bitcoinSwitch ist mittlerweile sehr einfach geworden. Man kann alles über einen Webbrowser installieren und konfigurieren. Es wird keine zusätzliche Software mehr benötigt. Die dafür notwendige Webseite nennt sich Web Installer. Sie funktioniert mit den Desktop Browser Chrome oder Edge. Die einzige Hürde die man zu Anfang nehmen muss, ist das Einrichten eines passenden Treiber für die Verbindung zwischen Computer und ESP32 Mikrocontroller. Bei einigen Betriebssystemen wird der passende Treiber beim Anschließen des ESP32 selbständig erkannt und installiert. Aber nicht immer klappt das und manchmal braucht man auch ein Treiberupdate, damit es korrekt funktioniert. Solltet ihr damit Probleme haben, schaut mal in den Anhang unter Kapitel 7.6, da bekommt ihr Hilfe.
Nachfolgend werde ich jeden Schritt den ihr benötigt um den bitcoinSwitch einzurichten erklären und zum besseren Verständnis auch mit Bildern versehen. 📖🤓
5.1 Vorbereitung: Das LNbits Wallet
Der bitcoinSwitch kommuniziert mit einem LNbits Wallet. Hier zeige ich euch wie ihr ein Wallet bei dem freien und kostenlosen LNbits Demo Server anlegen könnt und wie ihr die notwendigen Schnittstellendaten erzeugt. Damit kann sich der bitcoinSwitch mit dem LNbits Wallet verbinden. Sobald eine Zahlung eingegangen ist, bekommt der bitcoinSwitch die Information vom LNbits Server und schaltet dann ein Relais, welches die gewünschte Aktion ausführt.
- Besucht die Webseite demo.lnbits.com und legt euch ein Wallet an
- Ihr seht jetzt links oben das Wallet und könnt unter
Manage extentions
Erweiterungen hinzufügen - Dort wählt ihr
LNURLDevice
und mitENABLE
aktiviert ihr die Erweiterung - Jetzt findet ihr unter Extentions den Punkt
Extentions LNURLDevice
. Wählt es an und erzeugt eine neueLNURLDevice Instance
. Damit werden die Parameter festgelegt und eine Schnittstelle generiert. - Füllt alle Felder aus und wählt
Create LNURLDevice
- Klickt dann den kleinen Button
LNURLDevice Settings
in der Mitte und kopiert den angezeigten Link in die Zwischenablage. Diesen “String” fügt ihr später in das Konfigurationsmenü des Web Installer ein. Siehe dazu Kapitel 5.3 / Punkt 20. - Als letztes braucht ihr noch die Lightning URL (LNURL). Dazu drückt einmal auf das kleine Auge. In dem Fenster seht ihr dann eine LNURL QR-Code zum einscannen mit dem Handy und die LNURL als Text für die Zwischenablage. Den QR-Code druckt ihr euch am besten aus und legt ihn zu euren bitcoinSwitch. Alternativ kopiert euch die LNURL zu euren Notizen. Damit habt ihr erst einmal alles was ihr für die spätere Konfiguration braucht.
Update 845218 🔥
Der die neusten Versionen des LNbits Server haben eine neue Login Funktion. Mit den nachfolgenden Bilder habe ich hierfür mal eine kleine Anleitung erstellt.
Info:
LNURL kommt von Lightning URL, dahinter verbirgt sich eine URL (Internetadresse) zum LNbits Server. Das ist ein feste URL, die bei jeder Anfragen auf dem Server eine neue Invoice erzeugt. Man kann es ein bisschen wie eine statische oder wiederverwendbare Invoice sehen, zumindest wirkt es so für den Anwender, da er nicht bewusst nach einer Invoice fragen muss. Letztendlich ist aber nur die URL statisch, die Invoice wird immer auf Anfrage generiert.
Hinweis:
Im LNURL Fenster findet sich auch eine grüne Anzeige: Websocket connected
Das sagt nicht viel aus, nur das diese LNURL eine WebSocket API ist. Nach dem man den QR-Code gescannt und die Invoice bezahlt hat, ändert sich das Feld zu Message received: 12-3000
. Das sagt mir leider immer noch nicht ob die Verbindung zu meinem bitcoinSwitch geklappt hat, aber es zeigt schon mal an, dass die Zahlung erhalten wurde und welche Daten an den bitcoinSwitch übertragen werden sollen. Hier Pin 12 und 3000 ms. Die Meldung Connection Closed
sagt nur, dass die Webseite keine Verbindung zum LNbits Server hat. Das kann diverse Gründe haben. Für eine genauere Diagnose und Rückmeldung schaut euch später das Kapitel 5.4 an.
Weiteres:
Im Anhang Kapitel 7.2 habe noch ein paar weitere Worte zu LNbits angehängt
5.2 Installation des bitcoinSwitch
Es gibt zwei Wege den bitcoinSwitch zu installieren und später zu parametrieren. Hier beschreibe ich noch die alte Version, die bisher gut funktionert hat. Ihr müsst dafür allerdings meinen Webinstaller verwenden. Ihr findet ihn hier: Lightning LEDflash Installer. Diese Webinstaller war ursprünglich für eine Variante des bitcoinSwitch gedacht. Der Ausgang pulsiert in verschiedenen Varianten. Die Version "v0.1 classic" ist aber der klassische bitcoinSwitch und genau die müsst ihr verwenden. Also wählt aus dem Drop-Down Menu anstatt "v0.2 flash" einfach "v0.1 classic" und geht dann auf "Flash". Damit könnt ihr dann dieser Anleitung von Kapitel 5.2 und 5.3 folgen.
Update 845218 🔥
Wie ihr das mit der neuen Version machen könnt, erkläre ich hier mit ein paar Bildern. Dazu müsst ihr allerdings den neuen offziellen WebInstaller bitcoinswitch.lnbits.com verwenden.
Hier geht es jetzt mit der alten Version und meinen Webinstaller Lightning LEDflash Installer weiter.
- Schließt den ESP32 per USB Kabel an euren Computer an. Wartet einen Moment bis euer Computer das neue Gerät erkannt hat und klickt dann auf den Button
Flash
- Jetzt wählt die richtige Verbindung aus und drückt
Connect
. Hinweis: Sollte der ESP32 bei euch nicht oder nicht richtig erkannt werden, schaut mal im Anhang Kapitel 7.6. "Hinweis zum Einrichten und prüfen des Treibers". - Jetzt im "Device Dashboard"
Install LNbits bitcoinSwitch
anwählen Erase Device
auswählen undNext
drücken. Hinweis: Wenn ihr alte Konfigurationsdaten wie die WiFi und Schnittstellendaten behalten wollt, dann lasst es abgewählt.- Jetzt wird das Programm installiert (geflasht). Wenn die Installation komplett ist, geht ihr auf
NEXT
und schaut euch das nächste Kapitel mit der Konfiguration an.
Tipp:
Die USB Schnittstelle muss immer wieder aktiv neu angewählt werden. Es kann beim Wechsel von einer Funktion zur anderen mal eine “belegt” Meldung kommen oder etwas einfach nicht richtig funktioniert. Dann aktualisiert einmal die gesamte Webseite durch ein “Refresh” und versucht es erneut. Das ist ähnlich einem kleinen Reset und wirkt manchmal Wunder.
Alternative:
Die einfachste Möglichkeit den ESP32 zu beschreiben habt ihr jetzt kennen gelernt, wer aber individuelle Einstellungen vornehmen und eigene Programme (Sketche) hochladen möchte, der kann dazu die Software Arduino IDE verwenden. Das anschließende Konfigurieren des bitcoinSwitch wird dann wieder mit dem Web Installer vorgenommen. Im Anhang im Kapitel 7.7 findet ihr eine ausführliche Anleitung wie ihr die Arduino IDE verwendet.
5.3 Konfiguration des bitcoinSwitch
Hiweis: Die Konfiguration mit den neuen Web Installer findet ihr unter 5.2 / Update 845218🔥.
Nach dem ihr den bitcoinSwitch erfolgreich auf den ESP32 installiert habt, benötigt er noch die WiFi und Schnittstellen Daten für die Kommunikation mit dem LNbits Server. Um die Daten auf den bitcoinSwitch schreiben zu können, muss er in einem speziellen Modus sein, bzw. ein bestimmtes Portal muss geöffnet sein. Die Webseite bietet euch ein besonderes Fenster, dass sich "Logs & Console" nennt. Dort könnt ihr nachprüfen ob der ESP32 empfangsbereit bzw. im Modus "Konfiguration" ist, in dem er euch "Launch portal" im Fenster anzeigt. Um ihm dazu zu bringen das Portal zu öffnen, müsst ihr zum Start, bzw. Reset des ESP32, den Pin 4 berühren. Es ist immer schwer abzuschätzen ob das geklappt hat oder auch nicht, aber mit dem Hinweis auf "Launch portal" kann man das gut überprüfen. Ich zeige euch gleich wie.
Ihr könnt den bitcoinSwitch entweder direkt nach dem Installieren konfigurieren oder später wenn ihr mal Änderungen vornehmen möchtet. Geht dazu wieder auf den WebInstaller, klickt auf Flash
, wählt die Schnittstelle und führt folgenden Punkte aus.
- Verbindet euch wieder mit dem ESP32 und wählt diesmal
Logs & Console
- Klickt unten rechts einmal auf
RESET DEVICE
und berührt danach sofort den Pin 4 am ESP32 Board. Die Zahlenreihe muss stoppen, sobald du den Pin berührst und es wirdLaunch Portal
angezeigt. Wenn die Zahlenreihe nach zwei Sekunden stoppt und nicht Lauch Portal angezeigt wird, dann wiederholt das ganze. Das "Launch portal" sagt dir dass der ESP32 zur Konfiguration bereit ist. Nur in diesem Zustand lässt sich der ESP32 konfigurieren. Drückt anschließendBack
um das Fenster zu verlassen. - Schließe das „Device Dashboard“ und klicke anschließend auf
Config
- Ihr seht jetzt die Meldung "To enter config mode: reboot the device holding boot pin". Diese Meldung könnt ihr ignorieren, weil ihr genau das ihm vorhergehenden Schritt schon gemacht habt, nämlich das Portal zum Konfigurieren gestartet. Schließt das Fenster und drückt dann etwas weiter unten auf
Connect
. - Jetzt müsst ihr zum zweiten mal die Schnittstellenverbindung anwählen und mit
Verbinden
bestätigen. Das ist etwas unverständlich, aber leider notwendig. - Als Rückmeldung bekommt ihr dann Connected to Serial Port. Schließt das Fenster mit
Close
und scrollt etwas weiter nach unten. - Jetzt seht ihr auch das ihr mit dem ESP32
Connected
seid. Wählt den ButtonSelect Template
und dort dasbitcoinSwitch Config
aus. - Jetzt könnt ihr euren bitcoinSwitch parametrieren. Eingeben müsst ihr das Wifi (SSID / Passwort) und die Schnittstelle, also den Link zu der LNURLDevice Extension eures LNbits Wallet aus dem Kapitel 5.1. Die Felder "Password for PoS AP Wifi" und "LNURL" sind mit dem Werten "ToTheMoon1" und "true" standard mäßig vorausgefüllt, da braucht ihr nichts zu ändern. Im Anschluss klickt einmal auf
Save to Device
um die Daten zu übertragen. Sobald die Übertragung abgeschlossen ist, habt ihr euren ersten bitcoinSwitch eingerichtet. Glückwunsch! 🎉 Um den bitcoinSwitch zu testen, müsst ihr ihn einmal neu starten. Nehmt ihn dazu einmal von der Spannung oder refresht die Webseite und drückt einmal den Reset.
Tipp:
Ihr könnt überprüfen ob die Übertragung der Konfiguration funktioniert hat. Macht einfach eine Änderungen bei einer Einstellung und wählt dann Download from Device
. Die Änderung sollte dann wieder korrigiert werden. Damit könnt ihr nachvollziehen, ob die Daten auch wirklich auf den ESP32 geschrieben wurden. Denn leider gibt es keine Rückmeldung nach dem Übertragen und somit bekommt ihr keine Fehlermeldung, wenn bei der Übertragung was schieß gelaufen ist. Mit der Download Funktion könnt ihr später auch mal Änderungen an der Konfiguration vornehmen, ohne das ihr alle Daten neu eingeben müsst. Sollten die Felder nicht aktualisiert werden, dann werdet ihr wahrscheinlich das Konfigurationsportal nicht korrekt geöffnet haben. Geht wieder zu Schritt 13 und versucht es erneut.
5.4 Test und Fehlermöglichkeiten
Jetzt ist der bitcoinSwitch endlich fertig eingerichtet und alles läuft hoffentlich so wie es soll. Oftmals klappt das aber nicht beim ersten Anlauf und dann hat man ein großes Fragezeichen im Gesicht. Ein wertvolles Mittel zur Diagnose ist da wieder das Logs & Console Fenster. Da bekommt man die notwendigen Rückmeldungen vom bitcoinSwitch. Geht dazu wieder auf die Seite des Web Installer oder wenn wenn ihr noch angeschlossen seid, aktualisiert die Seite einmal. Klickt auf Flash
, wählt die Schnittstelle, geht auf Logs & Console
und drückt unten rechts RESET DEVICE
.
- Das
Logs & Console
Fenster zeigt hier einen korrekter Ablauf einer bitcoinSwitch Funktion. Man sieht nach dem Reset die Abfrage des Pin 4, wobei das Portal nicht aktiviert wurde, dann die WiFi Daten und das verbundene Wallet. Sobald eine Zahlungseingang registriert wurde, erfolgt die Anweisung an den bitcoinSwitch den Ausgangs Pin 12 für die gewünscht Zeit zu schalten. - Hier ein paar typische (Fehler)Meldungen.
USB triggered
zeigt euch, dass die WiFi Verbindung nicht hergestellt werden konnte. Der Fehler kann schon mal vorkommen, bei einer schlechten WiFi Verbindung. Deswegen drückt einfach nochmal auf den Reset Button. Wenn das nicht hilft, kontrolliert euer eingestelltes WiFi. Hinweis: Seit ihr im Modus “Launch Portal”, dann ist die Meldung normal, da sich der bitcoinSwitch in dem Moment ja nicht mit dem WiFi verbinden muss. Ihr könnt sie dabei also ignorieren. Die seriellen Schnittstellen Ports können nur eine Verbindung gleichzeitig aufbauen. Wenn ihr die MeldungFailed to execute 'open' on 'SerialPort'
seht, dann habt ihr vermutlich vorher schon mal einen Port verwendet. Einfach die Seite refreshen und es nochmal versuchen.Failed to initialize
ist abhängig vom Typ des ESP32 der verwendet wird. Einige benötigen eine Freigabe zum installieren (flashen) der Software. Dazu den BOOT Button auf dem ESP32 gedrückt halten, sobald man auf den ButtonINSTALL LNBITS BTICOINSWITCH
drückt. Danach kann man ihn wieder loslassen. Bei anderen ESP32 muss man schon während des Bootvorgang des ESP32 den BOOT Button gedrückt halten. Das ist abhängig von dem verwendeten ESP32 und bei den meisten nicht notwendig. Eine weiter Fehlermöglichkeit für diese Fehlermeldung ist ein nicht installierter oder falscher Treiber. Achtet auf das Fenster, wo euch eine Verbindung für den Serial Port vorgeschlagen wird. Not connected to device
oderCannot update file!
. Ein häufiger Fehler, da man schnell vergisst auf “Connect” zu drücken, bevor manSave to Device
oderDownload from Device
drückt. Verbindet euch also vor mit “Connect”. Und dann ist da noch ein Bug in der LNbits Extention LNURLDevice. Das äußerst sich durchLNURLdevice = empty
. Ursache dafür ist das man vergessen hat ein Feld wie z.B. „Fiat currency“ auszufüllen. Manchmal muss zum beheben auch das Wallet links oben neu anklicken, damit sich alles wieder etwas berappelt.Disconnected
im Logs & Console Fenster zeigt euch, dass euer ESP32 das WiFi Netzwerk verloren hat.No file path specified!
. Bevor ihr den bitcoinSwitch parametrieren könnten, müsst ihr immer ein Template auswählen.IMPROVxxxx..
Merkwürdige Zeichen sieht man oft beim ersten Verbindungsversuch. Einfach nochmal Reset drücken, dann fängt es sich meistens wieder.Serial port is not readable/writable
Die Meldung bekommt ihr, wenn ihr das Logs & Console Fenster auf hattet und dann den ESP32 abklemmt. Sobald ihr dann das Fenster schließt, kommt die Meldung. Einfach einen Browser Refresh durchführen. Wenn die Meldung erscheint sobald ihr euch Verbinden wollt, probiert mal den “BOOT” Button auf euren ESP32 gedrückt zu halten und euch dann zu verbinden. Sollte das auch nicht helfen, könnte ihr mal ein Treiber Update durchführen, siehe dazu Anhang 7.6.No port selected
ist eine Meldung die immer kommt, wenn die Schnittstelle zum ESP32 nicht erkannt wird. Entweder nicht korrekt angeschlossen oder der Treiber ist falsch. Auch dazu schaut euch am besten mal im Anhang das Kapitel 7.6 an.Failed to download manifest
bekommt man wenn der Download Server ein Problem hat oder die Internet Verbindung nicht funktioniert.Serial port is not ready. Close any other applications using it and try again.
Das scheint ein Windows Treiberproblem des Schnittstellenwandler CP210x Version 11.2.0 zu sein. Ein Downgrade auf die Vorgängerversion 11.1.0 sollte das Problem beheben. Eure Version könnte ihr mit dem Gerätemanager prüfen. Drückt die Windows Taste + X und geht im Gerätemanager aufAnschlüsse (COM & LPT)
. Dort wählt ihr den CP210x Eintrag. Wer mit vertraut, der kann sich den älteren Treiber hier herunter laden. Eine offizielle Seite für den älteren Treiber habe ich leider noch nicht gefunden. Ihr müsste zuerste den aktuellen Treiber unter “Gerät deinstallieren”. Macht auch das Häkchen bei “Treibersoftware für dieses Gerät löschen”. Dann den PC einmal neu starten und dann den neuen Treiber installieren, indem ihr auf “Treiber aktualisieren” und dann “Auf dem Computer suchen” geht. Jetzt den Ordner des Treibers v.11.1.0 auswählen und dann mit “Weiter” den Treiber selbständig suchen und installieren lassen. Achtet darauf, dass bei der Auswahl das Häkchen “Unterordner einbeziehen” mit angwählt ist, denn der eigentliche Treiber liegt ein Ordner tiefer. Danach flasht den ESP32 einmal komplett neu mit dem Webinstaller und alles sollte wieder funktionieren.
6. Zusammenfassung
“Faszinierend” würde Spock 🖖😑 sagen. 2009 wurde mit Bitcoin das erste Mal ein digitales Gut geschaffen, dass einen echten Wert haben kann. Es ist digital, aber trotzdem nicht kopierbar. Es funktioniert P2P, braucht keinen Intermediär, die Verwendung ist erlaubnislos und dazu noch zensurresistent. Dann kam Lightning ⚡ 2018 und wir konnten dieses Gut auch noch schnell und kostengünstig transferieren. Wenn Menschen ein Gut als Tauschmittel verwenden, dann kann es zu einem Geld werden. Und mit diesem neuen Geld, kann man jetzt sogar auch Dinge schalten. Wie geil ist das denn? Wir haben eine Brücke gebaut. Aus der Digitalwelt heraus etwas bezahlen, das uns in der Echtwelt einen Nutzen bringt. Wird ein Mehrwert geschaffen, oder kann etwas für jemanden ein Problem lösen, dann wird er bereit sein dafür angemessen zu bezahlen. Wir haben jetzt das Geld und die Technologie. Wir können jetzt alles selbst, ganz einfach, sehr günstig und wer will auch komplett unabhängig bauen – Dank Bitcoin ⚡ Lightning.
Ich hoffe, meine kleine Anleitung konnte Euch helfen einen grundlegenden Überblick über den bitcoinSwitch zu bekommen. Es ist schon alles ein wenig komplex, gerade wenn man neu einsteigt, aber vielleicht konntet ihr ja das eine oder andere Projekt nachbauen oder sogar etwas ganz Neues schaffen. Das ist zumindest mein Ziel, denn wir brauchen mehr “Maker”, die etwas auf diesem wunderbaren ⚡ Lightning aufbauen.
Habt ihr Fragen oder Anregungen, dann kommt doch in die Telegram Gruppen:
- MakerBits – Alles zur Technik: https://t.me/makerbits
- LNbits – Alles zu LNbits: https://t.me/lnbits
Und jetzt ganz neu eine deutschsprachige (DACH) Gruppe extra für den bitcoinSwitch:
- bitcoinSwitch DACH – Der Link ist nicht öffentlich, damit die Spambots ihn nicht finden. Ihr könnte den Linke dazu aber hinter dieser 👉 Paywall 👈 finden. 6 Satoshis müsst ihr dafür bezahlen, oder ihr erfragt ihn bei mir persönlich: AxelHamburch
Hinweis: Die Gruppe hat auch einen Spamschutz-Bot und der verlangt als Ticket 21 ⚡-Sats Eintritt. Hintergrund, Spam-Bot’s haben kein Lightning Wallet. 😉 Haltet also euer Lightning Wallet bereit. Ihr habt 15 Minuten Zeit. Am einfachsten geht es mit dem Wallet des LightningTipBot, weil das der Torwächter ist, aber andere Wallets wie WoS sollten auch funktionieren. Falls der Bot euch nach 15 Minuten gekickt hat, schreibt mich am besten per Telegram oder Twitter an. Ich schaltet euch dann wieder frei und kann euch auch helfen.
Wer mich direkt erreichen möchte, entweder über Telegram unter https://t.me/AxelHamburch oder über Twitter https://twitter.com/axelhamburch per Direkt Nachricht. Jede Rückmeldung ist willkommen, konstruktive Kritik ist ausdrücklich erwünscht.
Ansonsten kann ich mich nur noch bei dem unglaublichen Ben Arc bedanken, der dass Ganze durch sein LNbits und dem bitcoinSwitch überhaupt erst möglich gemacht hat. Hut ab vor diesem Mann! Ein Daniel Düsentrieb des 21 Jahrhunderts.
Wenn dir mein Artikel bzw. das Tutorials gefallen hat oder es dir sogar einen Mehrwert bieten konnte, dann würde ich mich freuen, wenn du Bitcoin ⚡ Lightning nutzt und mir ein paar Satoshis als Dankeschön zukommen lässt. Möglichkeiten dazu findest du auf meiner Kontakt Seite.
Bleibt neugierig und bis zum nächsten Tutorial
Axel
7. Anhang
Wer gleich loslegen will, der kann sich das Starter Kit im LNbits Shop kaufen. Anstonsten findet ihr nachfolgend viele weitere Quellen und Informationen.
7.1 Weiteres Informationsmaterial
7.2 Ein paar Worte zu LNbits
- LNbits ist ein freies und quelloffenes Wallet und Account System. Es verwendet eine bestehende Finanzierungsquelle, also z.B. einen Lightning Node. LNbits Wallets sind eigentlich nur Datenbankeinträge. Die echten Lightning Satoshis liegen in den Zahlungskanälen des Lightning Knotens der als Finanzierungsquelle eingestellt wurde. Ihr könnt den freien und kostenlosen Server demo.lnbits.com verwenden, der ist custody und ohne Gewähr. Später solltet ihr dazu übergehen euren LNbits Server und den Lightning Node selber zu hosten. Wie das geht, ist ein Thema für sich und nicht ganz trivial. Wenn ich eine einigermaßen praktikable Lösung gefunden habe, werde ich vielleicht mal einen Artikel darüber schreiben.
- Ein Hinweis zur Sicherung des Wallets! LNbits ist ein reines Browser Wallet. Ihr bekommt den Zugang über einen URL Webseiten Link. Es gibt keinen klassichen Login. Also legt euch den Link unter Favoriten ab oder kopiert ihn euch aus dem Browser Eingabefeld und speichert ihn irgendwo sicher ab. Verliert ihr den Link, dann gibt es keine Möglichkeit mehr auf das Wallet zuzugreifen. Die Satoshis sind dann nicht weg, ihr habt sie nur gespendet. Derjenige, der LNbits und vor allem den Lightning Node dahinter betreibt, hat weiterhin die Verfügung über die Satoshis in den Channels. Ihr werdet sie aber nicht zurückfordern können, so ist der Deal. Eigene Souveränität, kommt mit eigener Verantwortung.
- Um euch den Einstieg zu erleichtern, hier ein paar Bilder zur Einrichtung des LNbits Wallet
7.3 Weiteres zur Candy machine
- Im LNbits Shop könnt ihr gleich das ganze Set kaufen: Dispenser Kit
- Alterantiv nur den Candy Automat bekommt ihr z.B. hier Innovagoods – Mini Automatic Candy oder hier ReWu Sweet Dispenser
- Kurze Hilfe zu Demontage: Von unten die vier Gummipuffer raus nehmen, dahinter befinden sich die Schrauben. Von oben die Kuppel leicht links drehen und dann einfach abnehmen. Der schwarze Trichter ist nur eingelegt, den könnt ihr vorsichtig vom Rand her aushebeln oder von der Mitte her anheben. Die Förderschnecke kann einfach entnommen werden. Dann die drei Schrauben lösen und die innenliegende Halterung mit dem Zahnrad vorsicht anheben. Achtung, der Teil ist verdrahtet.
- Jetzt seht ihr auch den Motor und eine kleine Platine mit einem Kabel zur Platte, die den Sensor darstellen soll. Die kleine Platine müsst ihr abklemmen und mit dem Relais ersetzten. Das Kabel zur Sensorplatte könnt ihr einfach kappen.
- Noch ein Hinweis zu dem Automat den Ben Arc in seinen Videos vorstellt. Er verwendet eine ESP32 mit Display, das auch im LNPoS Verwendung findet. Der Vorteil von dem ESP32 ist, dass er neben dem Display auch einen direkten Anschluss für ein Lipo Akku hat und diesen auch über den 5V USB Anschluss laden kann. Mit dem Akku kann man im Prinzip auch die Batterien der Candy machine ersetzen. Man braucht dafür also kein USB Power Pack mehr. Vielleicht komme ich später mal dazu, das genauer zu dokumentieren.
- Da anschließend alles wieder zusammengebaut wird und man vielleicht doch noch mal eine Änderung der Parametrierung vornehmen will, macht es Sinn, mindestens den Touch Pin 4 extern zu führen. Evtl. sogar den USB Anschluss.
- Anbei noch ein paar Bilder zur Montage und dem ESP32 Datenblatt des Standard ESP32
- Ich hatte noch ein ESP32 TTGO mit Display, wo mit das Display beim Einbau (für ein LNPoS) kaputt gegangen ist. Der TTGO ESP32 hat einen besonderen Anschluss auf der Rückseite. Dort kann man einen Lipo Akku anschließen. Somit ist die Candy Machine dann auch unabhängig von einer exteren Stromversorgung. Anbei die Schaltskizze.
- Update 810954: Zum Candy Automaten habe ich eine Möglichkeit der Installation nochmal etwas genauer dokumentiert in einer PDF.
7.4 Weiteres zum Beer Tap
- Verwendet habe ich hier einen Mini ESP32. Ihr könnt aber auch jeden anderen nehmen. Wenn ihr mit dem Löten nicht so vertraut seid, würde ich euch empfehlen, einen mit bereits verlöteten Pins zu nehmen. Z.B. den ESP32-DevKit.
- Als Step-Up Wandler für die Transformation von 5V auf 12V könnt ihr einen HW-637 oder diesen von der Bucht nehmen. Achtung, der genannte Spannungswandler wird standardmäßig mit einer Ausgangsspannung von bis zu 36V ausgeliefert. Um das auf 12V einzustellen, schließt nur die 5V Eingangsspannung an und messt die Ausgangsspannung mit einem Voltmeter. Dann dreht das kleinen Potentiometer (Poti) auf der Platine mit einem kleinen Schlitzschraubendreher mehrere Drehungen links, bis ihr die gewünschten 12V angezeigt bekommt.
- Für die Relais kann man ein HW-482 oder ein KY-019 verwenden
- Der Linearantrieb hat die Leistungsdaten 12V, 10 mm Fahrweg, 128 N, 7 mm/s. Es gibt unzählige Varianten und Anbieter. Aber der passte bei mir auf Anhieb perfekt.
- Die Halterplatte hat die Abmessungen 100 mm x 50 mm x 2 mm. Die zwei Bohrlöcher zur Befestigung sind je in den oberen Ecken bei 12 mm x 12 mm vom Rand. Das dritte Bohrloch, zur Ankerung des Linearantrieb, ist mittig der unteren 100 mm Kante und 10 mm vom Rand. Alle Bohrlöcher sind max. 5,0 mm Durchmesser. Anbei findet ihr noch ein Skizze dazu. Der Dezentralbanker hat freundlicherweise eine angefertigt.
- Dazu braucht ihr noch 5 Schrauben (z.B. M4 x 16 mm), ein paar Unterlegscheiben und Muttern. Denkt an die extra Muttern als Distanz- und Korrekturstück am Zapfhebel.
- Zur Ausrichtung der Platte auf dem Rahmen des Fasses, die Platte mittig gegenüber der Zapfhahnaussparung legen und dann die Ecken mittig auf den Rahmen positionieren. Siehe Bilder! Jetzt die Bohrlöcher der Platte dazu verwenden auf dem Rahmen die Bohrlöcher vorzuzeichen. Wenn ihr jetzt die Platte abnehmt und die Vorzeichnungen relativ mittig auf dem Rahmen sind, könnt ihr die Löcher in den Rahmen bohren.
- Die Position des Bohrloch für die Schraube am Zapfhebel ist etwas schwierig zu erklären. Ich beschreibe es mal so: Mittig und 17 mm vom unteren Bogen.
- Verwendet habe ich hier ein 5 Liter Krombacher Frische Fass. Das ist ein Bier, dass man auch dann noch gut trinken kann, wenn es nicht eiskalt gekühlt ist. Allerdings schäumt das Pils recht starkt und die berühmten 7 Minuten für ein gut gezapfte Bier haben wir hier ja nicht. Besser geeignet ist das Starnberger Hell . Das helle Bier ließ sich sehr gut zapfen und ich fand es angenehm mild im Geschmack. Ihr könnt aber auch alternativ ein Heineke oder sogar ein Desperados verwenden. Wichtig zu beachten ist nur, dass die Zapfanlage oben ist und das Fass eine eigene Druckpatrone hat. Das erkennt ihr an der Bezeichnung “Frische Fass”.
- Fun Fact: Die innere Druckpatrone sieht aus wie eine Spraydose. Sie hat ein sehr interessantes Patent, dass man erst einmal verstehen muss. “Wie kommt die Patrone in das Fass und aktiviert sich erst beim Zapfen?” Das ist wirklich interessant! Holt euch später mal die leere Patrone raus und versucht das Rätsel zu lösen. 😄
- Der Wechsel eines Fasses geht recht einfach. Ihr müsst nur die beiden Schrauben lösen, die die Platte am Rahmen halten. Den Zapfhebel könnt ihr voll montiert vorsichtig aus dem Kunstoff Gelenk ziehen und wieder verwenden. Zeichnet die Bohrlöcher am neuen Fass mit Hilfe der Platte an. Nach dem Bohren der Löcher, setzt die Einheit wieder drauf und fertig!
- Alternativ könnt ihr auch gleich den ganzen Rahmen welchseln, dann braucht ihr nichts neu bohren. Siehe dazu das Bild “Rahmen lösen” im Anhang! Ihr könnt den Rahmen mit der Platte relative einfach abnehmen und auf das neuen Fass aufdrücken, so das der Rahmen einklickt. Aber vorsicht bei der Demontage, da wird etwas Feingefühl benötigt!
- Den Zapfhebel solltet ihr auch rausnehmen, wenn ihr nicht wollt, dass bei der Inbetriebnahme oder beim Transport das ganzes Bier verteilt wird. 😉
- Verbaut sind noch zwei Schalter. Der Schalter S2 schaltet die Automatik EIN und AUS. Den könnt ihr ganz einfach, wie oben beschrieben durch das Ziehen des Zapfhebels oder durch die optionale Steckverbindung zum Linearantrieb ersetzen.
- Der Schalter S1 macht schon mehr Sinn. Mit dem S1 kann man einen Zahlungseingang bzw. den Ausgang des Mikrocontrollers simulieren und den Linearantrieb ansteuern. Das ist ganz nützlich bei der Inbetriebnahme und beim Ausrichten der Mechanik.
- Freundlicherweise hat der Dezentralbanker jetzt auch die AutoCAD Datei für den Laser Cut der Beer Tap Halterung zur Verfügung gestellt. Die Datei DXF Datei und Kontaktdaten findet ihr hier: Beer-Tap-Laser-Cut-Grundplatte-221227.zip
- Update der Bilder mit BeerTap Version “Workshop” (so einfach wie möglich) und Version “LED-Button”. Der BeerTap für den Workshop ist der klassiche Web Installer. Für den Beer Tap mit LED-Button müsst ihr diesen speziellen von mir erstellten Web Installer verwenden. Das GitHub Projekt dazu findet ihr hier
7.5 Weiteres zum Universal bitcoinSwitch
- Das Gehäuse ist ein Eaton Aufbaugehäuse M22-I3. Das ist schon grenzwertig eng darin. Darin ist ein Eaton M22 Wahlschalter (M22-WRK3/K20) und eine LED (M22-LEDC230) für 230V verbaut. Zu beachten ist hier, die maximale Strombelastung der Schalter (6A). Deswegen ist die Vorsicherung auf 6 A ausgelegt, obwohl das Relais 10 A kann.
- Als alternatives Relais für 230V AC und bis zu 10 A Schaltstrom, habe ich ein Hailege mit OPTO Isolation verwendet. Die schon in anderen Projekten genannten Relais können auch funktionieren, allerdings muss bei den maximalen Leistungsdaten aufpassen.
- Als Sicherung bietet sich eine Inline Sicherung an
- Fasziniert war ich von einem Mini Netzteil. 230V AC auf 5V DC. Kleiner ging es nun wirklich nicht. 😁 Funktioniert aber wirklich gut. Nur isolieren müsst ihr es noch selbst.
- Tipp: Es gibt auch komplette Boards für 230VAC Anschluss mit einem Relais (bis 10A !!!). Z.B. hier von AliExpress. Da ist schon alles drauf, aber ihr braucht noch einen USB-TTL Adapter zum fashen des Programms, da das Board ja kein USB Anschlss und keine Adapter an Board hat.
- Wenn ihr den bitcoinSwitch mobil verwenden wollt, denkt daran, auch passende Verschraubungen für die Kabeleinführung zu verwenden. Das dient der Zugentlastung und schützt vor Spritzwasser. Die 230VAC sind nicht zu unterschätzen. Elektrischer Schlag und Brandgefahr! ⚠️
7.6 Hinweis zum Einrichten und prüfen des Treibers
Hier findet ihr Hilfe zur Grundvoraussetzung, der Verbindung zwischen dem Computer und dem Mikrocontroller. Wichtig ist, die Kommunikation funktioniert nur mit Chromium Browser wie Chrome oder Edge.
Verbindet den ESP32 per USB Kabel mit dem Computer. Mit etwas Glück installiert das System selbständig den passenden Treiber und zeigt keine Fehlermeldung. Dann gehen wir erstmal davon aus, dass alles ordnungsgemäß eingerichtet ist. Egal ob ihr ein Fehlermeldung bekommt oder nicht, geht jetzt auf die Webseite des Web Installer und klickt einmal auf den Button Flash
. Es poppt ein Fenster auf, in dem jetzt mögliche “Port Verbindungen” angezeigt werden. Falls das nicht Fall ist, stimmt etwas mit der Verbindung nicht. Geht jetzt erst einmal auf Abbrechen
. Dann seht ihr ein Hilfe Fenster das No port selected
heißt.
CP2102 drivers: Windows & Mac
CH342, CH343, CH9102 drivers: Windows, Mac
CH340, CH341 drivers: Windows, Mac
Das Fenster erscheint immer, wenn ihr kein Port (USB Schnittstellen Port) ausgewählt habt. Es bietet euch aber auch die passenden Links für möglichen Treiber, falls der Treiber nicht selbständig installiert wurde oder ihr den Treiber aktualisieren möchtet.
Jetzt werdet ihr euch sicherlich Fragen, welchen Treiber brauchen ich überhaupt? Wenn euch das System nicht schon den notwendigen Treiber vorgibt, könnt ihr das auch ganz einfach selber herausfinden, in dem Ihr euch den Mikrocontroller etwas genauer anschaut. Der größte Chip auf dem Board ist der ESP32. Der nächst kleiner ist der Kommunikationsprozessor und genau den Typen braucht ihr. Auf dem Chip steht üblicherweise die Bezeichnung, z.B. CP2102, CH340 oder CH9102. Damit wisst ihr jetzt wie der Treiber heißen muss und mit der Hilfe Seite von oben findet ihr auch die passenden Quelle für den Treiber. Geht auf die Seite des Treiber Anbieters und sucht euch das passende Betriebssystem raus. Unter Downloads findet ihr dann üblicherweise einen komprimierten Ordner. Wenn ihr den herunter geladen und entpackt habt, könnt ihr darauf verweisen, sobald euer System nach einen Treiber sucht oder ihr ihn aktualisieren möchtet. Sollte ihr z.B. wiederkehrend Probleme bei der Installation des bitcoinSwitch haben, dann probiert ein Treiber Update aus. Gerade bei Mac Systeme hat es hin und wieder Probleme gegeben und ein Update konnte da helfen.
Noch ein Hinweis speziell für Linux Rechner
Auf Linux Maschinen sind die Serial Ports standardmäßig mit den Rechten “rw-rw—-” belegt. Also “rw” nur für den Benutzer und der Gruppe, aber nicht für alle anderen Benutzer. Für die Kommunikation des Chromium Browsers mit dem ESP32 über die USB/TTL Schnittstelle, muss entweder der Benutzer der Gruppe “dialout” hinzufügen werden, oder die Rechte mit dem Befehl “chmod 666 /dev/ttyXXXX”, für den seriellen Port, den man verwendet möchte, ändern. Bei jeden neuen anstecken des ESP32, muss man das ggf. wiederholen.
# Den aktuellen Benutzer zur Gruppe "dialout" hinzufügen
sudo usermod -aG dialout $USER
# Lesen/Schreiben Erlaubnis (r+w) hinzufügen (z.B. ttyS0 oder ttyUSB(0-9))
sudo chmod 666 /dev/ttyXXXX
# Danach den User ggf. einmal neu einloggen
7.7 Die Verwendung von Arduino IDE
Hier eine Hilfe für die Techniker unter euch. ⚙️ Mit Arduino IDE könnt ihr eigene Sketche hochladen. Die Beschreibung ist nicht mehr uptodate, da hier die frühere Version des bitcoinSwitch beschrieben wird, aber das Grundprinzip kann man da immernoch gut erkennen.
7.7.1 Hard- und Software vorbereiten
- Installiert euch auf eurem Computer Arduino IDE. Achtung: Es gibt zwar schon die Version 2.0.0, ich empfehle aktuell aber dennoch die Legacy IDE 1.8.X etwas weiter unten zu verwenden. Hintergrund: Die 2.0.0 ist etwas anders aufgebaut und folgt somit nicht dieser Dokumentation. Aber die Version ist auch noch etwas buggy. Verwende die 2. also nur, wenn ihr wisst was ihr tut. Sobald es die Version 2.0.1 gibt, werde ich das Tutorial dazu updaten.
- Öffnet die Seite “File/Preferences/Settings”. Merkt euch den Pfad unter “Sketchbook location”, z.B. “C:\Users\User\Documents\Arduino” und öffnet den Ordner “Arduino” im Datei-Explorer. Den Ordner braucht ihr gleich.
- Um den Pfad für die ESP32 Board Treiber vorzugeben, geht zum Reiter “File/Preferences/Settings” und Feld “Additional Borads Manger URLs” und fügt folgenden Link ein
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
- Bestätigt dann mit OK, damit Arduino die Ressource für das Treibarpaket kennt
- Sucht jetzt unter “Tools/Board: …/Board Manager” nach “ESP32”
- Installiert das Board Treiberpaket “esp32 Espressif Systems version 2.0.x”
- Schaut unter “Tools/Board:…/ESP32 Arduino” und stellt den Typen eures ESP32 Boards ein
- Probiert, was für eurer ESP32 Board am besten passt. Z.B. ESP32 Dev Module, NodeMCU-32S oder WEMOS D1 MINI ESP32. Die sind artverwandt und können auch bei nicht exakter Übereinstimmung funktionieren. Falls nicht, probiert einen anderen Typen. Probiert am besten erst das ESP32 Dev Module, das funktioniert bei sehr vielen.
- Setzt noch einen Haken bei “Show verbose output during: compilation / upload”, damit ihr auch nachverfolgen könnt was beim Kompilieren und Uploaden passiert. Und damit ihr die Zeilennummern im Programm seht, noch ein Haken bei “Display line numbers”.
- Für den neuen bitcoinSwitch müsst ihr noch eine Bibliothek manuell installieren. Dazu macht folgendes, geht auf Sketch -> Include Library -> Manage Libraries -> suche nach “WebSockets” -> by Markus Sattler -> installieren.
- Damit ist die Arduino Software vorbereitet. Schließt die Arduino Software erst einmal wieder.
- Jetzt kommt der Download des Projekts und die eigentliche Einrichtung
- Geht auf die bitcoinSwitch Seite https://github.com/lnbits/bitcoinswitch
- Ladet euch die ZIP Datei herunter. Ihr findet die Datei hinter den grünen Button “
Code
”. Hinweis: Der Button ist nur bei einem Desktop Browser sichtbar!! - Entpackt den Zip Ordner und prüft, ob in dem Ordner ein weiterer Ordner mit dem Name “bitcoinSwitch-main” ist. Darin befindet sich die “.ino” Datei und der Ordner “libaries”.
- Benennt den Ordner in “bitcoinSwitch” um und verschiebt den ganzen Ordner in den “Arduino” Ordner, vom Anfang dieses Abschnitts
- Geht jetzt in den verschobenen Ordner “…\Arduino\bitcoinSwitch” und kopiert den Ordner “libraries” in den “Arduino” Ordner, um die Bibliothek zu aktualisieren. Überschreiben, könnt ihr mit “Ja” bestätigen.
- Geht wieder in Ordner “bitcoinSwitch” und doppelklickt die Datei “bitcoinSwitch.ino”
- Damit öffnet sich jetzt wieder Arduino IDE und auch gleich das eigentliche Projekt
- In den Programmcode ab der Zeile 20 steht “///////////CHANGE////////////////”. Dort prüft einmal die Einstellungen
- “usingM5 =
false
”, da ihr eine ESP32 und keine M5Stack verwendet - “format =
false
”, da ihr nicht neu formatieren wollt. Falls doch, nur einmal auf true -> neu flashen und ein weiteres mal false -> neu flashen. - “portalPin =
4
” könnt ihr so lassen. Das ist später euer Touch Pin, um das Access Point (AP) Portal (das Web Interface) zu öffnen. - Die Vorbereitungen sind hiermit erfolgt 👏
7.7.2 Programm auf den ESP32 schreiben
- Zur Schnittstellen Konfiguration – Mikrocontroller <-> Computer – schaut in Arduino IDE unter “Tools/Port” und prüft was dort steht. Z.B. Serial ports, COM1
- Verbindet jetzt den ESP32 über das USB Kabel mit dem Computer und wechselt in Arduino einmal kurz den Reiter (die Registrierkarte), damit die Aktualisierung angezeigt wird
- Wenn der Computer die Verbindung gefunden hat, sollte jetzt unter “Tools/Port” ein weiterer COM Port angezeigt werden, z.B. Serial ports, COM1, COM3
- Ihr müsst den Port einmal aktiv anwählen, so dass er ein Häkchen davor bekommt. Erst dann kann sich der Computer mit dem Mikrocontroller verbinden.
- Hinweis für MAC und Windows 11 Nutzer. Wahrscheinlich müsst ihr den Schnittstellen Treiber zuvor manuell installieren. Ihr findet den Treiber hier: https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers
- Hinweis: Wird der COM Port auch nach dem Neustart nicht erkannt, dann liegt es oft an dem Kabel. Probiert ein anderes Kabel oder einen anderen USB Port.
- Hinweis: Für eine alternative COM Port Diagnose unter Windows, öffnet den Geräte-Manager mit
Win+X
und dann schaut unter “Anschlüsse (COM & LPT)” und prüft die Ports - Für das Schreiben des Programms auf den Mikrocontroller geht jetzt auf “Sketch/Upload”
- Als erstes wird das Programm kompiliert “Compiling sketch”. Das kann mehrere Minuten dauern. “Warnings” könnt ihr ignorieren.
- Dann kommt “Uploading…” und in dem Fenster steht:
esptool.py v3.3, Serial port COM3, Connecting...
- Je nachdem welchen Mikrocontroller oder Treiber ihr verwendet, müsst ihr jetzt recht fix das Uploaden an eurem Mikrocontroller mit dem Button “BOOT” bestätigen
- Wart ihr zu langsam, dann bekommt ihr die Fehlermeldung
A fatal error occured: Failed to connect to ESP32..
. Wiederholt den Vorgang einfach und drückt schnell genug den “BOOT” Button, sobald ihrConnecting....
seht. - Hinweis: Den Upload müsst ihr nicht bei allen Mikrocontroller bestätigen, bei vielen geht es auch ohne
- Wurde der Upload erfolgreich durchgeführt, dann seht ihr jetzt “Done uploading” und
Leaving..., Hard resetting via RTS pin...
- Glückwunsch, ihr habt den Mikrocontroller mit der bitcoinSwitch Software beschrieben
- Um den bitcoinSwitch jetzt zu konfigurieren und ihm ein WiFi zu vergeben, kannst du jetzt den Web Installer verwenden.
7.7.3 Weitere nützliche Informationen und Diagnose mit dem “Serial Monitor”
- Wenn der Mikrocontroller im Modus “Normalbetrieb” ist, seht ihr in der WLAN Übersicht eures Handys kein “Device-…” mehr. Der Mikrocontroller ist jetzt “passiv” im WLAN Netz. Er sollte jetzt, dank euren hinterlegten Zugangsdaten, den Zugriff auf das Internet haben und somit das LNbits Wallet auf Zahlungseingänge überprüfen können.
- Ihr könnt aber kontrollieren, ob er sich in euer WLAN eingeloggt hat. Dazu schaut in eurem Router nach, welche Teilnehmer dort aktiv sind. Da sollte jetzt ein “ESP32-…” zu finden sein.
- Wollt ihr den bitcoinSwitch neu parametrieren? Dann müsst ihr den Access Point Modus wieder mit dem Touch Pin 4 – beim Start des Mikrocontroller – aktivieren und euch wieder über die aktive Suche des WLAN Teilnehmers auf das Web Interface einloggen.
- Gerade dieser Unterschied zwischen “Normalbetrieb” und “Access Point Betrieb” ist für Einsteiger schwer zu verstehen und von außen auch schwer zu erkennen. Manche ESP32 Boards haben einen speziellen Blinktakt, jedoch nicht alle. Um zu überprüfen, in welchem Modus er sich gerade befindet, sucht mit dem Handy nach dem Teilnehmer “Device-…” . Ist er nicht zu finden, dann wird er im “Normalbetrieb” sein.
- Anstelle des Handys könnt ihr natürlich auch ein Laptop oder ein Tablet verwenden, um euch auf den Mikrocontroller einzuloggen. Der Übersicht halber, habe ich hier in der Anleitung nur das Handy erwähnt.
- Zur Fehlersuche könnt ihr den
Serial Monitor
verwenden. Dazu müsst ihr den ESP32 mit dem Computer per USB Kabel verbinden und unter “Tools/Port” den richtigen Port einstellen. Dann klickt die kleine Lupe 🔍 rechts oben in der Arduino IDE Software an. Es sollte sich ein weiteres Fenster öffnen. Dort müsst ihr evtl. noch die Baudrate z.B. auf 115200 einstellen. - Wenn die Verbindung mit dem Serial Monitor funktioniert und der ESP32 im “Normalbetrieb” ist, werden in dem Fenster einzelne Zeilen beschrieben. Zur besseren Übersicht aktiviert unten links “Autoscroll” und “Show timestamp”.
- Der Serial Monitor zeigt euch umfangreiche Informationen. Unter anderem eure Wallet Balance (in Millisatoshi), ob eine Zahlung eingegangen ist, welche Pin und für welche Zeit angesteuert wurde. Auch kann man den Boot-Vorgang des ESP32 sehen und ob das Portal „gelaunched“ wurde. Probiert das am besten mit dem RESET Taster einfach mal aus, während das Fenster des Serial Monitor noch geöffnet ist.
- Noch ein weiterer Hinweis. In meinem Artikel LNPoS wird auch ein ESP32 Mikrocontroller, die Arduino IDE Software und LNbits verwendet. Es schadet sicherlich nicht, den Artikel mal quer zu lesen.
7.8 Sonstiges
-
Wenn ihr noch kein Lightning Wallet habt, ein sehr einfache ist walletofsatoshi.com
-
Wenn ihr noch keine Lightning Satoshis habt, dann tauscht euch z.B. bei fixedfloat.com ein paar On-Chain Coins in Off-Chain Lightning Satoshis. Ihr müsst nur bei “EMPFANGEN” Bitcoin angeben und könnt dann “Try lightning!” anwählen.
-
Noch ein weiterer Hinweis zu den GIPOs. Die Pins 14 und 15 sind bei dem ESP32 mit einer Sonderfunktion belegt. Sie geben ein PWM-Signal beim booten aus. Die Pins sollten am also nicht verwenden, sonst bekommt ihr zum booten jedes mal für ein paar Sekunden euer Relais geschaltet.
-
Der bitcoinSwitch funktioniert unter bestimmten Bedinungen auch mit einen selbst gehosteten LNbits auf z.B. einem Raspiblitz. Allerdings muss man über IP2TOR gehen, wenn man keinen Clearnet Anschluss hat. Zum Zeitpunkt dieses Schreibens, gab es ein Pull request, der es ermöglicht, IP2TOP zu verwenden. Mit dem PR kann man zu dem LNbits Server auch einen individuellen Port definieren. Ansonsten ist immer der Standard HTTPS Port 443 hinterlegt und das funktioniert mit IP2TOR dann nicht.
-
Link zur Trieberquelle für die Board Manager: espressif – board manager
-
Wer mal einen Ausgang testen möchte: gpio-pins-esp32-led-blinking-example
-
Wer sich einen LED-Taster bauen möchte, um Ein- und Ausgänge zu testen. Für den Lightning ATM habe ich schon mal ein Bausatz für einen LED Leuchtdrucktaster zusammen gestellt. led-button-cset
-
Datenblatt des ESP32: espressif esp32
-
Hier mal zwei Tipps, für alle die einen mobilen WLAN Hotspot mit SIM Karte einsetzten oder auch mal ihr Handy als Hotspot mit begrenztem Datenvolumen verwenden:
-
Damit der ESP32 gleich mit dem richtigen WLAN arbeitet, legt euch zu Hause eine WLAN Gastzugang mit der SSID und dem Passwort eures Hotspot an. Dann könnt ihr zu Hause alles einrichten und der bitcoinSwitch funktioniert auch spontan unterwegs.
-
Falls ihr auch mal euer Laptop oder andere Geräte mit eurem Hotspot verbindet, wählt für das WLAN “getaktet Verbindung” bzw. “Als gebührenpflichtiges Netzwerk” behandeln. Dadurch werden über diese WLAN Verbindung keine automatischer Update der Betriebssysteme durchgeführt, dass kann große Datenvolumen sparen. Unter Windows: Start -> Einstellungen -> Netzwerke und Internet -> WLAN -> Bekannte Netzwerke verwalten -> <WLAN-Netzwerk> -> Eigenschaften ->
Als getaktete Verbindung festlegen
. Unter Android: Einstellungen -> Verbindungen -> WLAN -> <WLAN-Netzwerk> -> Einstellungen (Zahnradsymbol) -> Erweitert -> Gebührenpflichtiges Netz ->Als gebürenpflichtig behandeln
.
7.9 WebInstaller
Hier findet ihr ein paar Links zu WebInstaller Seiten
- bitcoinSwitch – Das Original
- BeerTap LED Button – BeerTap mit einem LED-Button
- KanutoSwitch – Two impulses
- LEDflash – LED Deko Lampe mit multiple Flash Funktion
Falls dir der Artikel gefallen hat, freue ich mich über eine Nachricht. 📨
Meine⚡️Lightning Adresse: axelhamburch@ereignishorizont.xyz
Tipp: Mit dem Sats.mobi Wallet in Telegram geht das übrigens auch.
Syntax: /send <Betrag> <LightningAdresse> <Nachricht>
Erstellt mit Liebe 🧡 Seit 749573 / 864437
– Lightning ⚡ (er)leben –