
Owen Little
0
3316
53
Twitter er verdens største depot af korte beskeder fra mennesker, der ikke har noget at sige - og nu kan du også bidrage til det episke projekt med en automatiseret Twitter-bot, drevet af din Raspberry Pi. Selvfølgelig tuller jeg - nogle mennesker tweede faktisk interessante ting Sådan bruges Twitter til at søge efter mentorer i dit interesseområde Sådan bruges Twitter til at søge efter mentorer i dit interesseområde I den virkelige verden er en mentor en klog lærer, der støtter og guider nogen og hjælper dem med at maksimere deres potentiale. I onlineverdenen ville du være meget heldig at finde nogen der vil ... Jeg er dog ikke en af dem - jeg bruger minen til skamløs produktfremme i bytte for gratis ting, konkurrenceindgange og automatisk udsendelse af nye episoder af vores helt egen Technophilia Podcast. Uanset hvad - mine tilhængere elsker mig!
@ w0lfiesmith Jeg hader din Twitter-konto. Så meget.
- Justin Pot (@jhpot) 21. august 2013
Nu vil jeg tilføje nytten af min personlige Twitter-strøm ved at have en Raspberry Pi automatisk tweet den aktuelle CPU-temperatur hver time og et webcam-billede!
Kom godt i gang
Dette projekt bruger Python; et simpelt programmeringssprog ideelt til DIY-projekter. Vi begynder med at installere Twython på Pi - et Python-modul til grænseflade med Twitter; oprette et Twitter “Ansøgning” at få en API-nøgle; derefter gå videre til at gøre Pi-tweet-ting på vores vegne. Det bliver så sjovt!
Jeg gør dette på Raspian - men det skal i teorien fungere på ethvert Linux-baseret operativsystem, du har på Pi 11 Raspberry Pi-operativsystemer, du kan prøve 11 Raspberry Pi-operativsystemer, du kan prøve Uanset hvilket Raspberry Pi-projekt der er system til det. Vi hjælper dig med at finde det bedste Raspberry Pi OS til dine behov. . Hvis du ikke allerede har gjort det, skal du sørge for at konfigurere SSH, så vi eksternt kan logge ind og udføre konsolkommandoer.
Installation af Twython
Det er en god ide at køre opdateringer først. Kopier og indsæt følgende kommandoer ad gangen - de fleste kræver bekræftelse.
sudo apt-get-opdatering sudo apt-get-opgradering sudo apt-get install python-setuptools sudo easy_install pip sudo pip installere twython
Registrering af en Twitter-app
For at bruge Twitter API - det vil sige REST-interface, som vi vil bruge til at sende nye tweets og generelt interagere med Twitter uden for Twitter-webstedet - bliver vi nødt til at registrere en ny app. Gør det fra dette link - du behøver ikke angive en URL til tilbagekald og bare oprette et websted, hvis du vil.
Du vil se noget der ligner dette, når du er færdig - disse taster er unikke for dig.
Som standard er appen indstillet til skrivebeskyttet, så vi kan ikke udgive tweets uden at ændre det til Læs og skriv. Gå til fanen Indstillinger, og skift Ansøgningstype.
Når du er gemt, skal du gå tilbage til detaljer fanen og klik på knappen nederst til oprette et OAuth-adgangstoken - dette giver din ansøgning adgang til din egen Twitter-konto. Opdater, og lad siden være åben for senere - vi bliver nødt til at kopiere indsætte nogle af disse nøgler på et minut.
Opret dit Python-projekt
Begynd med at oprette en ny mappe, der huser dit Tweet-projekt, og opret derefter en ny fil.
mkdir SillyTweeter cd SillyTweeter sudo nano SillyTweeter.py
Du kan selvfølgelig kalde det, hvad du vil.
I den teksteditor, der vises, skal du kopiere og indsætte følgende ved at udskifte forbrugernøglen med den relevante nøgle fra Twitter-applikationssiden, vi har åbnet tidligere. Hver nøgle er omgivet af enkelte citater, så sørg for ikke at gå glip af dem. Noter det ACCESS_KEY kaldes Adgangstoken på Twitter-appsiden.
#! / usr / bin / env pythonimportsystemer fra twython import Twython CONSUMER_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])
Tryk på Ctrl-X, og tryk på Y for at afslutte og gemme filen. Gør det eksekverbart med følgende kommando (erstatte dit Python-filnavn, hvis du valgte noget andet)
sudo chmod + x SillyTweeter.py
Du skal nu kunne teste din evne til at sende tweets sådan:
python SillyTweeter.py 'Hej alle sammen, dette er min Raspberry Pi tweeter dig mere vrøvl'
Tweet din CPU-temp
Nu hvor du kan lægge en hvilken som helst slags vrøvl du ønsker, lad os justere appen til at gribe den aktuelle CPU-temperatur, fordi jeg bliver forbandet, hvis verden ikke behøver at vide det hver time.
Start med at tilføje en ny import til os-bibliotek:
import os
Tilføj derefter følgende linjer og erstatt den forrige api.update_status fra eksemplet ovenfor.
cmd = '/ opt / vc / bin / vcgencmd measure_temp' line = os.popen (cmd) .readline (). strip () temp = line.split ('=') [1] .split ("'") [ 0] api.update_status (status = 'Min nuværende CPU-temperatur er' + temp + 'C')
Jeg vil ikke forklare denne kode for meget, fordi den ikke rigtig betyder noget - den kører en kommando, der griber temperaturen og derefter opdeler output for at udpakke antallet og tweets med en brugerdefineret besked. Du kan finde den komplette eksempelkode her.
Tweeting af webcam-billeder
Lad os nu lave noget virkelig nyttigt; vi tweet webcam-billeder. Heldigvis understøtter Twython API-funktionen update_status_with_media, hvilket gør tingene temmelig enkle.
Sæt et USB-webcam i din enhed, og kontroller, om det er blevet genkendt med kommandoen:
ls / dev / video *
hvis du ser Video0, du har held. Jeg brugte en Playstation 3 PSEye-cam, og det fungerede helt fint uden yderligere benarbejde.
Vi vil også bruge PyGame biblioteker til at tage et billede; tilføj følgende linjer lige efter de eksisterende importangivelser:
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 (billede, 'webcam.jpg')
Kort sagt, du har initialiseret webcam med en bestemt opløsning (det kan være nødvendigt at justere, det er en rigtig gammel cam), klikkede et billede og gemte det som en jpg. Vi vil bare overskrive det samme webcam.jpg hver gang appen køres.
Endelig skal du justere update_status-linjen for at læse:
photo = open ('webcam.jpg', 'rb') api.update_status_with_media (media = photo, status = "Min RPi twitrer billeder nu =>")
Selvfølgelig kan du ændre statusteksten til din aktuelle CPU-temperatur igen, hvis du vil. Den komplette kode til dette eksempel er her.
Kan du gentage det?
En Twitter-bot er kun nyttig, hvis den kører flere gange, automatisk; du ønsker ikke at sidde der og køre kommandoen hver time. For at opnå dette, lad os bruge Pi's CRON-planlægningsfunktion (Hvad er et CRON-job? Automatiser din Wordpress-sikkerhedskopi med Simple Shell-scripting og CRON Automatiser din Wordpress-sikkerhedskopi med Simple Shell-scripting og CRON Sidste gang vi talte om Wordpress-sikkerhedskopieringer, viste jeg dig, hvordan utroligt nemt var det at sikkerhedskopiere hele din database og filer, dog med SSH med kun få kommandoer. Denne gang skal jeg vise…)
sudo crontab -e
Indsæt i denne linje for at køre hver time.
* / 60 * * * * python /home/pi/SillyTweeter/SillyTweeter.py
Skift det til * * * * * hvis du vil have, at det skal køre hvert minut, og være parat til at miste følgere hurtigere end en Twitter-konto, der mister følgere hurtigt.
Det er i dag. Jeg er glad for at have bidraget med mere silliness til det store væld af unyttige bytes på Internettet, og det håber jeg også, du gør! Vis din taknemmelighed for denne tutorial af tweeting det, og lad os vide, hvad din egen Twitter-bot vil tweet om i kommentarerne.
Billedkredit: adafruit / flickr