Install the [poster] module by running the command-line:
sudo pip install poster
UploadImage.py (RPI)
#!/usr/bin/env python import urllib, urllib2, os, os.path, sys from poster.encode import multipart_encode from poster.streaminghttp import register_openers from time import sleep register_openers() query = { 'id' : 1 } url = "http://domain.com/path/save_image.php?"+urllib.urlencode(query) filename = '/dev/shm/mjpeg/cam.jpg' #print 'Saved: '+filename; while True: try: if (os.path.isfile(filename)) : values = {'image':open(filename)} data, headers = multipart_encode(values) headers['User-Agent'] = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)' headers['filename'] = filename req = urllib2.Request(url, data, headers) req.unverifiable = True content = urllib2.urlopen(req).read() except: print 'Upload failed.'; sleep(1)
Edit the crontab.
sudo crontab -e
Add the following to the end of the crontab.
0 * * * * /sbin/reboot @reboot python /home/pi/Documents/GetMacAdx.py & @reboot python /home/pi/Documents/UploadImage.py &
Reboot the Raspberry PI and the security camera is ready to go!
save_image.php (Server)
<?php if (!isset($_GET['id'])) { echo ('Invalid request!'); exit(0); } $id = intval($_GET['id']); $image = $_FILES["image"]; if ($image == null) { echo ("Missing image!"); exit(0); } else { echo "Saved image!"; $filename = "image" . $id . ".jpg"; $tmp_name = $_FILES["image"]["tmp_name"]; move_uploaded_file($tmp_name, $filename); } ?>
[Setup wifi on the command-line]
Turn off the camera LED by adding the following to the end of the file.
/boot/config.txt
disable_camera_led=1