My project to automatize my home

Hello everyone, today i want to present my project made with Blynk at heart.

The goal for the project is to automate my house, or at least some room.The project is hosted on a raspberry pi 3 that run a Blynk local server, (there is also a second raspberry pi 2 always ready and in sync in case the first one fail).The “client” devices are mainly esp8266, they are all setted to retrieve updated firmware from the raspberry pi and auto-update.

Device: Weather station

The weather station is the first device that I’ve realized, it’s an esp-8266 battery powered, solar charged and use a DS18B20 temperature sensor to monitor external temperature,List of sensor:

  • DS18B20 digital temperature sensor, 16 bit accuracy, onewire protocol.
  • Resistive rain sensor connected to the ADS1115 external adc.
  • DHT11 monitor internal box temperature and humidity, poor accuracy, onewire protocol.
  • LM35 monitor the internal temperature , medium accuracy, connected to the ADS1115.
  • Battery voltage is measured by both the internal adc and the external ADS1115.
  • Solar panel voltage is measured by the external ADS1115.

The battery is a Li-ion 1 cell battery (4400 mAh) recharged by a solar panel trough a classic TP4056

Weather station schematic:

Weather station code:

Solar panel and rain sensor:

Weather station intern:

Device: Tv control and living room monitor

(This device is under heavy development, i will upload the code and photo in future)

This device is an Esp8266 wall powered that monitor the room temperature and control Tv, Sky decoder, Xbox, HVAC and Bd-player trough an ir LED.The wiring is similar to the weather station and i will reuse the pcb with little modification.Since this device is powered from the wall the code is very different because here I’ve used the Blynk library.

Device: light relay

This device is very simple, it’s only purpose is to control a relay that trig the light in my bedroom,because of this I’ve use a Esp01, the OTA-update here isn’t implemented because of the little memory.Here the code is the basic Blynk example because the only thing to do is trig a digital pin.

Server

The Rasperry pi’s host the local Blynk server, all my local git repo’s, and some JS script that provide service like OTA-update, telegram bridge and google maps API bridge(the last one is under development).The emergency raspberry pi is kept in sync with the primary one by a cron job that every 15 minute copy the data, the switch between the couple of raspberry isn’t already automatic so i must do it manually.Near the server there is an arduino mega connected trough Ethernet that monitor and control:

  • Temperature and humidity(DS18B20, LM35 and DHT11)
  • Voltage from the 12 switching power supply
  • Voltage from every dc-dc (12V -> 5V) that power the raspberry pis
  • Relay that power the 3D printer
  • Light for the 3D printer (RGB strip not NeoPixel)

Photo of the server with double Raspberry Pi and Arduino Mega on top

Here is the script for the OTA-update:

Leave a Reply

Your email address will not be published. Required fields are marked *