The DINternet platform is a simple, yet expandable way of introducing a 'smart'system to your home or industry.
There are two core devices to the platform; the Hub and the Controller.
The Controller Unit is the main part of the system. Containing many IO pins to interface with its surroundings the Controller Unit can be used. Programmable from its WebGUI, the Controller Unit is easy to set up and extremely versatile. Expandable with sensor/relay add-on packs.
The Hub Unit ties all of the Controller Units together and simplifies the Management of data in the setup, scraping any and all data from the Controller Units in the setup. This data can them be presented in one easy to use page, shared to an IoT site and much, much more!
Connecting to your home/work network, the Hub acts as an Access Point for all Controller Units in the setup, reducing the amount of devices on the network appearing in the network.
I have built various systems using the DIN rail as a simple way of tying together my modular designs, however I have always found myself relying on off-the-shelf enclosures for my projects.
In this project I aim to create a simple, modular setup that I can use to for a wide range of applications using common components.
The main unit is the brains of the project. While there will be a few GPIO pins broken out The inputs and outputs of this unit will focus on communication; i2c, serial and wifi. Using these the unit will provide a WebGUI for the user, output data to an MQTT server, display information on an attached screen and co-ordinate the use of any additional slave units added to the board on the i2c bus.
A reasonably compact but simple to assemble design is the aim of the game here.
The screen used will be a 20x4 i2c lcd screen. All components will be mounted to a board the exact same size as the 20x4 display, using standoffs to screw the two together. The lower board will contain a NodeMCU header (to the right of the board to avoid the i2c backpack on the screen, USB port pointing out of the top, a 4 pin header for the screen to connect to the i2c bus, a row of screw terminals along the bottom edge of the board (vcc in, ground, tx, rx software serial pins and a few extra GPIO and grounds broken out), onboard 5v/3.3v regulators to power the NodeMCU and and two RJ45 connectors for attaching the slaves.
The RJ45 pins will carry: VCC, GND, 5v, GND, 3.3v, GND, SDA, SCL
Variations - I also aim to make a variation of this board featuring a Pi Zero as the main controller. Design would remain mostly the same with the headers and regulators hopefully being the only parts requiring movement.
The slave units will act as expansion boards for the main controller. Relays, pH Sensors, temperature sensors, extra pins and more can easily be added using the slave units.
In order to handle the additional components I am planning to add a small microcontroller such as an AtTiny85 to control the slave device, act as an i2c slave and store basic information on the connected device. This information will allow the main Unit to utilise the attached peripherals and use it correctly.
This is pretty flexible depending on the components involved, however each board will contain the two rj45 connectors for daisychaining the boards, a socket for the AtTiny, and the actual components. Some Ideas for expansions are: Relay board, pH/Temp sensor board, LED board, Analog input board, opto-isolated io board, button boards etc
In order to make the board neat I will aim to keep them the same height as length as the Main unit, even if the width varies.
I am entering one of the two components of this planned project into an IoT contest over on Hackster.io.
This contest entry focuses on the IoT Control Unit, which is ESP8266 driven so meets the criteria for the contest.
The Pi-powered Hub Unit will be documented over there for future contest use.
Soon I will be adding more documentation to the project here on Hackaday.io following some more work on the code; I'm happy with the builds using enclosures by the magnificent @Hartmut Wendt and am now currently focusing on integrating MQTT to have my network function as intended.