Introductie

In november 2017 schreef Bart Venneker een post op deze site met de titel “Bouw zelf een bluetooth lichtkrant”.

 

Al vanaf dat moment wilde ik ook een lichtkrant, maar met wat andere mogelijkheden. Om te beginnen moest het mogelijk zijn om eigen boodschappen in te voeren zonder daarvoor speciale Apps op je telefoon of tablet te moeten installeren. Dus benaderbaar via een web-interface. Naast de zelf in te voeren boodschappen moet het ook mogelijk zijn om het actuele weer en nieuws items van internet te halen en op de lichtkrant weer te geven. Natuurlijk moet ook de tijd worden getoond!

Benodigde Producten

1 de la placa del procesador ESP12 - Kit de bricolaje 1of!-ESP12 of een 1of!-Wemos processor bordje 1x € 12,05 € 12,05 GL5537 LDR - Resistencia fotosensible Ieder type voldoet 1x € 1,60 € 1,60 Módulo de matriz de puntos MAX7219 4x Dit is waar alles om draait! 2x € 10,05 € 20,10 Resistencia de película de metal 10KΩ 1/4 W - 10 piezas 1/4 watt weerstand 10k 1x € 1,10 € 1,10 Clear Perspex Sheet (Cast) 3mm x 400mm x 300mm 1x € 5,00 € 5,00
Total: € 39,85

De Hardware (sumier)

Voor dit project is een ESP8266 met ingebouwde WiFi natuurlijk ideaal. Om de intensiteit van het display afhankelijk te kunnen maken van het omgevings licht gebruik ik een Light-Dependent Resistor (LDR).

De 1of!-Wemos en 1of!-ESP12 processor bordje zijn ideaal voor dit soort kleine prototype projecten.

Als display natuurlijk de MAX7219 Dot Matrix modules.

 

In ESP-ticker.h staan een paar #define statements die van belang zijn:

 

#define   HARDWARE_TYPE          MD_MAX72XX::FC16_HW

//#define HARDWARE_TYPE         MD_MAX72XX::GENERIC_HW

#define   MAX_DEVICES                8

 

Afhankelijk van het type MAX7219 dat je gebruikt moet je bij HARDWARE_TYPE de bijbehorende definitie opgeven. De MAX7219 matrix modules die opencircuit.nl verkoopt zijn van het type FC16HW. Afhankelijk van hoeveel modules je gebruikt moet je de definitie van MAX_DEVICES aanpassen (er zitten vier MAX7219's op één module. Je kunt de lichtkrant firmware en één, twee, drie of vier modules gebruiken. Je kunt óók twee keer twee modules naast en boven elkaar gebruiken. Met een BIG Font kun je dan dubbel hoge letters gebruiken.

De onderdelen verbinden

De Firmware

Voor het ontwikkelen van firmware voor de ESP8266 gebruik ik een zgn. Framework waarin alles zit voor het verbinden met WiFi, het ophalen van de tijd via NTP een file browser om bestanden van het interne files systeem (SPIFFS) te kunnen downloaden en daarnaartoe te kunnen uploaden en er is een web-server. Ook het “Over The Air” updaten van de firmware zit in dat Framework in de vorm van een Update Server.

Het enige wat nog moet worden toegevoegd is sturing van de MX7219 dot matrix display en functies om het weer en het nieuws op te halen.

 

Uiteraard moet je de Arduino ESP8266 core installeren (lees hier hoe dat moet). De ESP-ticker is getest met versie 2.6.3.

Invoeren van lokale boodschappen Invoeren van lokale boodschappen
Aanpassen settings Aanpassen settings
FileSystem Explorer FileSystem Explorer
Update Server Update Server

Voor het gebruikte Framework moet je ook de volgende libraries installeren:

Voor het aansturen van de MAX7219 display heb je de volgende libraries van “Marco Colli” nodig:

 

- MD_Max72xx

- MD_Parola

 

Je installeert deze via de Arduino Library Manager:

dit plaatje heb ik van Bart gepikt .. dit plaatje heb ik van Bart gepikt ..

weerlive.nl

Het weer halen we op bij weerlive.nl. Hier moet je je registreren en een “API-key” opvragen. Voor privé gebruik is de dienst gratis, als je maar niet te vaak het weer opvraagt (fair-use). De firmware staat maximaal iedere 15 minuten toe.

Je voert de API-key in op de settings pagina van de web-server. Hier geef je ook op voor welke plaats je het weer wilt hebben (maar dit is slechts een indicatie. In midden Nederland komt het weer in ieder geval altijd uit De Bilt).

newsapi.org

Deze organisatie verzamelt nieuws berichten van over de hele wereld. Ook voor deze dienst moet je een “API-key” aanvragen. Voor “ontwikkelaars” is de dienst gratis mits je maximaal 500 keer per dag nieuwe berichten opvraagt (let op: De geleverde berichten zijn minimaal 15 minuten oud!). Dat is dus maximaal 1x per 5 minuten.

Je voert de API-key in op de settings pagina van de web-server.

De Firmware

De firmware kun je van github downloaden. Het is een beetje teveel om de hele firmware hier uit te leggen maar de belangrijkste zaken vinden plaats in de main loop() functie:

loop()

Instellingen van de Arduino IDE om de Firmware te compileren Instellingen van de Arduino IDE om de Firmware te compileren

Het “switch” statement zorgt ervoor dat er om-en-om lokale (via de web-interface ingevoerde) berichten, of nieuws berichten worden getoond. Als het msgType 1 of 2 is worden respectievelijk de dag-naam en de tijd afgedrukt. Is het msgType 9 dan wordt het weer getoond.

Show-Off 

Ik vind het leuk om ook het inwendige van mijn “projectjes” te kunnen zien. Daarom gebruik ik vaak plexiglas voor de structuur of kast en waarom zou ik daar voor de ESP-ticker van afwijken?

 

Ik heb twee stukken plexiglas gebruikt (30x25 en 30x6). Plexiglas is met een fijne (ijzer)zaag goed te zagen. Door het met hete lucht (300*C) plaatselijk te verwarmen kun je het (om de hoek van een tafel bijvoorbeeld) goed buigen. Het 1of!-Wemos bordje en de MAX7219 displays (2 stuks) zitten op het rechthoekige stukje plexiglas van 30x6 geschroefd. Om de MAX7219’s goed te kunnen monteren is het het makkelijkste om de twee buitenste 8x8 display-units van de printplaat af te halen. Dat is vrij eenvoudig want ze zitten in voetjes. Wel moet je erg voorzichtig zijn om de pootjes niet te buigen. Nu kun je de unit met vier M2,5 of M3 boutjes en moertjes aan het plexiglas vast schroeven. Aan de andere kant schroef je het processor bordje vast.

Maak een gaatje voor de LDR en lijm deze met bijvoorbeeld hot-glue vast.

Het is verstandig om de unit nu te testen. De MD-parola library is erg eenkennig in wat links en rechts en onder en boven is. Je wilt niet dat, als je alles in elkaar gezet hebt, de krant "op zijn kop" wordt weergegeven!

 

Een groter stuk plexiglas in een U-vorm gebogen dient als omhulsel.

 

Plaatjes zeggen meer dan woorden ;-)

De LDR is met hot-glue aan de rechthoekige basis gelijmd De LDR is met hot-glue aan de rechthoekige basis gelijmd

Comentarios