Skip to content

A remote temperature and humidity monitoring system for my girlfriend's greenhouse, which houses a small citrus grove.

Notifications You must be signed in to change notification settings

giraciopide/leemonaya

Repository files navigation

leemonaya

A remote temperature and humidity monitoring system for my girlfriend's greenhouse, which houses a small citrus grove.

The idea is that periodically,

  • an IOT board, reads temperature/humidity sensor data
  • the IOT board (over wifi) performs an HTTP POST call to report its status (board id and sensor readings)
  • the http ingestion server authenticates the incoming sensor reading and persists them to a database

Includes:

  • firmware for a ESP8266E Wifi board, to be compiled and flashed via the Arduino IDE
  • http server to ingest sensor readings (over HTTP POST) and store them in database (2 versions! One in python/flask and the other in node/typescript)
  • a minimalistic web single page application ui, made in typescript + webpack + chart.js

Authentication is performed by means of a shared secret key that is used both in client (hardcoded in the ESP8266 firwmare) and server to calculate the HMAC SHA256 hash of the whole post request body. The base64 encoded hash of the request body is passed in the http 'Authorization' header.

IOT Hardware:

IOT Software/Firmware used:

Ingestion web server:

  • made in python3/flask
  • current db is sqlite3 (other databases support is trivial, as long as they have a compliant python3 db api).

Not yet implemented:

  • https, to eliminate vulnerabilities to message replay

About

A remote temperature and humidity monitoring system for my girlfriend's greenhouse, which houses a small citrus grove.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published