Annonse
Twitter er verdens største depot av korte meldinger fra mennesker med ingenting å 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 tweeter faktisk interessante ting Slik bruker du Twitter for å søke etter mentorer i ditt interesseområdeI den virkelige verden er en mentor en klok lærer som støtter og veileder noen, og hjelper dem å maksimere potensialet. I online verden ville du være veldig heldig som finner noen som vil ... Les mer . Jeg er imidlertid ikke en av dem - jeg bruker min for skamløs produktreklame i bytte mot gratis ting, konkurranseoppføringer og automatisk utsendelse av nye episoder av vår helt 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 nytte for min personlige Twitter-strøm ved å få en Raspberry Pi til å twitre den aktuelle CPU-temperaturen automatisk 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 - en Python-modul for grensesnitt med Twitter; å sette opp en Twitter-applikasjon for å få en API-nøkkel; deretter gå på lage 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 fungere på alle Linux-basert operativsystem du har på Pi 11 operativsystemer som kjører på Raspberry PiUansett Raspberry Pi-prosjekt, det er et operativsystem for det. Vi hjelper deg med å finne det beste Raspberry Pi OS for dine behov. Les mer . Hvis du ikke allerede har gjort det, må du konfigurere SSH slik at vi eksternt kan logge på og utføre konsollkommandoer.
Installere Twython
Det er lurt å kjøre oppdateringer først. Kopier og lim inn følgende kommandoer én om gangen - de fleste krever bekreftelse.
sudo apt-get oppdatering. sudo apt-get oppgradering. sudo apt-get install python-setuptools. sudo easy_install pip. sudo pip installere twython.
Registrerer du en Twitter-app
For å bruke Twitter API - det vil si REST-grensesnittet som vi bruker for å legge ut nye tweets og generelt samhandle med Twitter utenfor Twitter-nettstedet - må vi registrere en ny app. Gjør det fra denne lenken - du trenger ikke spesifisere en tilbakeringingsadresse, og bare opprette et nettsted hvis du vil.
Du vil se noe som ligner dette når du er ferdig - disse tastene er unike for deg.
Som standard er appen satt til skrivebeskyttet, så vi kan ikke publisere tweets uten å endre den til Lese og skrive. Gå til Innstillinger-fanen og endre Søknadstype.
Når du er lagret, kan du gå tilbake til detaljer fanen og klikk på knappen nederst til opprette et OAuth-tilgangstoken - dette gir søknaden din tilgang til din egen Twitter-konto. Oppdater, og la siden være åpen for senere - vi trenger å kopiere lime inn noen av disse tastene på et minutt.
Lag ditt Python-prosjekt
Begynn med å lage en ny katalog for å huse Tweet-prosjektet ditt, og lag deretter en ny fil.
mkdir SillyTweeter. cd SillyTweeter. sudo nano SillyTweeter.py.
Du kan selvfølgelig kalle det hva du vil.
I tekstredigeringsprogrammet som vises, kopier og lim inn følgende, og erstatt forbrukernøkkelen med den relevante nøkkelen fra Twitter-applikasjonssiden vi har åpnet tidligere. Hver nøkkel er omgitt av enkle sitater, så pass på at du ikke går glipp av disse. Noter det TILGANGSNØKKEL blir referert til som Tilgangstoken på Twitter-appsiden.
#! / usr / bin / env python. importer sys. fra twython import Twython. FORBRUKER_KEY = '*************** DINE DATA *****************' CONSUMER_SECRET = '*************** DINE DATA *****************' ACCESS_KEY = '*************** DINE DATA *****************' ACCESS_SECRET = '*************** DINE DATA *****************' api = Twython (CONSUMER_KEY, CONSUMER_SECRET, ACCESS_KEY, ACCESS_SECRET) api.update_status (status = sys.argv [1])
Trykk på Ctrl-X, og trykk Y for å avslutte og lagre filen. Gjør det kjørbart med følgende kommando (erstatte Python-filnavnet hvis du valgte noe annet)
sudo chmod + x SillyTweeter.py.
Du skal nå kunne teste din evne til å legge ut tweets slik:
python SillyTweeter.py 'Hei alle sammen, dette er Raspberry Pi som tweeter dere mer tull'
Tweeting CPU-temp
Nå som du kan legge ut hvilken som helst slags tull du ønsker, la oss justere appen for å få tak i den nåværende CPU-temperaturen, fordi jeg blir forbannet hvis verden ikke trenger å vite det hver time.
Start med å legge til en annen import for os-bibliotek:
import os
Legg deretter til følgende linjer og erstatt forrige api.update_status fra eksemplet over.
cmd = '/ opt / vc / bin / vcgencmd measure_temp' linje = os.åpne (cmd). trådlinje (). stripe () 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 den ikke betyr noe - den kjører en kommando som griper temperaturen, og deretter dele opp utdataene for å trekke ut tallet, og tweets med en tilpasset beskjed. Du kan finne det komplette eksempel kode her.
Tweeting webkamera bilder
La oss nå gjøre noe veldig nyttig; vi tweeter webcam-bilder. Heldigvis støtter Twython API-funksjonen update_status_with_media, som gjør ting ganske enkelt.
Koble et USB-webkamera til enheten din og sjekk om den er gjenkjent med kommandoen:
ls / dev / video *
hvis du ser Video0, har du flaks. Jeg brukte en Playstation 3 PSEye-kam, og den fungerte helt fint uten noen ekstra benarbeid.
Vi kommer også til å bruke pygame biblioteker for å ta et bilde; legg til følgende linjer rett etter de eksisterende importuttalelsene:
importer pygame. import pygame.camera. fra pygame.locals import * pygame.init () pygame.camera.init () cam = pygame.camera. Kamera ( "/ dev / Video0", (640 480)) cam.start () image = cam.get_image () pygame.image.save (bilde, 'webcam.jpg')
Kort sagt, du har initialisert webkameraet i en bestemt oppløsning (det kan hende du må justere dette er at det er en virkelig gammel kamera), klikket et bilde og lagret det som en jpg. Vi skal bare overskrive den samme webkamera.jpg hver gang appen kjøres.
Til slutt, justere update_status-linjen slik at den leser:
photo = open ('webcam.jpg', 'rb') api.update_status_with_media (media = photo, status = 'Min RPi twitrer bilder nå =>')
Selvfølgelig kan du endre statusteksten til din nåværende CPU-temperatur igjen, hvis du vil. Den komplette koden for dette eksempel er her.
Kan du gjenta det?
En Twitter-bot er bare nyttig hvis den kjører flere ganger, automatisk; du vil ikke sitte der med kommandoen hver time. For å oppnå dette, la oss bruke Pi's CRON-planleggingsfunksjon (Hva er en CRON-jobb? Automatiser Wordpress-sikkerhetskopien din med Simple Shell Scripting og CRONForrige gang vi snakket om Wordpress-sikkerhetskopieringer, viste jeg deg hvor utrolig enkelt det var å ta sikkerhetskopi av hele databasen og filene på SSH med bare noen få kommandoer. Denne gangen skal jeg vise ... Les mer )
sudo crontab -e
Lim inn denne linjen for å kjøre hver time.
* / 60 * * * * python /home/pi/SillyTweeter/SillyTweeter.py
Endre det til * * * * * hvis du vil at den skal løpe hvert minutt, og være forberedt på å miste følgere raskere enn en Twitter-konto som mister følgere raskt.
Det er for i dag. Jeg er glad for å ha bidratt med mer silliness til det enorme vell av ubrukelige byte på Internett, og jeg håper du gjør det også! Vis din takknemlighet for denne opplæringen av tweeting det, og la oss få vite hva din egen Twitter-bot kommer til å tweet om i kommentarfeltene.
Bildekreditt: Adafruit / flickr
James har en BSc i kunstig intelligens, og er CompTIA A + og Network + sertifisert. Han er hovedutvikler av MakeUseOf, og bruker fritiden sin på å spille VR paintball og brettspill. Han har bygd pc-er siden han var liten.