Een Tardis-klok met een RGB-led
Een Tardis met deurtjes die open kunnen, zodat je er iets in kunt bewaren. Hij is ook een klok, en bovenop zit een RGB-led die je van buitenaf aanstuurt, bijvoorbeeld bij een nieuwe mail of chatbericht.
Wat je nodig hebt
- Een oled-schermpje
- Een ESP8266-bordje (Wemos D1 mini)
- Een RGB-led
Software
De Tardis wordt aangestuurd door een kleine microcontroller met wifi. Een ander bordje kan ook, zoals een ESP32 of een Arduino met een ethernetshield. Ik heb de firmware geschreven in PlatformIO, maar een andere ontwikkelomgeving werkt ook.
Om de Tardis met je wifi en met de API voor de led te verbinden, pas je deze regels aan
in main.cpp:
const char* ssid = "SSID_HERE";
const char* password = "PASSWORD_HERE";
String tardisAPI = "API_URL_HERE";
Zodra de firmware erop staat, vraagt de microcontroller elke seconde de API op. Die
stuurt JSON terug met de sleutel led en een waarde van 1 tot en met 5:
- groen knipperend
- groen brandend
- blauw knipperend
- blauw brandend
- led uit
Een antwoord ziet er bijvoorbeeld zo uit:
{
"led": 3
}
Knippert de led rood, dan heeft de Tardis geen wifi. Brandt hij rood, dan is het antwoord van de API geen geldige JSON.
Behuizing
Ik heb de behuizing in blauw PLA geprint, maar andere materialen kunnen ook. De STL-bestanden zitten in de download onderaan deze post.
De delen lijm je aan elkaar. Daar heb ik bewust voor gekozen: zo hoeft niets op support geprint te worden. De elektronica zet je vast met bijvoorbeeld smeltlijm. Voor het “glas” heb ik een stukje plastic van een oude verpakking aan de binnenkant van de wanden geplakt.
Elektronica
Zo sluit je alles aan op de microcontroller:
- D5 → rood van de RGB-led
- D6 → groen van de RGB-led
- D7 → blauw van de RGB-led
- D1 (SCL) → SCL van het oled-scherm
- D2 (SDA) → SDA van het oled-scherm