A few years ago, I came across a post by John Graham-Cumming, in which he had
used a router to run a bus arrival time
display
that basically showed the time that the next bus would be arriving at the bus
stop closest to his house.

I thought that was a fantastic idea, and I especially liked the unorthodox
choice of a router as a controller. The project stayed in the back of my mind,
and it resurfaced recently, as I started dabbling in
hardware. Since I’ve been looking for fun little projects to
do, this one was quick and easy enough, so I started looking into it.

(By the way, this post uses
Expounder, so if you want an
explanation on words with a dashed underline, click on them)

Of course, if you’ve been reading my posts, you’ll know that my microcontroller
of choice tends to be the ESP8266, and usually
not a router. The ESP8266 is a microcontroller(basically
a tiny computer with CPU, RAM, storage, the works) that includes
a comfortable amount of memory and storage, is tiny, doesn’t need much power and
has built-in wifi, which is extremely useful.</span> This was the obvious choice
for this project as well, so I bought a small OLED screen from eBay and started

Ever wish your house lights could flash along with your game? Now they can.

A while ago, two unrelated things happened: I got one of those cheap RGB LED strips from Ebay, and I became interested in hardware hacking. If you aren’t familiar with the LED strips, they’re basically a long string of LEDs connected to a controller that usually supports an infrared remote control, which can be used to set the color and intensity of the lights.

When I started tinkering with hardware, I noticed a change: I started looking at common, everyday things around the house and thinking “I bet I could put a controller in that and write an API for it”. This led to a button that orders food when pressed, a rotary mobile phone, a wifi-enabled room fragrance sprayer (I haven’t written that one up, it was too simple), a self-driving RC car

After designing my first PCB, I went on
a designing spree. It turns out that making PCBs(printed circuit boards, basically a piece of plastic
that includes all the connections of your components in it. It helps make your
project smaller and cut down on the amount of wires floating around) is
so enjoyable, I’m PCBing all the things! The next victim for PCBfication is
a circuit I had originally built on an Arduino and subsequently migrated to an
ESP8266.

The circuit is a home sensor and controller. It can sense light, temperature,
humidity and motion, and includes an RF controller (at 433 MHz) and an infrared
LED so you can control your TV and other home devices. In this post, I’ll go
into some detail about the build and how it connects to other sensors and
controllers around the house.

This post is also a test of my new
Expounder concept library.
Throughout the post, various terms will be underlined
like this (with a dashed underline), and
you can click on them if you’re unfamiliar with the underlined term. After
clicking, some text will expand and explain the term.

I recently received my shipment of the ESP8266 and NodeMCUs I had ordered, and I started playing with them. My overall experience is coming soon in another post, but the verdict so far is that it’s fantastic and I love it for ever.

Since the ESP8266 is pretty much a $2, postage-stamp sized powerhouse, it’s usable in a wide variety of projects. I’ve been intrigued by the Amazon dash button ever since I saw it, and I wanted a hackable button like that for my own projects. So, I set out to