Hoe een Raspberry Pi te bouwen Twitter Bot
Twitter is 's werelds grootste opslagplaats van korte berichten van mensen met niets te zeggen - en nu kunt u ook een bijdrage leveren aan dat epische project met een geautomatiseerde Twitter-bot, mogelijk gemaakt door uw Raspberry Pi. Ik maak natuurlijk een grapje - sommige mensen twitteren zelfs interessante dingen. Twitter gebruiken om te zoeken naar mentoren in jouw interessegebied. Twitter gebruiken om te zoeken naar mentoren in jouw interessegebied. In de echte wereld is een mentor een wijs iemand. leerkracht die iemand ondersteunt en begeleidt en hen helpt hun potentieel te maximaliseren. In de online wereld zou je heel veel geluk hebben als je iemand zou vinden die ... Lees meer. Ik ben echter niet een van hen - ik gebruik mijn mijn voor schaamteloze productpromotie in ruil voor gratis spullen, prijsvragen en het automatisch plaatsen van nieuwe afleveringen van onze eigen Technophilia Podcast. Hoe dan ook, mijn volgers houden van me!
@ w0lfiesmith Ik haat je Twitter-account. Zo veel.
- Justin Pot (@jhpot) 21 augustus 2013
Nu ga ik het nut van mijn persoonlijke Twitter-stroom toevoegen door een Raspberry Pi automatisch elk uur zijn huidige CPU-temperatuur te laten tweeten, en een webcamfoto!
Ermee beginnen
Dit project maakt gebruik van Python; een eenvoudige programmeertaal die ideaal is voor doe-het-zelfprojecten. We beginnen met het installeren van Twython op de Pi - een Python-module voor interfacing met Twitter; een Twitter opzetten “toepassing” om een API-sleutel te krijgen; ga dan naar het maken van de Pi tweet dingen namens ons. Het gaat zo leuk worden!
Ik doe dit op Raspian - maar het zou in theorie moeten werken aan elk Linux-gebaseerd besturingssysteem dat je hebt op de Pi 11-besturingssystemen die je kunt gebruiken op Raspberry Pi 11-besturingssystemen die je kunt gebruiken op Raspberry Pi De hardware van de Raspberry Pi is slechts één kant van de medaille. Hier zijn enkele verschillende Raspberry Pi-besturingssystemen die u kunt installeren. Lees verder . Als je dat nog niet hebt gedaan, zorg dan dat je SSH instelt zodat we op afstand kunnen inloggen en console-opdrachten kunnen uitvoeren.
Twython installeren
Het is een goed idee om eerst updates uit te voeren. Kopieer en plak de volgende opdrachten één voor één - de meeste hebben een bevestiging nodig.
sudo apt-get update sudo apt-get upgrade sudo apt-get install python-setuptools sudo easy_install pip sudo pip installeren twython
Een Twitter-app registreren
Om de Twitter API te gebruiken - dat wil zeggen, de REST-interface die we zullen gebruiken om nieuwe Tweets te plaatsen en over het algemeen met Twitter interageren buiten de Twitter-website - moeten we een nieuwe app registreren. Doe dat via deze link - u hoeft geen callback-URL op te geven en een website te maken als u dat wilt.
U ziet iets dat hierop lijkt als u klaar bent - deze toetsen zijn uniek voor u.
De app is standaard ingesteld op alleen lezen, dus we kunnen geen tweets publiceren zonder dat te wijzigen Lezen en schrijven. Ga naar het tabblad Instellingen en wijzig het Applicatie type.
Eenmaal opgeslagen, gaat u terug naar de Details tab en klik op de knop onderaan om een OAuth-toegangstoken maken - dit geeft uw applicatie toegang tot uw eigen Twitter-account. Vernieuwen en de pagina open laten voor later - we zullen enkele van die toetsen in een minuut moeten plakken.
Creëer uw Python-project
Begin met het maken van een nieuwe map om je Tweet-project onder te brengen en maak vervolgens een nieuw bestand aan.
mkdir SillyTweeter cd SillyTweeter sudo nano SillyTweeter.py
Je kunt het natuurlijk altijd maar noemen wat je wilt.
In de teksteditor die wordt weergegeven, kopieert en plakt u het volgende, waarbij u de gebruikerssleutel vervangt door de relevante sleutel op de Twitter-toepassingspagina die eerder is geopend. Elke sleutel is omgeven door enkele aanhalingstekens, dus vergeet die niet te missen. Let daar op TOEGANGSSLEUTEL wordt aangeduid als Toegangstoken op de Twitter-app-pagina.
#! / usr / bin / env python import sys from twython import Twython CONSUMER_KEY = '*************** UW GEGEVENS *************** ** 'CONSUMER_SECRET =' *************** UW GEGEVENS ***************** 'ACCESS_KEY =' ****** ********* UW GEGEVENS ***************** 'ACCESS_SECRET =' *************** UW GEGEVENS * **************** 'api = Twython (CONSUMER_KEY, CONSUMER_SECRET, ACCESS_KEY, ACCESS_SECRET) api.update_status (status = sys.argv [1])
Druk op Ctrl-X en druk op Y om af te sluiten en het bestand op te slaan. Maak het uitvoerbaar met de volgende opdracht (vervang je Python-bestandsnaam als je iets anders hebt gekozen)
sudo chmod + x SillyTweeter.py
Je zou nu in staat moeten zijn om je vermogen om tweets te plaatsen te testen, zoals zo:
python SillyTweeter.py 'Hallo allemaal, dit is mijn Raspberry Pi die je meer onzin twittert'
Tweeten Uw CPU-temp
Nu dat je elke soort onzin kunt posten die je wilt, laten we de app aanpassen om de huidige CPU-temperatuur te halen, want ik zal verdoemd zijn als de wereld dat niet elk uur hoeft te weten.
Begin met het toevoegen van een andere import voor os-bibliotheek:
import os
Voeg vervolgens de volgende regels toe en vervang de vorige api.update_status uit het bovenstaande voorbeeld.
cmd = '/ opt / vc / bin / vcgencmd measure_temp' line = os.popen (cmd) .readline (). strip () temp = line.split ('=') [1] .split ("'") [ 0] api.update_status (status = 'Mijn huidige CPU-temperatuur is' + temp + 'C')
Ik zal deze code niet teveel uitleggen omdat het er niet echt toe doet - het voert een commando uit dat de temperatuur pakt, splitst de output op om het nummer te extraheren en tweets dat met een aangepast bericht. Je vindt de volledige voorbeeldcode hier.
Webcamfoto's tweeten
Laten we nu iets echt nuttig maken; we gaan webcamfoto's tweet. Gelukkig ondersteunt Twython de API-functie update_status_with_media, wat de dingen vrij eenvoudig maakt.
Sluit een USB-webcam aan op uw apparaat en controleer of deze is herkend met de opdracht:
ls / dev / video *
als je het ziet video0, je hebt geluk. Ik gebruikte een Playstation 3 PSEye-cam en het werkte prima zonder extra legwerk.
We gaan ook het pygame bibliotheken om een foto te maken; voeg de volgende regels toe net na de bestaande importinstructies:
import pygame import pygame.camera uit 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 (afbeelding, 'webcam.jpg')
Kortom, je hebt de webcam met een specifieke resolutie geïnitialiseerd (je moet mogelijk aanpassen dit is een heel oude camera), knipte een foto en bewaarde deze als een jpg. We gaan gewoon dezelfde webcam.jpg overschrijven telkens als de app wordt uitgevoerd.
Pas ten slotte de regel update_status aan om te lezen:
photo = open ('webcam.jpg', 'rb') api.update_status_with_media (media = foto, status = "Mijn RPi kan nu afbeeldingen tweeten =>")
Natuurlijk kunt u de statustekst weer naar uw huidige CPU-temperatuur wijzigen, als u dat wilt. De volledige code voor dit voorbeeld is hier.
Kun je dat herhalen?
Een Twitter-bot is alleen nuttig als deze meerdere keren wordt uitgevoerd, automatisch; je wilt daar niet elk uur zitten om het bevel te voeren. Om dit te bereiken, gebruiken we de Pi's CRON-planningsfunctie (Wat is een CRON-taak? Automatiseer uw Wordpress-reservekopie met eenvoudige Shell-scripts en CRON Automatiseer uw Wordpress-reservekopie met eenvoudige Shell-scripting & CRON De laatste keer dat we het hadden over back-ups van Wordpress, liet ik u zien hoe ongelooflijk eenvoudig was het om een back-up te maken van je hele database en bestanden via SSH met slechts een paar commando's. Deze keer zal ik laten zien ... Lees meer)
sudo crontab -e
Plak in deze regel om elk uur te lopen.
* / 60 * * * * python /home/pi/SillyTweeter/SillyTweeter.py
Verander dat in * * * * * als je wilt dat het elke minuut wordt uitgevoerd en wees erop voorbereid om volgers sneller te verliezen dan een Twitter-account dat snel volgelingen verliest.
Dat is voor vandaag. Ik ben blij dat ik meer dwaasheid heb bijgedragen aan de enorme rijkdom aan nutteloze bytes op internet, en ik hoop dat je dat ook doet! Toon uw waardering voor deze tutorial van tweeten, en laat ons dan weten waar je eigen Twitter-bot over gaat tweeten in de comments.
Afbeeldingscredit: adafruit / flickr
Ontdek meer over: Raspberry Pi, Twitter.