Giter Club home page Giter Club logo

bc3's Introduction

Basecamp III ⛺

My home automation solution

  • add rpiZero when/if needed?
    • very good price, good horsepower
    • if always on & with main power available

Design ✏️

We we'll be using the following hardware/software:

bc-hq 💻

intel NUC running ubuntu server, and hosting:

  • influxdb (as a docker container)
    • this will record sensors time-series data
  • mongoDB (as a docker container)
    • this will record all the configuration parameters that are not meant to be recorded in influxdb (heating temperature, user parameters...)
  • nginx (as a docker container)
    • this will host the main UI webpage
    • the access from internet will be done on demand
  • grafana (as a docker container)
    • will provide various dashboards
  • various python modules:

bc-interphone 🔉

RPI 2, that will be:

  • interfacing
    • an e-paper display to show various metrics and status data
    • switches and contraptions to modify user service configuration parameters (absent, present, night mode...)
  • hosting the interphone module
    • plays vocal annoucements generated by the TTS module hosted on bc-speech

bc-speech 🗣

** old intel NUC running windows 7 with a french Best-of-Vox TTS software (now retired)

  • a dedicated bc_TTS python script allows TTS serving via HTTP

ESP_devices 📶

ESP8266 & ESP32 devices running micropython to interface multiple sensors.

  • I'll be using Wemos/LOLIN D1 mini pro, D32 & D32 pro devices (https://www.wemos.cc/, https://wiki.wemos.cc/start)
  • some devices are always-on, others are powered with a 18650 rechargeable Lipo battery supplying a +5V/+3.3V boost shield.
  • Bootstraping python scripts will be used along with a source code nginx server hosting python scripts with checksums to allow the ESP devices to check and update regularly over the wifi network if needed

ESP_heater

commands the heater ON/OFF through a latching relay interface

  • uses a touch-enabled TFT to allow manual ON/manual OFF/AUTO selection + show current state

ESP_power

reads the main power metrics and pushes them to influxDB.

ESP_water

reads the water metrics and pushes them to influxDB

ESP_livingroom

ESP_bedroom

ESP_outdoor

Dev notes

... are under the notes/ subdirectory

Progress

  • first ESP device able to update OTA
    • set up a dedicated dockerized nginx setup to serve the git directory, and generate basic checksums for any ESP .py file
    • develop the bootstrap python scripts & test them
      • set up and flash an ESP32 pro device
      • set up work env, how to easily and conveniently send/run scripts
      • test read/write to flash os
      • test import of other python scripts
      • test SD card read/write
      • test local web server
      • test local web client, get the checksum values for a module directory
      • test local web client file download with chunk/streaming to flahs os (try with big files to SD card)
      • specify, document and implement the bootstrapping with OTA update (rewrite reboot scripts if necessary, using a normal boot, and an update boot)
  • add an e-paper display to the ESP device

bc3's People

Contributors

nio101 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.