Lichtkrant
Hello world!
Ron heeft het op 1 mei 2019 voor elkaar gekregen om met een Arduino Uno tekst op de lichtkrant weer te geven. Deze lichtkrant werkt op basis van shiftregisters en moet actief gemultiplext worden. Op de printplaat zat een microcontroller die ik er af heb gewipt. Aan de verbindingen die naar de shiftregisters gaan heb ik draadjes gesoldeerd en verbonden met de Arduino. Aan de draadjes zitten labels die aangeven waar ze voor zijn. Waarschijnlijk heeft Ron de Hello World Arduino sketch nog.
Het plan + ideeën
Het oorspronkelijke plan was om de lichtkrant bij het SpaceMap project te gebruiken. Een aantal ideeën voor de lichtkrant:
- De lichtkrant aansturen met een ESP8266/ESP32
- Gebruiken als klok in de labruimte
- …
In november 2020 heeft Ron besloten om de lichtkrant met een ESP8266 aan te sturen en te gaan gebruiken als klok voor in de labruimte.
Hello world op ESP8266
In juni 2021 is het gelukt om het hello world programma te laten draaien op een ESP8266. Tijdens het testen waren er problemen met de level shifter.
Functies
Klok
De lichtkrant maakt verbinding via WiFi, haalt de huidige tijd op en geeft de tijd weer. De klok past zich automatisch aan aan zomer- en wintertijd.
Deurbel
Wanneer iemand op de deurbel drukt, verschijnt de knipperende tekst Deurbel!
op de lichtkrant.
SpaceMap
Wanneer de SpaceMap ziet dat er een hackerspace open of dicht gaat, publiceert hij een bericht via MQTT die door de lichtkrant wordt weergegeven. Zie hieronder een voorbeeld van zo'n bericht:
TDvenlo gaat open: +TDvenlo
TDvenlo gaat dicht: -TDvenlo
Hardware
- De originele processor is gedesoldeerd. Een ESP8266 stuurt via zijn footprint de shiftregisters aan.
- 74HC595N shift registers
- Scherm resolutie: 72×7 pixels
Software
- De software is in Arduino geschreven
- De lichtkrant wordt gemultiplext met een interrupt-timer
- Verversingsfrequentie: 142.85Hz
WiFi portal
Wanneer de ESP8266 opstart en niet kan verbinden met het netwerk, dan zal hij een WiFi portal starten waarmee je het gewenste WiFi-netwerk in kunt stellen. Verbind dan met het netwerk LichtkrantAP
.
Uploaden van firmware
Voor het uploaden van een programma moet de “brightness” schakelaar op LO staan.
Uploaden via OTA is ook mogelijk. Zie het wachtwoord in de broncode.
Fix: ESP8266 verliest wifi-verbinding na een aantal uur
Het is heel lang een probleem geweest dat de ESP8266 na een aantal uur de wifi-verbinding kwijtraakt en daarna niet meer kan herverbinden. De oplossing is om de WiFi sleep mode uit te schakelen door de volgende regel toe te voegen aan de code: WiFi.setSleepMode(WIFI_NONE_SLEEP)
https://github.com/esp8266/Arduino/issues/5998
MQTT
Deurbel
Spacemap
Overig
De lichtkrant publiceert de volgende topics naar MQTT:
- onTime: Het aantal seconden dat de lichtkrant aanstaat. Dit wordt gebruikt in grafana om weer te geven wanneer er spanning op de labtafels staat.
Todo
- Een wifi-configuratieportal toevoegen om hardgecodeerde wachtwoorden weg te halen
- Verbinden met de deurbel via MQTT
- Verbinden met de spacemap?
Een MQTT topic aanmaken waar de spacemap naar kan publishen (lichtkrant/spacemap_msg)- Subscriben naar een MQTT topic van de spacemap (spacemap/state_change_msg)
- Payload in json:
- space_name [string]
- new_status [string]
- timestamp [?]
Archief
Tijd verzetten
Sinds 30-03-2022 is het niet meer mogelijk om de tijd te verzetten. De tijdzone waarin wij ons bevinden is nu hardgecodeerd. De klok zou nu automatisch van zomer- naar wintertijd moeten springen.