Jak postavit Raspberry Pi Twitter Bot

  • Michael Cain
  • 0
  • 3579
  • 597
reklama

Twitter je největším úložištěm krátkých zpráv od lidí, kteří nemají co říci - a nyní také můžete přispět k tomuto epickému projektu automatizovaným Twitterem, poháněným Raspberry Pi. Dělám si srandu, samozřejmě - někteří lidé ve skutečnosti píší zajímavé věci Jak používat Twitter k vyhledávání mentorů ve vaší oblasti zájmu Jak používat Twitter k vyhledávání mentorů ve vaší oblasti zájmu Ve skutečném světě je mentor moudrý učitel, který někoho podporuje a vede, a pomáhá jim maximalizovat jeho potenciál. Ve světě online byste velmi rádi našli někoho, kdo…. Nejsem však jeden z nich - svůj dolu využívám k propagaci nestydatých produktů výměnou za bezplatné věci, soutěžní příspěvky a automatické vysílání nových epizod naší vlastní Technophilia Podcast. Cokoli - moji následovníci mě milují!

@ w0lfiesmith Nesnáším váš účet Twitter. Tak moc.

- Justin Pot (@jhpot) 21. srpna 2013

Nyní se přidám k užitečnosti svého osobního streamu na Twitteru tím, že nechám Raspberry Pi automaticky každou hodinu tweetovat svou aktuální teplotu procesoru a obrázek z webové kamery.!

Začínáme

Tento projekt používá Python; jednoduchý programovací jazyk ideální pro kutilské projekty. Začneme instalací Twythonu na Pi - modul Python pro propojení s Twitterem; nastavení Twitteru “aplikace” získat klíč API; pak pokračujte v tom, abychom udělali věci pro pí pí na náš účet. Bude to tak zábavné!

Dělám to na Raspian - ale mělo by to teoreticky fungovat na jakémkoli operačním systému Linux, který máte na operačních systémech Pi 11 Raspberry Pi, které můžete vyzkoušet 11 Operační systémy Raspberry Pi, které můžete vyzkoušet Ať už je váš projekt Raspberry Pi jakýkoli, existuje operační systém systém pro to. Pomůžeme vám najít nejlepší Raspberry Pi OS pro vaše potřeby. . Pokud jste tak dosud neučinili, ujistěte se, že jste nastavili SSH, abychom se mohli vzdáleně přihlásit a provádět příkazy konzoly.

Instalace Twythonu

Je dobré nejprve spustit aktualizace. Zkopírujte a vložte následující příkazy po jednom - většina bude vyžadovat potvrzení.

sudo apt-get update sudo apt-get upgrade sudo apt-get install python-setuptools sudo easy_install pip sudo pip install twython 

Registrace aplikace Twitter

Abychom mohli používat Twitter API - tj. Rozhraní REST, které použijeme k publikování nových tweetů a obecně k interakci s Twitterem mimo web Twitter -, musíme si zaregistrovat novou aplikaci. Udělejte to pomocí tohoto odkazu - nemusíte specifikovat URL zpětného volání a pokud chcete, vytvořte pouze web.

Jakmile to uděláte, uvidíte něco podobného - tyto klíče jsou pro vás jedinečné.

Ve výchozím nastavení je aplikace nastavena pouze na čtení, takže nebudeme moci publikovat tweety, aniž bychom to změnili na Číst a psát. Přejděte na kartu Nastavení a změňte Typ aplikace.

Jakmile je uložen, vraťte se zpět do Podrobnosti a klikněte na tlačítko dole vytvořte přístupový token OAuth - Díky tomu bude mít aplikace přístup k vlastnímu účtu Twitter. Obnovte a nechte stránku otevřenou pro pozdější - některé z těchto klíčů musíme zkopírovat za minutu.

Vytvořte svůj Python projekt

Začněte vytvořením nového adresáře pro uložení projektu Tweet a poté vytvořte nový soubor.

mkdir SillyTweeter cd SillyTweeter sudo nano SillyTweeter.py 

Můžete to samozřejmě nazvat, jak chcete.

V textovém editoru, který se objeví, zkopírujte a vložte následující, čímž nahradíte spotřebitelský klíč relevantním klíčem ze stránky aplikace Twitter, kterou jsme dříve otevřeli. Každý klíč je obklopen jednoduchými uvozovkami, takže je určitě nenechte si ujít. Všimněte si, že PŘÍSTUPOVÝ KLÍČ se označuje jako Přístupový token na stránce aplikace Twitter.

#! / usr / bin / env python import sys from twython import Twython CONSUMER_KEY = '**************** YOUR DATA **************** ** 'CONSUMER_SECRET =' ***************** VAŠE ÚDAJE ****************** 'ACCESS_KEY =' ****** ********* VAŠE ÚDAJE ******************* 'ACCESS_SECRET =' **************** VAŠE ÚDAJE * ***************** 'api = Twython (CONSUMER_KEY, CONSUMER_SECRET, ACCESS_KEY, ACCESS_SECRET) api.update_status (status = sys.argv [1]) 

