87c2314c2d17915c8f548bcd915d09b53b28ebc7
This will become a base module for other layout modules (like hlayout, vlayout and mlayout). All those modules will share the playment code.
Aquamaniac Home Control System (AqHomeControl)
Quickstart
Prerequisites
To compile the project the following software needs to be installed:
- gwenhywfar (general purpose library, also containing some development tools)
- avrasm (Opensource avr assembler)
- gcc (GNU C compiler)
Building
- download and unpack this project
- cd into the main folder
- create a build folder (e.g. "mkdir build")
- cd into that "build" folder
- configure package for building ("gwbuild -s ../")
- build autogenerated files ("gwbuild -p" and "gwbuild -Btm2builder")
- build project ("gwbuild -j NUM_OF_CPUS")
- install project ("sudo gwbuild -i")
Overview
See https://gitea.aqbanking.de/martin/aqhomecontrol/wiki for more information (in German).
The Aquamaniac Home automation/control system consists of multiple parts:
-
nodes
- small PCBs with AVR microcontrollers, for now:
- decentralized, nodes just broadcast measured data over a two-wire communication network (clock/data), addresses are auto-assigned, no prior setup necessary, no central bottleneck or single point of failure
- node types
- environmental measuring (temperature, humidity, CO2 and others)
- motion detection, door/window sensors
- LED strip controllers
- modular operating system written in AVR assembler
- event-driven GUI for ATmega MCUs (work in progress)
- driver modules for busses:
- one-wire bus
- two-wire-bus
- SPI bus
- UART
- driver modules for devices/sensors (incomplete list):
- DS18b20 sensors for temperature measurement
- SI7021 sensors for temperature and humidity measurement
- SGP_30 sensors for air quality measurement
- ccs811 sensors for air quality measurement
- SK6812 LED driver
- ds3231 realtime clock module
- I2C displays (work-in-progress)
- SPI displays (work-in-progress)
-
PC applications
- aqhome-data
- TCP data service receiving sensor data
- aqhome-nodes
- service receiving sensor data via inter-node bus from nodes and forwarding that data to aqhome-data
- aqhome-mqttlog
- service exchanging data between aqhome-data service and a mqtt server
- aqhome-react
- service reacting to data received by aqhome-data (home automation service)
- aqhome-tool
- tool to manipulate aqhome-data (e.g. edit devices and values, add data points, create graphs from aqhome-data)
- tool to flash firmware for nodes, list nodes
- aqhome-cgi
- HTTP service for user interaction with aqhome-data
- aqhome-data
Description
Languages
Pascal
70%
Assembly
14.1%
C
9.9%
C++
5.6%
OpenSCAD
0.2%
Other
0.2%