Generally speaking, home automation isn’t as cheap or as easy as most people would like. There are too many incompatible protocols, and more often than not, getting everything talking requires you to begrudgingly sign up for some “cloud” service that you didn’t ask for. If you’re an Apple aficionado, there can be even more hoops to jump through; getting your unsupported smart home devices working with that Cupertino designed ecosystem often involves running your own HomeKit bridge.
To try and simplify things, [Michele Gruppioni] has developed a firmware for the ubiquitous Sonoff WIFI Smart Switch that allows it to speak native HomeKit. No more using a Raspberry Pi to act as a mediator between your fancy Apple hardware and that stack of $4 Sonoff’s from AliExpress, they can now talk to each other directly. In the video after the break you can see that the iPad identifies the switch as unofficial device, but since it’s compliant with the HomeKit API, that doesn’t prevent them from talking to each other.
Not only will this MIT licensed firmware get your Sonoff Basic, Sonoff Slampher, or Sonoff S26 talking with your Apple gadgets, but it also provides a web interface and REST API so it retains compatibility with whatever else you might be running in your home automation setup. So while the more pedestrian users of your system might be turning the porch light on with their iPhones, you can still fire it up with a Bash script as nature intended.
Of course, if you don’t mind adding a Raspberry Pi bridge to the growing collection of devices on your network, we’ve got plenty of other HomeKit-enabled projects for you to take a look at.
Continue reading “Homekit Compatible Sonoff Firmware Without A Bridge”
Debuggers come in all shapes and sizes, offering a variety of options to track down your software problems and inspecting internal states at any given time. Yet some developers have a hard time breaking the habit of simply adding print statements into their code instead, performing manual work their tools could do for them. We say, to each their own — the best tools won’t be of much help if they are out of your comfort zone or work against your natural flow. Sometimes, a retrospective analysis using your custom-tailored debug output is just what you need to tackle an issue.
If the last part sounds familiar and your language of choice happens to be Python, [Alex Hall] created the Bird’s Eye Python debugger that records every expression inside a function and displays them interactively in a web browser. Every result, both partial and completed, and every value can then be inspected at any point inside each individual function call, turning this debugger into an educational tool along the way.
With a little bit of tweaking, the web interface can be made remote accessible, and for example, analyze code running on a Raspberry Pi. However, taking it further and using Bird’s Eye with MicroPython or CircuitPython would require more than just a little bit of tweaking, assuming there will be enough memory for it. Although it wouldn’t be first time that someone got creative and ran Python on a memory limited microcontroller.
LED matrix projects are all over the place, but this one is interesting for its simplicity: it’s an LED matrix that is driven straight from an ESP8266 board. [Ray] put it together as a quick project for his students to teach the basics of LED programming.
Just get on the same network and load up the module’s WiFi address for a graphical representation of the 5×7 LED matrix. Pick a color, turn pixels on or off, or choose a predefined pattern and send it to the hardware. This is a powerful way to get use input and with this as a guide it’s fast to set up for pretty much an application you can think of. Just work your way through the documents he put together for the workshop (Zip file link), including all of the code and the slides he used to run the workshop.
Continue reading “Web Matrix Control Proves Power Of ESP8266”
Thermostats can be a pain. They often only look at one sensor in a multi-room home and then set the temperature based on that. The result is one room that’s comfortable and other rooms that are not. Plus, you generally have to get up off the couch to change the temperature. In this day and age, who wants to do that? You could buy an off-the-shelf solution, but sometimes hacking up your own custom hardware is just so much more fun.
[redditseph] did exactly that by modifying his home thermostat to be controlled by a Raspberry Pi. The temperature is controlled by a simple web interface that runs on the Pi. This way, [redditseph] can change the temperature from any room in his home using a computer or smart phone. He also built multi-sensor functionality into his design. This means that the Pi can take readings from multiple rooms in the home and use this data to make more intelligent decisions about how to change the temperature.
The Pi needed a way to actually talk to the thermostat. [redditseph] made this work with a relay module. The Pi flips one side of the relays, which then in turn switches the buttons that came built into the thermostat. The Pi is basically just emulating a human pressing buttons. His thermostat had terminal blocks inside, so [redditseph] didn’t have to risk damaging it by soldering anything to it. The end result is a functional design that has a sort of cyberpunk look to it.
The Internet of Things is here in full force. The first step when adding to the Internet of Things is obvious, adding a web interface to your project. [Jaspreet] wrote in to tell us about his project that adds a web interface to his MSP430 based project, making it easy to add any project to the internet of things.
Creating a web interface can be a bit overwhelming if you have never done it before. This project makes it easy by using a dedicated computer running Linux to handle all of the web related tasks. The LaunchPad simply interfaces with the computer using USB and Python, and the computer hosts the webpage and updates it in real time using Node.js. The result is a very professional looking interface with an impressively responsive display that can control the on-board LEDs, read analog values from the integrated ADC, and stream accelerometer data. Be sure to see it in action after the break!
We could see this project being expanded to run on the Raspberry Pi with a multitude of sensors. What will you add a web interface to next? Home automation? A weather station? Let us know!
Continue reading “Web Interface For The FRAM LaunchPad”
Here’s an interesting use of a Raspberry Pi to control the PSU on a server. [Martin Peres] is going to be away for a few months and still wants access to his PC. This isn’t really all that tough… it’s what SSH is made for. But he also wants lower-level access to the hardware. Specifically he needs to control and get feedback on what the PSU is doing, and even wanted to have access to the serial console without having to go through the computer’s NIC.
The image above shows one part of his solution. This is a custom Ethernet port that connects to his Rasberry Pi header breakout board. Inside the computer the jack is wired to the motherboard power LED to give feedback about the current state of the power supply. It also patches into the green wire on the PSU, which lets him turn on the power by pulling it to ground. After working out the cable routing he developed a web interface that makes it easy to interact with the setup.
As with other hacks along these lines letting an embedded computer run 24/7 is a lot less wasteful than leaving a PC on. That’s a concept we can really get behind.
Continue reading “RPi Control Your Server PSU Over The Internet”
Here’s a Raspberry Pi hack that adds web control using PHP and MySQL. As you can see in the image, it serves up a webpage (using the Apache2 server) which allows you to change the state of the GPIO pins. It’s not super-complicated, but it is nice to see a step-by-step guide for installing and configuring the package.
Web interface GPIO control is one of the features we loved about the Adafruit Web IDE. But this offering is loaded completely from the RPi (the Adafruit package uses cloud based code) and utilizes the tools most Linux network admins will be used to. A MySQL database manages the connection between GUI commands and GPIO modification. The webpage is served up by a PHP script which takes care of polling and changing database values. Configuration requires a new database, plus the username and password which has access to it.