Annuncio pubblicitario
Twitter è il più grande archivio al mondo di brevi messaggi di persone che non hanno nulla da dire - e ora anche tu puoi contribuisci a quel progetto epico con un bot Twitter automatizzato, alimentato dal tuo Raspberry Pi. Sto scherzando, ovviamente – alcune persone in realtà twittano cose interessanti Come utilizzare Twitter per cercare mentori nella propria area di interesseNel mondo reale, un mentore è un insegnante saggio che supporta e guida qualcuno e li aiuta a massimizzare il loro potenziale. Nel mondo online, saresti molto fortunato a trovare qualcuno che ... Leggi di più . Tuttavia, non sono uno di loro: uso il mio per la promozione spudorata dei prodotti in cambio di materiale gratuito, iscrizioni al concorso e pubblicazione automatica di nuovi episodi del nostro podcast Technophilia. Qualunque cosa - i miei follower mi adorano!
@ w0lfiesmith Odio il tuo account Twitter. Così tanto.
- Justin Pot (@jhpot) 21 Agosto 2013
Ora aggiungerò all'utilità del mio stream Twitter personale facendo in modo che un Raspberry Pi twitti automaticamente la sua temperatura attuale della CPU ogni ora e un'immagine della webcam!
Iniziare
Questo progetto utilizza Python; un semplice linguaggio di programmazione ideale per progetti fai-da-te. Inizieremo installando Twython sul Pi - un modulo Python per l'interfacciamento con Twitter; configurare una "applicazione" di Twitter per ottenere una chiave API; poi vai a fare le cose su Twitter per nostro conto. Sarà molto divertente!
Lo sto facendo su Raspian, ma in teoria dovrebbe funzionare su qualsiasi Sistema operativo basato su Linux che hai sul Pi 11 Sistemi operativi in esecuzione su Raspberry PiQualunque sia il tuo progetto Raspberry Pi, esiste un sistema operativo per esso. Ti aiutiamo a trovare il miglior sistema operativo Raspberry Pi per le tue esigenze. Leggi di più . Se non l'hai già fatto, assicurati di impostare SSH in modo che possiamo accedere in remoto ed eseguire i comandi della console.
Installazione di Twython
È consigliabile eseguire prima gli aggiornamenti. Copia e incolla i seguenti comandi uno alla volta: la maggior parte richiederà 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 di Twitter
Per utilizzare l'API di Twitter, ovvero l'interfaccia REST che utilizzeremo per pubblicare nuovi tweet e in generale interagire con Twitter al di fuori del sito Web di Twitter, dovremo registrare una nuova app. Fai quello da questo link - non è necessario specificare un URL di richiamata e, se lo si desidera, creare un sito Web.
Al termine, vedrai qualcosa di simile a questo: queste chiavi sono uniche per te.
Per impostazione predefinita, l'app è di sola lettura, quindi non saremo in grado di pubblicare tweet senza modificarlo in Leggere e scrivere. Vai alla scheda Impostazioni e modifica 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 la pagina aperta per dopo: dovremo copiare e incollare alcune di queste 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 del consumatore con la chiave pertinente dalla pagina dell'applicazione Twitter che abbiamo lasciato aperta in precedenza. Ogni chiave è racchiusa tra virgolette singole, quindi assicurati di non perderle. Nota che CHIAVE DI ACCESSO è indicato come Token di accesso sulla pagina dell'app di Twitter.
#! / usr / bin / env python. import sys. da twython importare 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 scegli 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 che vi twitta più sciocchezze"
Tweet della tua CPU Temp
Ora che puoi pubblicare qualsiasi tipo di sciocchezza che desideri, modifichiamo l'app per acquisire la temperatura attuale della CPU, perché sarò dannato se il mondo non dovesse saperlo ogni ora.
Inizia aggiungendo un'altra importazione per la libreria os:
import os
Quindi aggiungere le seguenti righe, sostituendo il precedente api.update_status dall'esempio sopra.
cmd = '/ opt / vc / bin / vcgencmd measure_temp' line = os.popen (cmd) .readline (). strip () temp = line.split ('=') [1] .split ("'") [0] api.update_status (status = 'La mia temperatura attuale della CPU è' + temp + 'C')
Non spiegherò troppo questo codice perché non ha molta importanza: esegue un comando che prende la temperatura, quindi suddivide l'output per estrarre il numero e lo tweetta con un'abitudine Messaggio. Puoi trovare il completo codice di esempio Qui.
Foto della webcam su Twitter
Ora facciamo qualcosa di veramente utile; andiamo a twittare le foto della webcam. Per fortuna, Twython supporta la funzione API update_status_with_media, il che rende le cose piuttosto semplici.
Collega una webcam USB al dispositivo e controlla se è stata riconosciuta con il comando:
ls / dev / video *
se tu vedi video0, sei fortunato. Ho usato una videocamera PSEye per Playstation 3 e ha funzionato perfettamente senza alcun lavoro aggiuntivo.
Useremo anche il pygame biblioteche per scattare una foto; aggiungere 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 a una risoluzione specifica (potrebbe essere necessario regolarla se si tratta di una videocamera molto vecchia), scattata una foto e salvata come jpg. Sovrascriveremo la stessa webcam.jpg ogni volta che l'app verrà eseguita.
Infine, regola la riga update_status per leggere:
foto = aperto ('webcam.jpg', 'rb') api.update_status_with_media (media = foto, status = 'Il mio RPi sta twittando le immagini ora =>')
Naturalmente, se lo desideri, puoi modificare di nuovo il testo dello stato sulla temperatura attuale della CPU. Il codice completo per questo l'esempio è qui.
Puoi ripeterlo?
Un bot di Twitter è utile solo se viene eseguito più volte, automaticamente; non vuoi stare seduto lì ad eseguire il comando ogni ora. A tale scopo, utilizziamo la funzione di pianificazione CRON di Pi (Che cos'è un lavoro CRON? Automatizza il tuo backup di Wordpress con semplici shell scripting e CRONL'ultima volta che abbiamo parlato dei backup di Wordpress, ti ho mostrato quanto fosse incredibilmente facile eseguire il backup dell'intero database e dei file tramite SSH con pochi comandi. Questa volta, ho intenzione di mostrare ... Leggi di più )
sudo crontab -e
Incolla in questa riga, per eseguire ogni ora.
* / 60 * * * * python /home/pi/SillyTweeter/SillyTweeter.py
Cambialo in * * * * * se vuoi che funzioni ogni minuto e preparati a perdere follower più velocemente di un account Twitter che perde follower rapidamente.
Questo è per oggi. Sono felice di aver contribuito con maggiore stupidità alla vasta ricchezza di byte inutili su Internet e spero che anche tu lo faccia! Mostra il tuo apprezzamento per questo tutorial di twittandolo, e poi facci sapere di cosa twitterà il tuo bot Twitter nei commenti.
Credito immagine: Adafruit / flickr
James ha una laurea in intelligenza artificiale ed è certificato CompTIA A + e Network +. È lo sviluppatore principale di MakeUseOf e trascorre il suo tempo libero giocando a paintball e giochi da tavolo VR. Costruisce PC da quando era un bambino.