Dann Sourcen clonen und im Verzeichnis "Software_ESP" einfach nur platformio run eingeben, zum Upload pio run -t upload -e d1_mini (ohne das -e d1_mini ist es aktuell für einen ESP12 (oder ESP07) eingestellt, mit ck-reset zum automatischen Upload, der D1 Mini hat eine andere Reset-Methode).
Continious integration mittels travis-ci:
Baut neu nach jedem Commit, außerdem Cronjob täglich inkl. eventueller Libraries-Updates
Bibliotheken (werden alle automatisch durch platformio installiert)
Automaton + ESP Erweiterungen für Wifi und HTTP-Client
wegen mangelnder Flexibilität (keine externen GPIOs) und Bugs (im HTTP-Client) habe ich die Libraries geforkt, so dass sie aktuell von meinem github-repository installiert werden. Pull Requests im Upstream-Repository sind aber bereits gestellt. Falls die gemerged werden, kann man wieder zurück auf die original-Bibliothek gehen.
MFRC522 - einfache Bibliothek für den Kartenleser. Aktuell lese ich die UID der Karte aus und sende sie an den Webserver
Adafruit MCP23017 Arduino Library - für den IO Expander. Verhält sich fast so wie interne GPIOs.
Ablauf:
Es gibt eine große Statemachine "ATM_RFIDRelay". Die meiste Logik spielt sich dort ab.
Das ist eine Statemachine für Automaton. Automaton setzt die Statemachine sehr effizient um(CPU und Speicher), indem es eine Tabelle für die State-Übergänge verwendet und callbacks mit interner "Bit-friemelei" umsetzt. Wichtig ist, dass die Tabelle und die dazugehörigen ENUMs konsistent bleiben. Außerdem stellt Automaton einige sehr nützliche Standard-Statemachines bereit, z.B. um die LEDs anzusteuern (auch blinkend) oder Taster entprellt einzulesen und Events für Statemachines bei Flanken zu generieren.
Man kann die Statemachine auf http://www.wolkendek.nl/atm/editor.php bearbeiten, indem man die Sourcen hochlädt (Achtung, beim Herunterladen wird ein Teil der Funktionalität überschrieben).
Dokumentation / Review:
ich habe recht viel Kommentare (auf englisch) in den Sourcen - auch im Vorgriff auf einen möglichen "Automaton"-Workshop. Schaut mal, ob ihr das gut versteht.
Ich würde mich über ein Review mittels der github-Review-Funktionalität freuen. :-)
Funktionen:
Getestet:
WiFi Verbindungsaufbau
Auslesen der UID über den Kartenleser
Senden der UID an HTTP-Server
Auswerten des Repsonse Code (bis jetzt nur "Reject", also Code ungleich 200 getestet)
Entsprechende Übergänge der State-Machines
"Off" Eingang für State machine
Implementiert, aber ungetestet:
Anbindung an externe GPIOs
Ansteuerung der LEDs und Ausgänge innerhalb der Statemachine
Eine erste Version für die ESP-Software. Außerdem habe ich die vorhandene Dokumente in Unterverzeichnisse verschoben.
Zur Software:
Buildumgebung mit Platformio, damit kann jeder den Editor seiner Wahl für Veränderungen verwenden. (Ich habe Eclipse verwendet).
platformio run
eingeben, zum Uploadpio run -t upload -e d1_mini
(ohne das-e d1_mini
ist es aktuell für einen ESP12 (oder ESP07) eingestellt, mit ck-reset zum automatischen Upload, der D1 Mini hat eine andere Reset-Methode).Continious integration mittels travis-ci:
Bibliotheken (werden alle automatisch durch platformio installiert)
Ablauf:
Atm_led_mcp
Dokumentation / Review:
Funktionen:
Implementiert, aber ungetestet:
Noch nicht implementiert: