Hvordan bygge en Raspberry Pi Twitter Bot

Hvordan bygge en Raspberry Pi Twitter Bot / DIY

Twitter er verdens største lagringssted for korte meldinger fra personer som ikke har noe å si - og nå kan du også bidra til det episke prosjektet med en automatisert Twitter-bot, drevet av Raspberry Pi. Jeg tuller, selvfølgelig - noen mennesker faktisk tweet interessante ting. Slik bruker du Twitter for å søke etter mentorer i ditt område. Slik bruker du Twitter for å søke etter mentorer i ditt område av interesse. I den virkelige verden er en mentor en klok lærer som støtter og leder noen, og hjelper dem med å maksimere sitt potensial. I den elektroniske verden, ville du være veldig heldig å finne noen som vil ... Les mer. Jeg er imidlertid ikke en av dem - jeg bruker min min for skamløs produktfremme i bytte for gratis ting, konkurranseoppføringer og automatisk innlegging av nye episoder av vår egen Technophilia Podcast. Uansett - mine følgere elsker meg!

@ w0lfiesmith Jeg hater Twitter-kontoen din. Så mye.

- Justin Pot (@jhpot) 21. august 2013

Nå skal jeg legge til nytten av min personlige Twitter-strøm ved å ha en Raspberry Pi automatisk tweet sin nåværende CPU-temperatur hver time, og et webkamera bilde!

Starter

Dette prosjektet bruker Python; et enkelt programmeringsspråk som er ideelt for DIY-prosjekter. Vi begynner med å installere Twython på Pi-a Python-modulen for grensesnitt med Twitter; sette opp en Twitter “applikasjon” å få en API-nøkkel; deretter gå inn gjør Pi tweet ting på våre vegne. Det kommer til å bli så gøy!

Jeg gjør dette på Raspian - men det skal i teorien jobbe på alle Linux-baserte operativsystemer du har på Pi 11 operativsystemene du kan kjøre på Raspberry Pi 11 Operativsystemer du kan kjøre på Raspberry Pi Raspberry Pi-maskinvaren er bare en side av mynten. Her er noen forskjellige Raspberry Pi operativsystemer du kan installere. Les mer . Hvis du ikke allerede har det, må du sørge for at du konfigurerer SSH, slik at vi kan logge på og utføre konsollkommandoer.

Installerer Twython

Det er en god ide å kjøre oppdateringer først. Kopier og lim inn følgende kommandoer en om gangen - de fleste krever bekreftelse.

sudo apt-get oppdatering sudo apt-få oppgradering sudo apt-get install python-setuptools sudo easy_install pip sudo pip installere twython 

Registrerer en Twitter-app

For å kunne bruke Twitter API - det vil si REST-grensesnittet som vi skal bruke til å legge inn nye Tweets og generelt samhandle med Twitter utenfor Twitter-nettstedet - vi må registrere en ny app. Gjør det fra denne linken - du trenger ikke spesifisere en tilbakekallingsadresse, og bare lage et nettsted hvis du vil.

Du ser noe som ligner på dette når du er ferdig - disse nøklene er unike for deg.

Som standard er appen satt til skrivebeskyttet, så vi kan ikke publisere tweets uten å endre det til Lese og skrive. Gå til fanen Innstillinger og endre Søknadstype.

Når du er lagret, gå tilbake til detaljer kategorien og klikk på knappen nederst til opprett en OAuth-tilgangstoken - Dette gir søknaden din tilgang til din egen Twitter-konto. Oppdater, og la siden være åpen for senere - vi må kopiere lim inn noen av disse nøklene om et minutt.

Lag ditt Python-prosjekt

Begynn med å lage en ny katalog for å huse ditt Tweet-prosjekt, og opprett en ny fil.

mkdir SillyTweeter cd SillyTweeter sudo nano SillyTweeter.py 

Du kan kalle det uansett, selvsagt.

I tekstredigeringsprogrammet som vises, kopier og lim inn følgende, og erstatter forbruksnøkkelen med den aktuelle nøkkelen fra Twitter-applikasjonssiden, som vi igjen åpnet tidligere. Hver nøkkel er omgitt av enkelt anførselstegn, så vær sikker på at du ikke savner dem. Noter det TILGANGSNØKKEL er referert til som Tilgangstoken på Twitter-siden.

#! / usr / bin / env python import sys fra twython import Twython CONSUMER_KEY = '*************** DIN DATA *************** ** 'CONSUMER_SECRET =' *************** DIN DATA ***************** 'ACCESS_KEY =' ****** ********* DIN DATA ***************** 'ACCESS_SECRET =' *************** DIN DATA * **************** 'api = Twython (CONSUMER_KEY, CONSUMER_SECRET, ACCESS_KEY, ACCESS_SECRET) api.update_status (status = sys.argv [1]) 

Trykk Ctrl-X, og trykk Y for å avslutte og lagre filen. Gjør det kjørbart med følgende kommando (erstatter Python filnavn hvis du velger noe annet)

sudo chmod + x SillyTweeter.py 

Du bør nå kunne teste din evne til å legge inn tweets som dette:

python SillyTweeter.py 'Hei Alle, dette er min Raspberry Pi tweeting deg mer nonsens'

Tweeting CPU Temp

Nå som du kan legge inn noe slags nonsens du vil, la oss justere appen for å få tak i den nåværende CPU-temperaturen, fordi jeg vil bli forbannet hvis verden ikke trenger å vite at hver time.

Start med å legge til en annen import for os-biblioteket:

importere oss

Deretter legger du til følgende linjer, erstatter forrige api.update_status fra eksemplet ovenfor.

cmd = '/ opt / vc / bin / vcgencmd measure_temp' linje = os.popen (cmd) .readline (). strip () temp = line.split ('=') [1] .split ("'") [ 0] api.update_status (status = 'Min nåværende CPU-temperatur er' + temp + 'C') 

Jeg vil ikke forklare denne koden for mye fordi det egentlig ikke betyr noe - det kjører en kommando som tar tak i temperaturen, og deler opp resultatet for å trekke ut nummeret, og tweets det med en egendefinert melding. Du finner den komplette eksemplskoden her.

Tweeting Webcam bilder

La oss nå gjøre noe veldig nyttig; vi skal tweet webkamera pics. Heldigvis støtter Twython API-funksjonen update_status_with_media, noe som gjør tingene ganske enkle.

Koble et USB-webcam til enheten din og kontroller om det er blitt gjenkjent med kommandoen:

ls / dev / video *

hvis du ser Video0, du har lykke til. Jeg brukte en Playstation 3 PSEye-kamera, og det fungerte bra uten noen ekstra legwork.

Vi skal også bruke pygame bibliotek for å ta et bilde; legg til følgende linjer like etter de eksisterende importerklæringene:

import pygame import pygame.camera fra pygame.locals import * pygame.init () pygame.camera.init () cam = pygame.camera.Camera ("/ dev / video0", (640,480)) cam.start () image = cam.get_image () pygame.image.save (bilde, 'webcam.jpg') 

Kort sagt, du har initialisert webkameraet ved en bestemt oppløsning (du må kanskje justere dette er det er en veldig gammel cam), snappet et bilde og lagret det som en jpg. Vi skal bare overskrive det samme webcam.jpg hver gang appen kjøres.

Endelig juster oppdateringsstatuslinjen for å lese:

photo = open ('webcam.jpg', 'rb') api.update_status_with_media (media = foto, status = "Min RPi er tweeting bilder nå =>") 

Selvfølgelig kan du endre statusteksten til din nåværende CPU-temperatur igjen, hvis du vil. Den komplette koden for dette eksemplet er her.

Kan du gjenta det?

En Twitter-bot er bare nyttig hvis den kjører flere ganger, automatisk; du vil ikke bli sittende der kjører kommandoen hver time. For å oppnå dette, la oss bruke Pi's CRON-planleggingsfunksjonen (Hva er en CRON-jobb? Automatiser din Wordpress-sikkerhetskopiering med enkel Shell Scripting & CRON Automatiser din Wordpress-sikkerhetskopiering med enkel Shell Scripting & CRON Sist gang vi snakket om Wordpress-sikkerhetskopier, viste jeg deg hvordan utrolig enkelt det var å sikkerhetskopiere hele databasen og filene, selv om SSH med bare noen få kommandoer. Denne gangen skal jeg vise ... Les mer)

sudo crontab -e

Lim inn i denne linjen, for å løpe hver time.

* / 60 * * * * python /home/pi/SillyTweeter/SillyTweeter.py

Endre det til * * * * * hvis du vil at den skal løpe hvert minutt, og vær forberedt på å miste tilhengere raskere enn en Twitter-konto som fortaper etterfølgere raskt.

Det er for i dag. Jeg er glad for å ha bidratt mer silliness til det enorme vell av ubrukelige bytes på Internett, og jeg håper du gjør det også! Vis din takknemlighet for denne opplæringen av tweeting det, og så gi oss beskjed om hva din egen Twitter bot kommer til å snakke om i kommentarene.

Bilde kreditt: adafruit / flickr

Utforsk mer om: Raspberry Pi, Twitter.