Raspberry Pi
Creative Technologists
Sheffield
July 2015
Self-directed workshop
● Use the Terminal (command line interface)
● Install software (apt and pip)
● Use the web browser (that's where the good stuff is)
● Use GitHub (download projects, upload your own)
● Use APIs (Application Programming Interfaces)
● Ask questions!
● Take notes!
● Expand your understanding!
● Ask for help!
Connect the camera
Boot the Pi and log in
Test the camera
● raspistill -k
● If it doesn't work, is your camera connected correctly?
● Is your camera enabled?
– sudo raspi-config
– Enable camera
● Press Ctrl + C to exit the preview
Browse my project on GitHub
● Open the web browser
● Go to https://github.com/bennuttall/bett-bot
● Read the instructions
● Do the instructions:
– Install pip
– Install flask
– Download the repo
– Install twython
Run the app
● Enter the bett-bott folder
– cd bett-bott
● Run the app
– python app.py
● Open 127.0.0.1:5000 in the web browser
● Click Capture to take a photo
● See the photo in the gallery
● Click the photo
● Take more photos
●
Find your IP address (e.g. 192.168.1.8)
– hostname -I
● Browse to http://192.168.1.8:5000 on your phone/tablet/laptop
Connect to Twitter
● Log in to www.twitter.com in the web browser (or sign up)
● Go to apps.twitter.com
– Create new app
– Set permissions to read and write
– Generate access tokens
(see Tweeting Babbage resource on raspberrypi.org for
detailed instructions)
– raspberrypi.org/learning/tweeting-babbage/worksheet/
Add your API keys
● Open auth.py with Python/IDLE
● Add your keys
– consumer_key
– consumer_secret
– access_token
– access_token_secret
● Run the app again
– Open Terminal
– cd bett-bot-master
– python app.py
● Now you can tweet the pictures
Look at the code
● Open app.py with Python/IDLE
● What's it doing?
– Imports
– Try/except
– Connect to Twitter
– Define routes
● /
● /capture/
● /view/
● /tweet/
– Routes refer to HTML templates
– Run Flask app
Hack it
● Change the appearance
● Add a feature
● Think about more to do later – ideas?
● Is a web app suitable?
● What's possible? What's not?
● Think about hardware installation
● Think about touch screens

Picamera, Flask and the Twitter API Raspberry Pi workshop

  • 1.
  • 2.
    Self-directed workshop ● Usethe Terminal (command line interface) ● Install software (apt and pip) ● Use the web browser (that's where the good stuff is) ● Use GitHub (download projects, upload your own) ● Use APIs (Application Programming Interfaces) ● Ask questions! ● Take notes! ● Expand your understanding! ● Ask for help!
  • 3.
  • 4.
    Boot the Piand log in
  • 5.
    Test the camera ●raspistill -k ● If it doesn't work, is your camera connected correctly? ● Is your camera enabled? – sudo raspi-config – Enable camera ● Press Ctrl + C to exit the preview
  • 6.
    Browse my projecton GitHub ● Open the web browser ● Go to https://github.com/bennuttall/bett-bot ● Read the instructions ● Do the instructions: – Install pip – Install flask – Download the repo – Install twython
  • 7.
    Run the app ●Enter the bett-bott folder – cd bett-bott ● Run the app – python app.py ● Open 127.0.0.1:5000 in the web browser ● Click Capture to take a photo ● See the photo in the gallery ● Click the photo ● Take more photos ● Find your IP address (e.g. 192.168.1.8) – hostname -I ● Browse to http://192.168.1.8:5000 on your phone/tablet/laptop
  • 8.
    Connect to Twitter ●Log in to www.twitter.com in the web browser (or sign up) ● Go to apps.twitter.com – Create new app – Set permissions to read and write – Generate access tokens (see Tweeting Babbage resource on raspberrypi.org for detailed instructions) – raspberrypi.org/learning/tweeting-babbage/worksheet/
  • 9.
    Add your APIkeys ● Open auth.py with Python/IDLE ● Add your keys – consumer_key – consumer_secret – access_token – access_token_secret ● Run the app again – Open Terminal – cd bett-bot-master – python app.py ● Now you can tweet the pictures
  • 10.
    Look at thecode ● Open app.py with Python/IDLE ● What's it doing? – Imports – Try/except – Connect to Twitter – Define routes ● / ● /capture/ ● /view/ ● /tweet/ – Routes refer to HTML templates – Run Flask app
  • 11.
    Hack it ● Changethe appearance ● Add a feature ● Think about more to do later – ideas? ● Is a web app suitable? ● What's possible? What's not? ● Think about hardware installation ● Think about touch screens