Voor meer informatie, zie de Wemos website.
Ik heb de basis Arduino omgeving gebruikt met de Arduino esp8266 uitbreiding voor het schrijven van de code. Er is veel informatie te vinden op het internet hoe dit opgezet kan worden, ik ga daar verder niet hier op in.
De volgende punten wil ik proberen werkend te krijgen:
Om het e.e.a. werkend te krijgen heb ik gebruik gemaakt van verschillende bibliotheken.
WifiManager
Deze bibliotheek maakt het erg simpel om de wifi instellingen te configureren. Wanneer de controller voor de eerste keer gestart wordt, zal deze zichzelf configureren als accesspoint. Wanneer een computer verbinden is met dit accesspoint kunnen de wifi instellingen worden gezet waar de esp op moet verbinden. Bij de volgende start van de esp zal deze automatisch verbinden met het juiste netwerk.
Adafruit Neopixel bibliotheek
Deze bibliotheek maakt het heel simple om verschillende RGB leds aan te sturen, waaronder ook de PL9823's die ik heb gebruikt in de kerstboom.
ESP8266 Webserver
Dit is onderdeel van de standaard bibliotheek. Deze maakt het mogelijk om zeer eenvoudig een webpagina te kunnen serveren vanaf de esp. Ik gebruik deze bilbiotheek voor het serveren van een basis webpagina waarin alle code zit die in de browser moet draaien.
WebSockets
Deze bibliotheek maakt het makkelijk om een websocket verbinding te maken tussen de browser en de esp voor het snel uitwisselen van data.
Ontwerp
In het ontwerp heb ik de code gesplists in twee delen:
De basis van de communicatie tussen de browser en de esp wordt uitgevoerd met een websocket. Dit maakt het mogelijk om snel gegevens te kunnen uitwisselen. In de code wordt dit gebruikt voor het updaten van de browser m.b.t. de huidige status en kleur van de leds, instellen van kleuren, patronen etc.
Naast het afhandelen van de websocket en de webpagina verzoeken, bestuurt de esp ook de leds. Ik heb hiervoor een aantal patronen geimplementeerd om te zien of dit een beetje werkt. En het lijkt te doen wat ik wil.
Bron code
De code is beschikbaar op github, zie de link hieronder. Hou er rekening mee dat de code niet is opgeschoond en niet erg robuust en leesbaar is. Maar het zou een redelijke basis moeten vormen voor mensen die iets vergelijkbaars willen doen.
GitHub link
Video's
Hieronder zijn twee video's te vinden van de kerstboom met de huidige versie van de software. In de eerste video is het sterrenpatroon te vinden met een fade instelling op de leds op willekeurige plekken. Zoals op de achtergrond te horen is, is Maika (mijn kat) het er niet mee eens dat ik met de code voor de kerstboom bezig ben ;)
Your browser does not support the video tag.
De tweede vidoe is een dubbele lus patroon.
De laatste video is de webinterface waarmee de boom kan worden bestuurd. Deze laat de beschikbare effecten zien en een aantal andere instellingen.
Kosten
De totalke kosten van dit project (afgezien van de uren voor het bouwen en coderen): with the esp8266):