Ereignishorizont
bitcoinSwitch

bitcoinSwitch

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 (Halbleiterchips mit Prozessor und Peripheriefunktionen), 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, 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.

Zum Beschreiben des Mikrocontroller mit dem Programm benötigt ihr einen Computer mit der kostenlose Arduino IDE Software. Das eigentliche bitcoinSwitch Programm ist free and open source Software (FOSS) auf GitHub. Die Parametrierung des bitcoinSwitch erfolgt über das Web Interface, also dem einfachen Aufruf einer Webseite, die vom Mikrocontroller zur Verfügung gestellt wird. Am besten nehmt ihr dafür euer Handy oder Laptop. Da sich der bitcoinSwitch mit dem Internet verbinden muss, braucht es noch einen Internet Zugang. Zum Beispiel euer Heim WLAN Netz oder ein Hotspot, den ihr an eurem Handy einrichtet. Ihr könnt auch mehrere Zugänge abspeichern.

Zu guter Letzt, braucht es natürlich noch ein spezielles Lightning ⚡ Wallet, ein 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 legend.lnbits.com. Es ist kostenlos, jodoch 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

Jetzt wird es technisch!! ⚙️ Die Einrichtung des bitcoinSwitch habe ich hier mal in sechs Kapitel aufgeteilt.

5.1 Hard- und Software vorbereiten

  • Installiert euch auf eurem Computer Arduino IDE. Achtung: Es gibt zwar schon die Version 2.0, ich empfehle aktuell aber dennoch die Legacy IDE 1.8.X etwas weiter unten zu verwenden. Hintergrund: Die 2.0 ist etwas anders aufgebaut und folgt somit nicht dieser Dokumentation. Aber es gab auch schon Probleme, den entsprechenden Port einzustellen. Verwende die 2.0 also nur, wenn ihr wisst was ihr tut.
  • Ö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.
  • 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".
  • 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 Seite https://github.com/arcbtc/bitcoinSwitch. Dort findet ihr auch nochmal eine sehr komprimierte Beschreibung zur Einrichtung des 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////////////////". Darunter setzt ihr die Zeile mit "usingM5 = false", da ihr keinen M5Stack verwendet, sondern einen ESP32.
  • "format = false" und "portalPin = 4" könnt ihr so lassen
  • Die Vorbereitungen sind hiermit erfolgt 👏

5.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 ihr Connecting.... 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

5.3 Den Access Point Modus aktivieren und das Web Interface aufrufen

  • Verbindet den Pin 4 mit einem Jumper Kabel, so dass, das freie Ende als offenen "Touch" Pin verwendet werden kann
  • Restartet den Mikrocontroller entweder über den Button "RESET" oder verbindet den USB Stecker neu
  • Beim Neustart berührt bitte gleich das offenen Kabelende des "Touch" Pin (Pin 4) mit den Finger. Damit schaltet ihr den ESP32 in Wifi Access Point (AP) Modus.
  • Hinweis: Der ESP32 hat so sensible Eingänge, dass er leichte Potentialunterschiede, z.B. bei der Berührung mit dem Finger, erkennen kann. Das ist die moderne Art von Schaltern oder Tastern.
  • Jetzt sollte der Mikrocontroller sein "aktives" WLAN eingeschaltet haben. Er hat nun einen Access Point für andere WLAN Teilnehmer geschaffen, auf dessen embedded Webserver ihr euch jetzt einloggen könnt.
  • Sucht mit eurem Handy unter WLAN Netze nach einem neuen Teilnehmer, der mit "Device-…" anfängt. Wählt ihn an, um euch darauf anzumelden.
  • Wenn ihr nach einem Passwort gefragt werdet: ToTheMoon
  • Nach dem das WLAN Netz angelegt wurde und bei euch als verbunden erscheint, könnt ihr es nochmal anwählen und kommt damit auf das Web Interface des ESP32 Webserver
  • Bravo, ihr solltet jetzt die Seite "AutoConnect" sehen und könnt mit der Parametrierung des bitcoinSwitch beginnen

