electronut Programming & Embedded Systems - by Mahesh Venkitachalam

Talking to a Raspberry Pi from your Phone using Bottle (Python)

Here's a short post on communicating with the raspberry from your phone's browser.

Our goal is to turn an LED connected to the Pi on and off, by accessing a web page on the phone's browser. Both the phone and the Pi are on the local WiFi network.

Here's how we do it:

Start a web server on the Pi. For this, we will use the simple and elegant Bottle web framework, which consists of a single source file. Accessing the LED control web page displays a button, and clicking on it uses jQuery AJAX to send a request to the web server, which in turn changes the GPIO pin state to turn the LED on.

Here's the code:

To start it, first run the server on your Pi. (You can ssh into your pi for this.)

pi@raspberrypi ~/code/python/bottle $ sudo python ledctrl.py

Then, access the web page from your phone's browser. In my case, the address is:

http://192.168.4.31:8080/led

You can control the LED from anywhere as long as you are in the local network. This can also work, from outside provided you do port forwarding on your router. I plan to explore this myself.

This is the starting point for me for a Raspberry Pi based home monitor robot. Watch this site for updates on this topic!

If you liked this article, please consider supporting my efforts by purchasing my book.

Python Playground, published by No Starch Press, USA, is a collection of imaginative programming projects that will inspire you to use Python to make art and music, build simulations of real-world phenomena, and interact with hardware like the Arduino and Raspberry Pi. Do check it out!