Exponiert museum automation system
+------DEVICES-------+ | Keys, Switches, | | Sliders, Joystick, | | Lamps, Display, | | Rotary Encoders, | | Motors, Sensors | +--------------------+ | | Power and data | via short wire or even | 20m cable | +--EXPONIERT CIRCUIT BOARDS--+ | Analog, Digital | <-- Exta power supply +----------------------------+ | | Exponiert Bus | (5V high current I2C, | 5V 1A power supply) | 4 pin DIN plug (S-VHS) | +--------RASPBERRY PI--------+ | Exponiert Breakout Board | <-- 5V, HDMI, Network, USB +----------------------------+ | | Linux I2C | +-------EXPONIERT SERVER-------+ | Custom Script running NodeJs | | Dependencies: i2c-bus, ws | +------------------------------+ | | Websocket | +---------BROWSER---------+ | Backend for development | <-- Web app from file:// | Frontend for visitors | +-------------------------+
Devices
Input devices are plain voltage sources like switches, potentiometers or analog sensors.
Output devices are voltage controlled like lamps, motors.
Both the 4 pin Mini Din Exponiert Bus cable and the wires to the devices can be >10m long.
Exponiert Circuit Boards
The boards connect the Exponiert bus from Raspberry Pi to the analog and digital devices. They contain ICs that are addressed in the Node server.
There are two types of boards:
- Digital containing two PCA9532: 8 Digital inputs each and 8 drived outputs 50V 500mA. Both common plus and common minus is possible. The outputs offer 128Hz PWM.
- Analog containing two PCF8591: 4 Analog inputs each 0..5V 8 bit and 1 Analog output 0..5V 8 bit
Three boards can be connected to the Raspberry Pi Breakout Board directly and one after another in a chain.
The Raspi provides 5V 1A, enough for many cases. If you need more, you can add an extra supply up to 50V to the Digital Board.
Server
The Nodejs application server connects to the boards using i2c-bus NPM package. On the other side, it connects to the browsers via Websocket on port 1337 using ws NPM package.
The server has a small custom script you have to write for the individual hardware.
Browser
If you need support with the websocket, there is a Javascript snippet binding the browser to the Node server. For everything else, use your preferred framework or Vanilla Javascript.
Changelog
- v0.1 2021 connection Browser-Node-Raspi-I2C-Boards-Sensors/Lamps tested and some showcases built
- v0.2 2021 robust Exponiert Bus, tests using Oscilloscope, final ICs tested
- v0.3 2021 hundreds of changes resulting from v0.2 tests successful final tests
Todo
- Code examples for Browser and Server
- Analog Board: All footprints pin 1 to top
- Analog Board: Capacitor for inputs and outputs
- Analog: Geht die Masse bei den Widerständen durch?
- SMD LEDs Footprint (arrow and | instead of :)
- Text "Exponiert" on all boards
- Digital Board: Rotate 1st pin at Driver output
Text and Photos: The MIT License 2021 Kastanie Eins GmbH