Introduction: Open Sesame

About: I'm a Univern! I'm following a one year intense program to learn, meet amazing people & gain parctical experience on a global scale.

The user flashes a QR Code (or accesses a website) to ring a door bell in a remote location.

++++++

Operation Principle:

When the user accesses the website, an ajax call is performed which changes the contents of a .txt file to "on". The Raspberry Pi checks this file every second. If it detects a change, it plays the sound and changes the contents of the .txt file to "off". The web interface then updates to tell the user that the bell has rung.

Created @ ICAH

Step 1: Get Your Material.

You will need a:

- Raspberry Pi

- wifi dongle (e.g. Edimax EW-7811Un)

- speakers

- a sheet of mdf (4mm)

- A web hosting service (e.g. GoDaddy, Hostgator, etc)

- A laser cutter

Step 2: Web File Upload

Create a directory on your web server & add the files in the folder "web.zip". You can use an FTP client (e.g. Filezilla).

When visiting http://yourwebsite/directory you should see the interface.

++++++

The folder web.zip contains 6 files:

- index.html : the main entry point. contains the DOM structure

- style.css: the css

- status.txt: a text file storing the values "on" or "off" depending on whether the sound has been played

- ajax.php: php scripts to check the status.txt file

- script.js: js scripts to perform ajax calls

- doorbell.svg: icon to display on the screen

Attachments

Step 3: Configure the Wifi on the Raspberry Pi

To configure the wifi:

1. Boot the Raspberry Pi and run: sudonano etc/network/interfaces

Edit the file so that it looks like:

etc/network/interfaces 
auto lo
iface lo inet loopback iface eth0 inet dhcp
allow-hotplug wlan0
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf 
iface default inet dhcp

2. Run the command: sudo nano etc/wpa_suppilicant/wpa_suppilicant.conf

- If you are on a WPA-EAP network, edit the file so that it looks like:

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev<br>update_config=1</p><p>network {ssid=""     
key_mgmt=WPA-EAP     
password=""     
identity="" }

- If you are on a WPA-PSK network, edit the file so that it looks like:

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev<br>update_config=1</p><p>network {ssid=""      
key_mgmt=WPA-PSK
psk=""}

Step 4: Add the Files to the Raspberry Pi

You can clone all files to the raspberry pi from my github by using:

git clone https://github.com/gcool-info/connected-doorbell.git

(if you haven't installed git on your Pi, you can run: sudo apt-get install git)


Otherwise, just copy the files main.py, launcher.sh, audio.mp3 in some directory on your Pi.

Make sure to change the lines:

response = http_request(http://yourURL/status.txt")

and

http_request("http://yourURM/ajax.php?cmd=turn_off")

so that they point to your URL.


Attachments

Step 5: Run Program on Pi Boot

To run the program immediately when the Pi boots up, we use a crontab. A crontab is a background (daemon) process that lets you execute scripts at specific times. It's essential to Python and Raspberry Pi. To do this, open the file launcher.sh

nano connected-doorbell/pi/launcher.sh

Make sure that the line

cd home/pi/connected-doorbell/pi

is pointing to the directory containing your main.py program.

Then, follow this excellent tutorial:

https://www.instructables.com/id/Raspberry-Pi-Launc...

(starting from step 2)

Step 6: Create the Poster

Generate a QR code for your url by visiting this website: http://www.qrstuff.com/

Open the poster.svg file & edit it with your favorite vector editing software (e.g. illustrator, inkscape, etc)

Step 7: Laser Cut and Assemble!

Laser cut the house & the case for the raspberry pi.

Done!