Web based Temperature and Humidity Monitor

This project is based on raspberry Pi to monitor the temperature and humidity of a room. The project uses Python scripts to automate things including running the web server. For the project all you need is the Pi, An SD-Card (higher the class the better), a Temperature and Humidity sensor which are easily available online and obviously a power supply. A LAMP based web server has been used so as to display the data on the graph.

web_based_tem_humidity_monitor

the project uses a ready-made programming interface for the GPIO pins and therefore there won’t be much issues while programming . The thing that could take time in the project is The MySQL server which seems a little tough to learn in the beginning but basic tasks can be achieved easily. Due to a timing issue, the sensor is communicated using a C code instead of a Python code. In the end you could modify your php scripts to get data from multiple rooms on the web server. A simple project which will help you get started with the PI and introduce you to the world of internet of things.

Raspberry Pi based RC car

There have been lot of products developed out of a Raspberry Pi ranging from Internet of things to FM transmitter. This particular product aims at controlling a commercially available RC car. Although the code along with the explanation on this project is available on the project website, I suggest you try out writing your own code if you are a beginner. This project also has implemented image processing in the initial stages to find out the correct frequency on which your RC car will work. Basically every car will have a different frequency and an available option is to brute force to find the correct radio frequency.

raspberry_PI_RC_car

If the radio receiver is a complex one, you would have no option but to use an oscilloscope. The entire code has been written in python which can be clone from github and is customizable to be compatible with your car. Initially, the program will find the correct frequency by using image processing to determine at which frequency the car moved. The next step will be to determine the PWM or frequency values of the control signal (left, right etc.). Once that is completed you can execute a set of scripts to control your car via arrow keys.

Raspberry Pi based ASTROGUN

This project is a mixture of gaming and electronics. The game is really basic – the player stands and needs to shoot Asteroids that are advancing towards him from any course, before they hit him. There is a mini radar on the screen which displays the location of Asteroids around the player. However, above all the most interesting thing about the project is a HUD which is a display that shows an image overlay on the background.  The gun works on a Raspberry PI along with an IMU card which provides an orientation. Using this info, the PI is able to project out the various elements.

The graphics of the game is handled out by a dedicated GPU. The graphics are written using the Pi3D library while the game logic is in python. The display comprises of a beam splitter (along with LCD) which is a special glass having both Trans missive and a reflective surface which is the reason you are able to see the image behind the glass. The project might require some mechanical skills to fit the components nicely. Overall a very innovative and a must try out application using the PI which will definitely amaze your peers.

Raspberry Pi GPIO benchmark update

Couple years ago Joonas from Code and Life have made pretty extensive Raspberry Pi GPIO speed benchmark. But things have changed over two years. Specifically speaking hardware of first generation Raspberry Pi remained same, but firmware and software libraries overcome series of upgrades. It became interesting how GPIO speed have changed since last check.

raspberry_pi_benchmarking

He tested several libraries and languages. To test GPIO performance a simple pin toggle endless loop were run. Results were quite different comparing to tests done couple years ago. Lets see few of them. First of all he tested Shell based scripts. This method gave 2.9kHz square wave. When using WiringPi library toggling speed dropped down to 40Hz. So it seems that shell scripting is suitable for slow signaling. Python with Rpi.GPIO showed pretty good improvement. From earlier 0.3.0 version 44kHz in version 0.5.10 it jumped to 70kHz. This is great speed for most interfacing tasks. Also python is versatile scripting language to use. Python with Wiring Pi didn’t perform as good – 28kHz, but still pretty useable. Best performance is visible when using C native library – 22MHz. BCM2835 based C library reaches 5.4MHz which didn’t change much. C with Wiring Pi generated 4.1MHz square wave. Other more exotic methods like Ruby and Perl results are very similar to Python. So there are few improvements and few speed loses. But in average it didn’t change much. This comparison of methods give pretty good clue what to expect when using one or another method. Use C when you need fast signaling, but for control and driving applications Python and even shell works fine. Another important thing to remember, that these benchmarks are performed on a blank Raspberry Pi which doesn’t perform other intense tasks. In this case you should expect different results. Always be sure to test you applications in real conditions before use.