79 lines
2.5 KiB
Markdown
79 lines
2.5 KiB
Markdown
|
|
# Aquamaniac Home Control System (AqHCS)
|
|
|
|
## 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/aqhome/wiki for more information (in German).
|
|
|
|
The Aquamaniac Home automation/control system consists of multiple parts:
|
|
- nodes
|
|
- small PCBs with AVR microcontrollers, for now:
|
|
- AtTiny84
|
|
- AtTiny85
|
|
- AtTiny841
|
|
- AtMega644
|
|
- 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, humidty, CO2 and others)
|
|
- motion detection, door/window sensors
|
|
- LED strip controllers
|
|
- modular operating system written in AVR assembler
|
|
- event-driven GUI
|
|
- 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)
|
|
|
|
- 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
|
|
|