Stiskněte Ctrl-X a stisknutím Y ukončete a uložte soubor. Aby byl spustitelný pomocí následujícího příkazu (nahrazení názvu souboru Python, pokud jste si vybrali něco jiného)

sudo chmod + x SillyTweeter.py 

Nyní byste měli být schopni otestovat svou schopnost zveřejňovat tweety takto:

python SillyTweeter.py 'Ahoj všichni, tohle je můj Raspberry Pi tweeting you more nonsense'

Tweeting váš procesor Temp

Nyní, když můžete zveřejnit jakýkoli nesmysl, který chcete, pojďme upravit aplikaci tak, aby zachytila ​​aktuální teplotu procesoru, protože budu zatraceně, pokud svět nebude potřebovat vědět každou hodinu.

Začněte přidáním dalšího importu pro knihovnu os:

import os

Poté přidejte následující řádky a nahrazte předchozí api.update_status z výše uvedeného příkladu.

cmd = '/ opt / vc / bin / vcgencmd measure_temp' line = os.popen (cmd) .readline (). strip () temp = line.split ('=') [1] .split ("'") [ 0] api.update_status (status = 'Moje aktuální teplota procesoru je' + temp + 'C') 

Tento kód příliš nevysvětlím, protože na tom opravdu nezáleží - spustí příkaz, který popadne teplotu, poté rozdělí výstup, aby extrahoval číslo, a doplní jej pomocí vlastní zprávy. Kompletní příklad kódu najdete zde.

Fotografie Tweeting webové kamery

Nyní udělejme něco opravdu užitečného; jdeme tweetovat obrázky z webcam. Naštěstí Twython podporuje funkci API update_status_with_media, což vše zjednodušuje.

Připojte webovou kameru USB k zařízení a zkontrolujte, zda byla rozpoznána příkazem:

ls / dev / video *

Pokud vidíte video0, máš štěstí. Použil jsem kameru Playstation 3 PSEye a fungovalo to dobře bez dalších nároží.

Budeme také používat pygame knihovny, aby vyfotily; následující řádky přidejte hned za existující příkazy pro import:

import pygame import pygame.camera z 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 (image, 'webcam.jpg') 

Stručně řečeno, jste inicializovali webovou kameru ve specifickém rozlišení (možná budete muset upravit toto, je to opravdu stará kamera), vyfotili snímek a uložili jako jpg. Při každém spuštění aplikace přepíšeme stejnou webovou kameru.jpg.

Nakonec upravte řádek update_status na čtení:

photo = open ('webcam.jpg', 'rb') api.update_status_with_media (media = photo, status = "Moje RPi budou tweeting images now =>") 

Pokud chcete, můžete samozřejmě změnit stavový text na aktuální teplotu procesoru. Kompletní kód pro tento příklad je zde.

Můžeš to zopakovat?

Twitter bot je užitečný pouze v případě, že běží automaticky vícekrát; nechceš tam sedět a spouštět příkaz každou hodinu. Abychom toho dosáhli, využijte funkci plánování CRON pro Pi (Co je to úloha CRON? Automatizace zálohování Wordpressu pomocí jednoduchého skriptování shellu & CRON Automatizace zálohování Wordpressu pomocí skriptování jednoduchého shellu a CRON Když jsme naposledy mluvili o zálohách Wordpressu, ukázala jsem vám, jak neuvěřitelně snadné bylo zálohovat celou databázi a soubory, i když SSH, pouze s několika příkazy. Tentokrát se ukážu ...)

sudo crontab -e

Vložte do tohoto řádku, aby se spouštěl každou hodinu.

* / 60 * * * * python /home/pi/SillyTweeter/SillyTweeter.py

Změňte to na * * * * * chcete-li, aby se spouštěl každou minutu, a buďte připraveni ztratit následovníky rychleji než účet Twitter, který následovníky rychle ztratí.

To je pro dnešek. Jsem rád, že jsem přispěl více hbitostí k obrovskému bohatství zbytečných bytů na internetu, a doufám, že i vy! Ukažte své uznání za tento tutoriál tweeting to, a pak nám v komentářích dejte vědět, o čem bude váš vlastní robot na Twitteru tweetovat.

Obrazový kredit: adafruit / flickr




Bisher hat noch niemand einen Kommentar zu diesem Artikel abgegeben.

O moderní technologii, jednoduché a cenově dostupné.
Váš průvodce ve světě moderních technologií. Naučte se, jak používat technologie a pomůcky, které nás každý den obklopují, a naučte se, jak objevovat na internetu zajímavé věci.