Come costruire un Bot di Twitter Raspberry Pi
Twitter è il repository più grande al mondo di messaggi brevi di persone che non hanno nulla da dire - e ora anche tu puoi contribuire a quel progetto epico con un bot di Twitter automatizzato, basato sul tuo Raspberry Pi. Sto scherzando, naturalmente - alcune persone in realtà tweettano cose interessanti Come usare Twitter per cercare mentori nella tua area di interesse Come usare Twitter per cercare mentori nella tua area di interesse Nel mondo reale, un mentore è saggio insegnante che supporta e guida qualcuno e li aiuta a massimizzare il proprio potenziale. Nel mondo online, saresti molto fortunato a trovare qualcuno che ... Leggi altro. Io non sono uno di loro però - io uso il mio mio per la promozione di prodotti spudorati in cambio di roba gratis, voci di concorso e auto-pubblicazione di nuovi episodi del nostro Podcast Technophilia. Qualunque cosa - i miei seguaci mi amano!
@ w0lfiesmith Odio il tuo account Twitter. Così tanto.
- Justin Pot (@jhpot), 21 agosto 2013
Ora aggiungo all'utilità del mio flusso personale di Twitter facendo in modo che un Raspberry Pi tweet automaticamente la sua temperatura attuale della CPU ogni ora e un'immagine della webcam!
Iniziare
Questo progetto usa Python; un linguaggio di programmazione semplice, ideale per progetti fai-da-te. Inizieremo installando Twython sul Pi - un modulo Python per l'interfacciamento con Twitter; creare un Twitter “applicazione” ottenere una chiave API; poi vai a fare il tweet di Pi per conto nostro. Sarà così divertente!
Lo sto facendo su Raspian - ma in teoria dovrebbe funzionare su qualsiasi SO basato su Linux che hai sui sistemi operativi Pi 11 Puoi eseguire su Raspberry Pi 11 Sistemi operativi eseguibili su Raspberry Pi L'hardware di Raspberry Pi è solo uno lato della moneta. Ecco alcuni diversi sistemi operativi Raspberry Pi che è possibile installare. Leggi di più . Se non lo hai già fatto, assicurati di configurare SSH in modo da poter accedere in remoto ed eseguire i comandi della console.
Installazione di Twython
È una buona idea eseguire prima gli aggiornamenti. Copia e incolla i seguenti comandi uno alla volta: la maggior parte richiede una conferma.
sudo apt-get update sudo apt-get upgrade sudo apt-get install python-setuptools sudo easy_install pip sudo pip installa twython
Registrazione di un'app Twitter
Per utilizzare l'API di Twitter, ovvero l'interfaccia REST che utilizzeremo per pubblicare nuovi tweet e in genere interagire con Twitter al di fuori del sito Web di Twitter, sarà necessario registrare una nuova app. Da questo link: non è necessario specificare un URL di richiamata e creare un sito Web, se lo si desidera.
Vedrai qualcosa di simile a questo una volta che hai finito - queste chiavi sono uniche per te.
Per impostazione predefinita, l'app è impostata in sola lettura, quindi non saremo in grado di pubblicare tweet senza cambiarlo Leggere e scrivere. Vai alla scheda Impostazioni e cambia il Tipo di applicazione.
Una volta salvato, torna al Dettagli scheda e fare clic sul pulsante in basso a creare un token di accesso OAuth - questo dà alla tua applicazione l'accesso al tuo account Twitter. Aggiorna e lascia aperta la pagina per dopo - dovremo copiare incollare alcune di quelle chiavi in un minuto.
Crea il tuo progetto Python
Inizia creando una nuova directory per ospitare il tuo progetto Tweet, quindi crea un nuovo file.
mkdir SillyTweeter cd SillyTweeter sudo nano SillyTweeter.py
Puoi chiamarlo come preferisci, ovviamente.
Nell'editor di testo che appare, copia e incolla quanto segue, sostituendo la chiave utente con la chiave pertinente dalla pagina dell'applicazione Twitter che abbiamo lasciato aperta in precedenza. Ogni chiave è circondata da virgolette singole, quindi assicurati di non perdere quelle. Nota che CHIAVE DI ACCESSO è indicato come Token di accesso sulla pagina dell'app Twitter.
#! / usr / bin / env python import sys da twython import Twython CONSUMER_KEY = '*************** I TUOI DATI *************** ** 'CONSUMER_SECRET =' *************** I TUOI DATI ***************** 'ACCESS_KEY =' ****** ********* I TUOI DATI ***************** 'ACCESS_SECRET =' *************** I TUOI DATI * **************** 'api = Twython (CONSUMER_KEY, CONSUMER_SECRET, ACCESS_KEY, ACCESS_SECRET) api.update_status (status = sys.argv [1])
Premi Ctrl-X e premi Y per uscire e salvare il file. Rendilo eseguibile con il seguente comando (sostituendo il nome del tuo file Python se hai scelto qualcos'altro)
sudo chmod + x SillyTweeter.py
Ora dovresti essere in grado di testare la tua capacità di pubblicare tweet in questo modo:
python SillyTweeter.py 'Ciao a tutti, questo è il mio Raspberry Pi tweeting te più sciocchezze'
Twittare la tua CPU Temp
Ora che puoi postare qualsiasi sciocchezza gentile che vuoi, aggiustiamo l'app per afferrare la temperatura attuale della CPU, perché sarò dannato se il mondo non ha bisogno di sapere che ogni ora.
Inizia aggiungendo un'altra importazione per la libreria os:
importazione os
Quindi aggiungi le seguenti righe, sostituendo il precedente api.update_status dell'esempio precedente.
cmd = '/ opt / vc / bin / vcgencmd measure_temp' riga = os.popen (cmd) .readline (). strip () temp = line.split ('=') [1] .split ("'") [ 0] api.update_status (status = 'La mia attuale temperatura della CPU è' + temp + 'C')
Non spiegherò troppo questo codice perché non ha molta importanza: esegue un comando che cattura la temperatura, quindi divide l'output per estrarre il numero e lo tweet con un messaggio personalizzato. Puoi trovare il codice di esempio completo qui.
Tweeting Webcam Pics
Ora facciamo qualcosa di veramente utile; stiamo andando a twittare foto in webcam. Fortunatamente, Twython supporta la funzione API update_status_with_media, il che rende le cose piuttosto semplici.
Collegare una webcam USB al dispositivo e verificare se è stata riconosciuta con il comando:
ls / dev / video *
Se vedi video0, sei fortunato. Ho usato una PSEye per Playstation 3 e ha funzionato bene senza alcun ulteriore gioco di gambe.
Useremo anche il pygame biblioteche per scattare una foto; aggiungi le seguenti righe subito dopo le istruzioni di importazione esistenti:
import pygame import pygame.camera da 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 (immagine, 'webcam.jpg')
In breve, hai inizializzato la webcam con una risoluzione specifica (potrebbe essere necessario regolare questa è una vecchia camma), ha scattato una foto e salvata come jpg. Stiamo solo andando a sovrascrivere la stessa webcam.jpg ogni volta che viene eseguita l'app.
Infine, aggiusta la riga update_status per leggere:
photo = open ('webcam.jpg', 'rb') api.update_status_with_media (media = foto, stato = "My RPi be tweeting images now =>")
Ovviamente, se lo desideri, puoi cambiare di nuovo il testo di stato con la temperatura attuale della CPU. Il codice completo per questo esempio è qui.
Puoi ripeterlo?
Un bot di Twitter è utile solo se viene eseguito più volte, automaticamente; non vuoi stare seduto lì a eseguire il comando ogni ora. Per ottenere questo, utilizziamo la funzione di pianificazione CRON di Pi (Che cos'è un lavoro CRON? Automatizza il tuo backup di Wordpress con semplice script di shell e CRON Automatizza il tuo backup di Wordpress con semplice script di shell e CRON L'ultima volta che abbiamo parlato dei backup di Wordpress, ti ho mostrato come incredibilmente facile è stato il backup dell'intero database e dei file tramite SSH con solo pochi comandi, questa volta mostrerò ... Per saperne di più)
sudo crontab -e
Incolla in questa linea, per eseguire ogni ora.
* / 60 * * * * python /home/pi/SillyTweeter/SillyTweeter.py
Cambia quello * * * * * se vuoi che funzioni ogni minuto e preparati a perdere follower più velocemente di un account Twitter che perde rapidamente i follower.
Questo è per oggi. Sono felice di aver contribuito con più stupidità alla vasta ricchezza di byte inutili su Internet, e spero che lo faccia anche tu! Mostra il tuo apprezzamento per questo tutorial di twittandolo, e poi facci sapere di cosa parlerà nei tuoi commenti il tuo bot di Twitter.
Credito immagine: adafruit / flickr
Scopri di più su: Raspberry Pi, Twitter.