Alarm Clock Design

I’m thinking of building an alarm clock next, I need something that has bright lights that can be turned on and off, as my wall clock I can’t read at night. I’m probably going to use four MAX7219 controlled 8×8 LED matrices just to display the four digits. I was thinking of a 7-segment display, but that’s a bit small.

Also I’d like it to be NTP synced, so needs wifi. I’ll possibly use a Raspberry Pi Zero with wifi dongle, if I can get my hands on one, otherwise it’ll be an ESP-12; probably powered by a USB mains adaptor as the LED’s need 5v even though the zero/esp8266 are 3.3v

NodeMCU Motor Shield Review

I just received my NodeMCU Motor Shield to go with my NodeMCU v1 ESP12e development board and robot chassis.

So the board has a bunch of screw terminals on it – A+, A-, B+ and B- to connect two motors, and then VM/GND (up to 9v for the microcontroller) and VIN/GND (up to 36v for the motors). However the mostly undocumented feature is that if you jumper the VIN/VM pins near to the power switch, you can supply up to 9v to VIN/GND and it will feed that into the motors and also into the NodeMCU’s 3.3v regulator. I’ve used this configuration with two 18650 Li-Ion batteries that provide about 8v when fully charged (nominal 3.7v each).

Internet Button

Whilst looking for something I could do with an ESP-01 and sleeping/batteries, I found this, which itself was inspired by this (which I couldn’t get to work!)

Essentially you power on the ESP-01 by pressing a button. Now whilst that sounds lame, the clever part is that once its on, you can do whatever you like e.g. post to a website, and then turn the unit back off (by setting GPIO2 and CH_PD low) until the button is pressed again.

Simply Dashing!

I’ve finally gotten around to making a web frontend for my Raspberry Pi & Arduino wireless sensor network.

I chose Shopify’s Dashing dashboard, as its opensource and can be installed locally and not via some cloud crap.

Essentially you have a HTML template into which you feed JSON data. I got a bit tied up in the JSON formatting so it took longer than it should have to get working (about 3 hours) but once I realised that most of the job placeholders were a single line of JSON, and not a whole entity, it was quite straightforward. Here’s 90% of my entire dashboard code:

Obstacle Bot

I’ve finished my obstacle avoiding robot project.

Basically its an ATmega328p microcontroller that uses an HC-SR04 ultrasonic sensor to detect obstacles.

The head moves using an SG-90 servo and a L293D dual H-bridge drives the two motors, using a library I’ve written and put on GitHub.

The whole robot is powered by two 3.7v 18650 Li-Ion batteries with a DC/DC converter that drops it to 6v for the motors and a diode (and smoothing cap) to drop it further to 5v for the microcontroller and servo.