|Primary Contact||Michael Erskine|
Simple means of showing status of Hackspace stuff on web and physical boards.
Basic Project Plan
- NodeMCU (ESP8266) with Arduino core for WiFi-enabled status board
- NodeJS server for HTTP access
- a good starter project for the NodeMCU_v2 and ESP8266
- open source software on GitHub https://github.com/msemtd/nodemcu-statusboard
The driving of the 16 LEDs poses an interesting problem due to the limited number of digital outputs on the NodeMCU: we are looking for a simple low-cost solution so after looking at various ICs to perform the task I decided to throw in another inexpensive micro with plenty of I/O and control it with I2C, serial or similar.
Using a cheap ProMicro for I/O
The NodeMCU can tell the ProMicro what outputs to drive with a simple serial protocol: -
- ASCII for human convenience and same parsing code on both micros
- same interface on both UARTS - USB and HW for simplicity and testing
- The ESP8266-E is not 5v tolerant on the UART so I shall use a voltage divider
For my first tests I used a cheap 18650 power bank that one would normally use for recharging a mobile phone when off grid. It ran for less than 24hrs but I was not sure of the initial charge. Anyhow, there's no overarching need for this device to be battery powered so I will probably just run it from a spare mains phone charger but it has got me thinking about the power usage so I'm going to learn a little about that:-
- I'd like a generic current logger that I can attach to various devices - e.g. the SparkFun Low Current Sensor Breakout - ACS712 https://www.sparkfun.com/products/8883
- there may be ways of reducing the current draw for the LEDs
- The NodeMCU - is it a power hog?
- how efficient is our 5v ProMicro and can we save power by making simple mods and running it at 3.3v
The various readings need to come from the Hackspace infrastructure. These can be exposed to the local network if we only want status board units to run in the space, but since there's little difference between a public human-readable web interface and the simple ASCII interface used by the NodeMCU, it may as well be a feature of our public facing web.