Last time on Minimal MQTT, we used a Raspberry Pi to set up an MQTT broker — the central hub of a home data network. Now it’s time to add some sensor and display nodes and get this thing running. So pull out your ESP-8266 module of choice, and let’s get going.
For hardware, we’re using a WeMos D1 Mini because they’re really cute, and absolutely dirt cheap, but basically any ESP module will do. For instance, you can do the same on the simplest ESP-01 module if you’ve got your own USB-serial adapter and are willing to jumper some pins to get it into bootloader mode. If you insist on a deluxe development board that bears the Jolly Wrencher, we know some people.
NodeMCU: Getting the Firmware
We’re using the NodeMCU firmware because it’s quick and easy to get running. But you’re not stuck with NodeMCU if you want to go it alone: MQTT has broad support. [TuanPM] ported over an MQTT library to the native ESP8266 SDK and of course there’s espduino, a port for an Arduino-plus-ESP combo. He also ported the MQTT module to NodeMCU that we’ll be using today. Thanks, [TuanPM]!
Continue reading “Minimal MQTT: Networked Nodes”
A fan used to be a simple device – motor rotates blades, air moves, and if you were feeling fancy, maybe the whole thing oscillates. Now fans have thermostats, timers, and IR remotes. So why not increase the complexity by making a smart fan with an IoT interface?
[Casper]’s project looks more like a proof of concept or learning platform than a serious attempt at home automation. His build log mentions an early iteration based on a Raspberry Pi. But an ESP8266 was a better choice and made it into the final build, which uses an IR LED to mimic the signals from the remote so that all the stock modes of the fan are supported. The whole thing is battery powered and sits on a breadboard on top of the fan, but we’ll bet that a little surgery could implant the interface and steal power internally. As for interfaces, take your pick – an iOS app via the SmartThings home automation platform, through their SmartTiles web client, or using an Amazon Echo. [Casper] mentions looking into MQTT as well but having some confusion; we’d suggest he check out [Elliot Williams]’ new tutorial on MQTT to get up to speed.
Continue reading “When the Smart Hits the Fan”
In this short series, we’re going to get you set up with a completely DIY home automation system using MQTT. Why? Because it’s just about the easiest thing under the sun, and it’s something that many of you out there will be able to do with material on-hand: a Raspberry Pi as a server and an ESP8266 node as a sensor client. Expanding out to something more complicated is left as an exercise to the motivated reader, or can be simply left to mission creep.
We’ll do this in four baby steps. Each one should take you only fifteen minutes and is completely self-contained. There’s a bunch more that you can learn and explore, but we’re going to get you a taste of the power with the absolute minimal hassle.
In this installment, we’re going to build a broker on a Raspberry Pi, which is the hub of your MQTT network. Next time, we’ll get an ESP8266 up and running and start logging some data. After that, we’ll do some back-end scripting in Python to make the data speak, and in the last installment, we’ll explore some of the useful frills and fancy bits. Let’s get started!
Continue reading “Minimal MQTT: Building a Broker”
How minimal can a decent home automation setup be? If you need an HTML frontend, you’re going to need a webserver. An ESP8266 will do the trick. And then you need to be able to control your electronics. The cheapest and easiest way to do that is with the ubiquitous 433 MHz remote-controlled outlets and a $1 radio unit from an online auction site. Add in a cheap ESP8266 module, and your total outlay is going to be under $20.
That’s exactly what [Nikos Kantarakias] did. He combined a bunch of available ESP8266 Arduino libraries — one for driving the 433 MHz radio modules, [Paul Stoffregen]’s libraries for keeping time and for setting alarms, and another for keeping track of time zones — with some of his own code for setting up WiFi access, and it’s done.
It’s all available on GitHub for your perusal. The code does some strange things — like requiring a complete reboot every time you set an alarm — but it does let you set recurring and one-off activations of the attached devices with a web interface that’s served off the ESP8266 itself. If you want your coffee machine to turn itself on in the mornings, and want a system that’s easy for the other inhabitants of your house to configure, something like this might be just the ticket.
But if you’re looking for a project on the other end of the ESP-tech spectrum, [CNLohr] wrote a standalone Ethernet controller for the thing. Woah.
If you’re playing Hackaday Buzzword Bingo, today is your lucky day! Because not only does this article contain “Pi 3” and “IoT”, but we’re just about to type “ESP8266” and “home automation”. Check to see if you haven’t filled a row or something…
Seriously, though. If you’re running a home device network, and like us you’re running it totally insecurely, you might want to firewall that stuff off from the greater Interwebs at least, and probably any computers that you care about as well. The simplest way to do so is to keep your devices on their own WiFi network. That shiny Pi 3 you just bought has WiFi, and doesn’t use so much power that you’d mind leaving it on all the time.
Even if you’re not a Linux networking guru, [Phil Martin]’s tutorial on setting up the Raspberry Pi 3 as a WiFi access point should make it easy for you to use your Pi 3 as the hub of your IoT system’s WiFi. He even shows you how to configure it to forward your IoT network’s packets out to the real world over wired Ethernet, but if you can also use the Pi 3 as your central server, this may not even be necessary. Most of the IoT services that you’d want are available for the Pi.
Those who do want to open up to the world, you can easily set up a very strict firewall on the Pi that won’t interfere with your home’s normal WiFi. Here’s a quick guide to setting up iptables on the Pi, but using even friendlier software like Shorewall should also get the job done.
Still haven’t filled up your bingo card yet? “Arduino!”
If you’re building an omniscient home-automation system, it’s ability to make decisions is only as good as the input you give it. [Petewill]’s self-made panopticon now knows when someone is in bed. That way, the [petewill]’s automatic blinds won’t open when he’s sleeping late on weekends.
[Petewill] didn’t take the easy way out here. (In our mind, that would be a weight sensor under one of the bed’s feet.) Instead, his system more flexible and built on capacitive sensing. He’d tried force sensors and piezos under the mattress, but none of them were as reliable as capacitance. A network of copper tape under the mattress serves as the antenna.
Continue reading “Are You in Bed?”
If you just want to prevent your garden from slowly turning into a desert, have a look at the available off-the-shelf home automation solutions, pick one, lean back and let moisture monitoring and automated irrigation take over. If you want to get into electronics, learn PCB design and experience the personal victory that comes with all that, do what [Patrick] did, and build your own ESP8266 based irrigation controller. It’s also a lot of fun!
[Patrick] already had a strong software background and maintains his own open source home automation system, so building his own physical hardware to extend its functionality was a logical step. In particular, [Patrick] wanted to add four wirelessly controlled valves to the system.
Continue reading “ESP8266 Based Irrigation Controller”