Ereignishorizont
TOC Test

TOC Test

berschirt

asdfasdfasdfasdfsdf

xcvyxcvxcv

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

4.1 Candy Machine

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.
  • Aktueller Hinweis: Die bitcoinSwitch Software wurde gerade (Okt.22) geupdatet und bringt Verbesserungen. Leider wurde dadurch aber auch die Bedienung des Web Interface etwas verändert und stimmt so in Teilen nicht mehr mit dieser Dokumentation überein. Wer erstmal lieber die alte Version verwenden will, findet sie hier https://github.com/riseup-axel/bitcoinSwitch. Das ist ein alter Fork der noch mit dieser Dokumentation übereinstimmt.
  • 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 👏