Current prototype
Web-interface made with Grafana to see the data visualised.
This project aims to create a smarthome-system that can measure, control & show various useful information, such as temperature and important local events. The exact featureset is yet to determined. :)
Currently I use the following hardware-stuff to make this project tick. There's more stuff to be added later.
- Bunch of dupont-wires & a prototyping board
- ESP32 microcontroller
- Dallas DS18B20 temperature sensor
- 1602 LCD for displaying the information
I write the code in C++ and use ESP32 Arduino-framework as a base for functionality. Some of the other stuff used include...
- PlatformIO for project-management, library-management, flashing and so on.
- Arduino libraries for accessing the sensors, controlling the LCD, parsing JSON and so on
- Polling of Dallas DS18B20 for my apartment's temperature
- Using WiFi to connect to Internet to access OpenWeatherMap via their API to get the weather of my city
- Displaying all the useful data on the 1602 LCD
- Time-display based on NTP
- Sending the data over the Internet to Influxdb-database. I have a separate Grafana-instance that can show graphs of the data on a browser
- Replace Dallas DS18B20 temperature sensor with a Bosch BME680 that is more accurate and does humidity, pressure & gas too
- Implement proper multithreaded code where different tasks (Sensor-polling, time, API-access etc) run separately and share data as necessary
- More?