Reading Power Use Data with a Webcam and Python

As any hacker will attest to, whenever an important tool is missing, you might as well just build a new one! That’s the position that [Matt] found himself in when he was attempting to measure the power consumption at his parents’ house. He left the transmitter for the power meter at home, and so the logical thing to do was to set up a webcam and a python script to monitor his dad’s power meter instead of going back to get his.

The power meter that he had handy was a GEO Minim Electricity Monitor. He found it very difficult to extract the data directly from this particular meter, so instead of digging into any of the communications protocols int he meter, he set up a webcam in a box with an LED and monitored it with a specially-written Python script. The script is able to see the particulars of the meter, and then reports back to the computer with all of the relevant data. [Matt] has put this code up on his project site for anyone to use.

This is a great workaround that doesn’t involve delving too deep into the inner workings of the meter in question. You could always build your own power monitoring system though, if that’s more of your style!

HamRadioTweets Gets the Word Out

In times of crisis, or extreme government control, it can be difficult to spread critical information to people who can help. A good example of this was during the Arab Spring in 2011. When your Internet connection is taken away, it can feel as though all is lost. Unless you have a ham radio, that is.

For many people the thought of ham radio conjures up images of old guys twisting knobs listening to static, but it’s actually come a long way in our modern digital age. For example, you can now send tweets via ham radio. This project was actually started in 2011 by [Bruce Sutherland]. The Egyptian government had shut down the country’s Internet access after citizens were posting information about the extreme violence they were facing. [Bruce] wanted a way to help  others get the word out, and he came up with HamRadioTweets. This system allows a user to send tweets via ham radio.

The system actually piggybacks off of a ham radio service called APRS. This service is most often associated with GPS tracking systems, such as those found in nearspace balloons, but it can also be used to send simple text messages over the air. APRS works thanks to the vast network of receiving stations setup all around the world. These stations can receive messages and then re-transmit them, greatly extending the reach of the original transmitter. Some of them are even hooked up to the Internet to get the messages to go distances that would be extremely difficult and unreliable by traditional means.

[Bruce’s] system hooked into the Internet component and watched for messages being sent specifically to “TWITR”. The Python based system would then read these messages and re-transmit them over Twitter. The project died out a while back after Twitter updated their API. Now, it’s been rebuilt on Ruby by [Harold Giddings]. The project website was handed over to [Harold] and he is currently maintaining it. Hopefully you’ll never need to use this software, but if the time comes you will be glad it’s available. You can watch [Harold] bounce an APRS message off of the International Space Station and on to Twitter in the video below. Continue reading “HamRadioTweets Gets the Word Out”

Simple LED Project to Spice Up Your Halloween Party

[Paul’s] project is a great example of how you can take a simple project and turn it into something more interesting. He built himself a jack-o-lantern with an Internet controlled RGB LED embedded inside.

[Paul] first wired up an RGB LED to a Raspberry Pi. He was sure to wire up each color using a 100ohm resistor to prevent the LED from burning out. The web interface was written in Python. The interface is pretty simple. It consists of three text fields. The user enters a value between 0 and 255 for each of the three LED colors. The program then lights up the LED accordingly.

[Paul] realized he would need a diffuser for the LED in order to really see the blended colors properly. Instead of using a common solution like a ping-pong ball, he opted to get festive and use a plastic jack-o-lantern. [Paul] removed the original incandescent bulb from the lantern and mounted the LED inside instead. The inside of the pumpkin is painted white, so it easily diffuses the light. The result is a jack-o-lantern that glows different colors as defined by his party guests. Be sure to check out the demonstration video below.

Scripting Debug Sessions: Python for GDB Remote Serial Protocol

Are you tired of hammering out the same commands over and over again in GDB? If not, we highly encourage you take more advantage of The GNU Project Debugger, which is a fantastic way to poke around inside your microcontrollers while they’re running a program.

Back to the matter at hand. [Stef] put together a Python program that leverages GDB’s Remote Serial Protocol. He calls it pyrsp and the talk he recently gave about it can be seen below.

The core feature is the ability to add a callback in your C code that triggers the Python script. Think of this a little bit like a print statement, except you have so much more power since it’s Python and GDB doing the “printing”. Anything that can be done at a breakpoint in GDB can now be executed automatically. So if you need to check a group of registers at every loop execution for hundreds of loops your wrists are going to thank you. Better yet, you can use Python to do the sanity checks automatically, continuing when the data is good and alerting you when it’s not. Neat!

Continue reading “Scripting Debug Sessions: Python for GDB Remote Serial Protocol”

Raspberry Pi Spies on Your Front Door

doorbell pictures

One of [Sander]’s first projects with a Raspberry Pi was to get it to send messages to his iPhone. From there he decided to take it a step further and wire the tiny computer up to his doorbell, creating a system that can send push messages to his phone whenever someone is at the front door.

[Sander]’s doorbell is wireless, and he decided to keep all of its original functionality. All it took to signal the Pi was a simple circuit tied to the doorbell’s status LED which turns off whenever the doorbell is pushed.

The Raspberry Pi runs a python program that handles the GPIO pin which is wired to the doorbell. When the doorbell is pushed, the program processes and sends the push notification while taking pictures of the visitor with an attached webcam. The pictures are included in the message so [Sander] can see who is at the front door. The code for the project is included on his project page.

This project rang a bell for us since we’ve seen projects using a Raspberry Pi and push notifications. None of them so far have included a webcam or utilized an existing wireless doorbell though, and this is a great step forward!

Apple ][ Graphics as your Screensaver or Second Screen

apple2-xscreensaver-weather-demo

Hipsters rejoice, you can actually make those high-tech IPS panels look like crap. Really nostalgic crap. [Kaveen Rodrigo] wrote in to show how he displays weather data as his Apple ][ emulated screensaver.

2014-07-08-234300_1366x768_scrotHe’s building on the Apple2 package that is part of the xscreensaver available on Linux systems. The program has an option flag that allows you to run another program inside of it. This can be just about anything including using it as your terminal emulator. [Adrian] recently sent us the screenshot shown here for our retro edition. He is running bash and loaded up freenet just to enjoy what it used to be like in the good old days.

In this case, [Kaveen] is using Python to pull in, parse, and print out a Yahoo weather json packet. Since it’s just a program that is called when the screensaver is launched, you can use it as such or just launch it manually and fill your second monitor whenever not in use.

We gave it a whirl, altering his code to take a tuple of zip codes. Every hour it will pull down the data and redraw the screen. But we’ve put enough in there that you’ll be able to replace it with your own data in a matter of minutes. If you do, post a screenshot and what you’re using it for in the comments.

Continue reading “Apple ][ Graphics as your Screensaver or Second Screen”

Android Doorbell Notifier

Breadboarded circuit to detect when doorbell rings

It’s always unfortunate to find a FedEx tag on your door saying you missed a delivery; especially when you were home the whole time. After having this problem a few times [Lee] decided to rig up a doorbell notifier for his Android phone.

[Lee]’s doorbell uses a 10 VAC supply to ring a chime. To reduce modifications to the doorbell, he added an integrated rectifier and a PNP transistor. The rectifier drives the transistor when the bell rings, and pulls a line to ground.

An old Netgear router running OpenWRT senses this on a GPIO pin. Hotplugd is used to run a script when the button push is detected.

The software is discussed in a separate post. The router runs a simple UDP server written in C. The phone polls this server periodically using SL4A: a Python scripting layer for the Android platform. To put it all together, hotplugd sends a UNIX signal to the UDP server when the doorbell is pushed. Once the phone polls the server a notification will appear, and [Lee] can pick up his package without delay.