Today I made a smart cloud-like lamp
While playing with cement was fun,
I am more a locally-distributed-Server-Client-architectured-HTTP-protocolled-cloud-like-smart-lamp-maker kinda guy.
Bonus: Try to find Mufasa (my dog) in one of the images
A few months ago I've seen on Pinterest a nice picture:
And thought: I can make that
.
Probably even smarter, and cooler.
Well, I just did :)
In this video, you can enjoy A stormy sunset
This smart cloud-like lamp system change colors based on time of day and weather. The SkyNetServerCloud knows the current time and date (from the RTC), from the date it infers current weather. Then sends this information to any SkyNetClientCloud that asks for it (See diagram below).
This is what I planned for this project:
- My smart cloud-like lamp system will use multiple ESP32 (because it's cool and has ton of functionalities). Also, it will use Addressable-LEDs.
- The SkyNetServerCloud also will have RTC connected.
- The SkyNetClientCloud also will have "fairy-light" connected (For the rain effect).
This is how it works:
The making of the actual cloud took a family effort!
As for the SkyNetServerCloud, I used RTC for tracking time even when the system is turned off.
At first, I wasn't sure that light will pass through the foam.
And, more important, I needed to test if the "cloud" will not light up from the ESP32 generated heat, so for several weeks I just let it work in a safe place.
In my opinion, it came up pretty nice :)
A footer
This is the most complicated project I've made so far, I used all the knowledge and experience I gained from previous projects to build it:
- I wrote the Arduino code on VScode using Arduino plugins, this enabled the VScode's auto-complete to help me write better Arduino code.
- I wrote the code fully documented using oxygen
- I designed the server-client architecture using known design patterns
- I used ESP's multy-tasking capabilities for parallel code execution
I love adding a touch of what I've learned in the past to new things I learn today. This way I always practice and improve my skills.
My Arduino code is freely available on GitHub.
Cheers, Gal.