5.4 Parametrierung des bitcoinSwitch

  • Jetzt, wo ihr Euch auf das Web Interface eingeloggt habt, seht ihr die Webseite "AutoConnect" und rechts davon drei Balken
  • Wenn ihr diese anklickt, habt ihr vier Menüpunkte zur Auswahl:
  • Configure new AP: Hier könnt ihr WLAN Zugänge vergeben, über die der bitcoinSwitch später Zugang zum Internet bekommt. Ihr könnt mehre einrichten, z.B. Home, Hotspot, etc.
  • Open SSIDs: Zeigt Euch die aktuell eingerichteten Zugänge und deren Verbindungsleistung an. Klickt hier aber nicht auf eine Verbindung, denn damit trennt ihr die aktuelle Verbindung eures Handy und ihr bekommt die Fehlermeldung "Authentication failed". Dann müsst ihr den Access Point neu starten.
  • Reset...: Startet nur neu, löscht bei mir weder Einstellungen noch WLAN Daten
  • Access Point Config: Hier werden die eigentlichen Parameter für den bitcoinSwitch eingestellt. Nach einer Änderung müsst ihr Save drücken und auf der folgenden Seite unten noch einmal mit OK bestätigen.
  • Hinweis: Wer mit LNbits und den Browser Wallets noch nicht so vertraut ist, dem empfehle ich jetzt ersteinmal das Kapitel 5.5 zu lesen
  • Nun zu den Parameter Einstellungen unter "Access Point Config":
  • Passwort: Hier kann man das WLAN Login Passwort ändern
  • LNbits server: Der verwendete LNbits Server, z.B. legend.lnbits.com
  • LNURLPay optional for static QR: Den statischen LNURLPay Link bekommt ihr von eurem LNbits Wallet. Fügt die Erweiterung "LNURLp" hinzu und erzeugt einen "NEW PAY LINK". Hinweis: Druckt euch diesen QR-Code aus und legt ihn euch zu eurem bitcoinSwitch.
  • LNbits invoice key: Den Schlüssel findet ihr in eurem LNbits Wallet unter API Info, er nennt sich dort "Invoice/read key"
  • Pin to turn on: Die Pin (GPIO) Nummer die angesteuert werden soll, sobald ein Zahlungseingang registriert wurde
  • Time to turn on pin: Die Dauer der Ansteuerung in Millisekunden
  • Amount to check for: Der Betrag, auf den geprüft werden soll
  • Somit sind alle Parameter vergeben und ihr könnt sie mit Save speichern
  • Wenn die WLAN Zugänge und Parameter wie gewünscht eingestellt wurden, kann der Mikrocontroller neu gestartet werden. Entweder über den Button "RESET" oder ihr verbindet den USB Stecker neu.
  • Diesmal allerdings ohne den Touch Pin 4 zu berühren. Dann startet der Mikrocontroller im "Normalbetrieb" und der bitcoinSwitch sollte funktionieren. Juhuu! 🎉
  • Hinweis: Wenn ihr noch kein Lightning Wallet habt, ein sehr einfache ist walletofsatoshi.com
  • Hinweis: 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.
  • Jetzt schnappt euch das Lightning Wallet eurer Wahl und scannt den ausgedruckten QR-Code
  • Das Wallet verbindet sich dann mit dem LNbits Server und der schickt euch eine Invoice (Rechnung). Die Bezahlung müsst ihr jetzt nur noch bestätigt.
  • Kurze Zeit später sollte die Magie 🌟 beginnen und euer Relais schaltet hoffentlich die gewünschte Funktion 🔥
  • Falls das Relais nicht geschaltet hat, prüft euer LNbits Wallet auf den Zahlungseingang
  • Wenn es daran nicht liegt, dann schaut euch das Kapitel 5.6 an und beobachtet das Verhalten des bitcoinSwitch mit dem Serial Monitor
  • Probiert es einfach mal aus. Die Erfahrung kommt mit der Übung.

5.5 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 legend.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

5.6 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. Vieles ist gleich oder ähnlich. Gerade die Punkte 18, 19 und 20, mit dem LNbits Wallet, sind interessant und ergänzend. Die hier benötigte Extension LNURLp ist ähnlich aufgebaut, wie die Extension LNURLDevice des LNPoS.

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 sehr 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:

Und jetzt ganz neu eine deutschsprachige (DACH) Gruppe extra für den bitcoinSwitch:

Hinweis: Als Spamschutz ist die Gruppe privat und verlangt zwei ⚡ Sats Eintritt. Haltet also euer Lightning Wallet bereit. Ihr habt 15 Minuten Zeit. Am einfachsten gehts mit dem LNTXBOT Wallet, weil das der Torwächter ist. Bei BlueWallet kann es sein das die Zahlung als "Ausstehende" angezeigt wird. Wartet nicht nicht länger als ein zwei Minuten und nehmt dann ein anderes Wallet. 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 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.

Bleibt neugierig und bis zum nächsten Tutorial

Euer Axel


7. Anhang

Im Anhang packe ich alles rein, was die oberen Kapitel zu sehr aufgebläht hätten, aber trotzdem interessant sein könnte.

7.1 Weiteres Informationsmaterial

  • Twitter Video kurz, mit Infos link
  • Video Tutorial zum bitcoinSwitch link
  • Die GitHub Seite vom bitcoinSwitch link
  • Die GitHub Seite von LNbits link

7.2 Weiteres zur Candy machine

  • 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.
  • Hier noch noch ein paar Bilder zur Montage und dem ESP32 Datenblatt, des hier verwendeten ESP32
Equipment

7.3 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.

7.4 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.5 Sonstiges

  • Wenn ihr selbst ein bitcoinSwitch Projekt aufgebaut habt, dann schreibt mir und lasst mir gerne ein paar Bilder oder ein Video Link zukommen. Per Telegram oder Twitter. Ich hätte Lust, auf dieser Seite auch gleich ein Sammelsurium an möglichen Projekten und Funktionen vorzustellen. 🤩 Dafür brauche ich aber Input!
  • Mal ein Hinweis zum Start des bitcoinSwitch. Direkt zum Anfang, wenn ihr die Spannung anlegt oder Reset gedrückt habt, wird der GPIO (Ausgangs Pin) den ihr festgelegt habt, einmal für 1000 Millisekunden angesteuert. Das kann erwünschst sein, z.B. als Rückmeldung, das der bicoinSwitch im Normalbetrieb ist, für gewisse Konstellationen des Aufbaus aber, kann das auch sehr problematisch werden. Wenn ihr das unterdrücken wollt, dann könnt ihr das relativ einfach machen. Ihr müsst dazu nur die Programmzeile digitalWrite(highPin.toInt(), HIGH); mit einem // auskommentieren, bevor ihr das Programm auf den ESP32 schreibt. Aktuell findet ihr den Code in der Zeile 338, aber das kann sich bald wieder ändern, sobald eine Programmänderung erfolgt und sich alles verschiebt. Wenn ihr nach nach der letzten Zeilen vor void loop() { sucht, solltest ihr das eigentlich finden. Siehe Bild.
  • 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

Erstellt mit Liebe 🧡 Block 749573 / 755496

– Lightning ⚡ (er)leben –