AngelBlocks is an open source smart home building block system that is suitable for a wide range of users. Homeowners with little or no technical skills will find AngelBlocks intuitive and easy to use. Makers, hackers, and developers will love AngelBlocks because they can customize and extend the system at whatever skill level they possess.
To understand the maker friendly aspects of the system, we should first examine how the system is structured. The following diagram shows the key hardware and software components of the AngelBlocks building block system.
The AngelGate is a self contained single board computer that acts as a server in the AngelBlocks system. The AngelGate is essentially a Raspberry Pi Linux computer equipped with our AngelBlock Pi Adapter. The adapter allows host software to control AngelBlocks using the on-board LoRa wireless link.
The AngelServer application is written in C# and runs under Mono. This application actively communicates with the AngelBlocks, receiving updates whenever they detect conditions that might require action. AngelServer continuously evaluates behavior rules in the database, looking for any whose conditions have been met. When a rule’s conditions are satisfied, AngelServer will execute that rule.
The AngelBlock Network Driver is a C# class that abstracts the AngelBlock network, providing programmatic access to AngelBlocks and AngelTags.
All C# code is cross platform and works on both Linux and the PC, providing a good base of code for developing PC/Mac applications.
Our Maker Kit ships with one AngelBlock adapter and one MakerBlock. The MakerBlock brings the AngelBlock IO to a header and provides a breadboard area so that custom circuitry can be attached to the AngelBlock. We offer interfaces for:
- Digital IO
- Analog input
- PWM output
Custom AngelBlocks can be added to the system with no custom programming and used with our standard AngelGate and software. So, for example, if you wanted to make a custom AngelBlock that controls your pool pump, you could wire up the FETs and relays using a MakerBlock and control it with behavior rules just like any other AngelBlock. The only difference is that the MakerBlock provides maker oriented conditions for programming. For example, it would allow you to create the following rule:
When MakerBlock.DigitalIn0 IsEqualTo 1 Then Do MakerBlock.ClearDigitalOut3
If you want to create your own software application to control your AngelBlocks system, you will want to use one of our AngelBlock adapters. An AngelBlock adapter allows a host computer or microcontroller to control AngelBlocks programmatically via a serial port based command interface.
For more detail: AngelBlocks – Maker Kit