Reklama

Twitter to największe na świecie repozytorium krótkich wiadomości od osób, które nie mają nic do powiedzenia - a teraz Ty też możesz wnieś swój wkład w ten wspaniały projekt za pomocą automatycznego bota na Twitterze, obsługiwanego przez Twój Raspberry Pi. Oczywiście żartuję – niektórzy ludzie tweetują interesujące rzeczy Jak korzystać z Twittera, aby szukać mentorów w swoim obszarze zainteresowańW prawdziwym świecie mentor to mądry nauczyciel, który kogoś wspiera i prowadzi, a także pomaga zmaksymalizować jego potencjał. W świecie online miałbyś szczęście znaleźć kogoś, kto ... Czytaj więcej . Nie jestem jednak jednym z nich - używam swojej kopalni do bezwstydnej promocji produktów w zamian za darmowe rzeczy, zgłoszenia konkursowe i automatyczne publikowanie nowych odcinków własnego podcastu Technophilia. Cokolwiek - moi wyznawcy mnie kochają!

@ w0lfiesmith Nienawidzę twojego konta na Twitterze. Tak wiele.

- Justin Pot (@jhpot) 21 sierpnia 2013 roku

Teraz dodam do użyteczności mojego osobistego strumienia na Twitterze, że Raspberry Pi automatycznie tweetuje swoją aktualną temperaturę procesora co godzinę i obraz z kamery!

instagram viewer

Pierwsze kroki

Ten projekt wykorzystuje Python; prosty język programowania idealny do projektów DIY. Zaczniemy od instalacji Twython na Pi - moduł Pythona do współpracy z Twitterem; konfigurowanie „aplikacji” na Twitterze w celu uzyskania klucza API; następnie zrób tweet Pi w naszym imieniu. To będzie świetna zabawa!

Robię to na Raspian - ale teoretycznie powinno działać na każdym System operacyjny oparty na Linuksie masz na Pi 11 systemów operacyjnych, które działają na twoim Raspberry PiNiezależnie od projektu Raspberry Pi, jest do tego odpowiedni system operacyjny. Pomagamy Ci znaleźć najlepszy Raspberry Pi OS dla Twoich potrzeb. Czytaj więcej . Jeśli jeszcze tego nie zrobiłeś, upewnij się, że skonfigurowałeś SSH, abyśmy mogli logować się zdalnie i wykonywać polecenia konsoli.

Instalowanie Twython

Warto najpierw uruchomić aktualizacje. Skopiuj i wklej kolejno następujące polecenia - większość będzie wymagać potwierdzenia.

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

Rejestracja aplikacji na Twitterze

Aby korzystać z interfejsu API Twittera - czyli interfejsu REST, którego będziemy używać do publikowania nowych tweetów i ogólnie do interakcji z Twitterem poza witryną Twittera - musimy zarejestrować nową aplikację. Zrób to z tego linku - nie musisz określać zwrotnego adresu URL, a jeśli chcesz, utwórz stronę internetową.

nowa aplikacja na Twitterze

Gdy skończysz, zobaczysz coś podobnego do tego - te klucze są dla Ciebie unikalne.

aplikacja twitter

Domyślnie aplikacja jest ustawiona tylko do odczytu, więc nie będziemy mogli publikować tweetów bez zmiany tej opcji na Czytaj i pisz. Przejdź do karty Ustawienia i zmień Typ aplikacji.

dostęp do odczytu

Po zapisaniu wróć do Detale i kliknij przycisk u dołu, aby utwórz token dostępu OAuth - daje to twojej aplikacji dostęp do twojego konta na Twitterze. Odśwież i pozostaw stronę otwartą na później - będziemy musieli skopiować niektóre z tych kluczy za minutę.

token dostępu

Utwórz projekt w języku Python

Rozpocznij od utworzenia nowego katalogu, w którym mieści się Twój projekt Tweet, a następnie utwórz nowy plik.

mkdir SillyTweeter. cd SillyTweeter. sudo nano SillyTweeter.py. 

Oczywiście możesz to nazwać, jak chcesz.

W wyświetlonym edytorze tekstu skopiuj i wklej następujące elementy, zastępując klucz klienta odpowiednim kluczem ze strony aplikacji Twitter, którą wcześniej pozostawiliśmy otwartą. Każdy klucz jest otoczony pojedynczymi cudzysłowami, więc nie zapomnij o nich. Zauważ, że KLUCZ DOSTĘPU określa się jako Token dostępu na stronie aplikacji na Twitterze.

#! / usr / bin / env python. import sys. z twython import Twython. CONSUMER_KEY = „***************** TWOJE DANE *****************” CONSUMER_SECRET = „*************** TWOJE DANE *******************” ACCESS_KEY = „*************** TWOJE DANE *****************” ACCESS_SECRET = '***************** TWOJE DANE *****************' api = Twython (CONSUMER_KEY, CONSUMER_SECRET, ACCESS_KEY, ACCESS_SECRET) api.update_status (status = sys.argv [1])

Naciśnij Ctrl-X i naciśnij Y, aby wyjść i zapisać plik. Spraw, aby był wykonywalny za pomocą następującego polecenia (zastępując nazwę pliku Python, jeśli wybrałeś coś innego)

sudo chmod + x SillyTweeter.py. 

Powinieneś teraz być w stanie przetestować swoją zdolność do publikowania tweetów w następujący sposób:

python SillyTweeter.py „Witajcie wszyscy, to jest mój Raspberry Pi tweetujący więcej nonsensów”

Tweetowanie temperatury procesora

Teraz, gdy możesz publikować dowolne bzdury, dostosuj aplikację, aby pobierała bieżącą temperaturę procesora, bo niech mnie diabli, jeśli świat nie będzie musiał tego wiedzieć co godzinę.

Zacznij od dodania kolejnego importu dla biblioteki os:

import os

Następnie dodaj następujące wiersze, zastępując poprzedni api.update_status z powyższego przykładu.

cmd = '/ opt / vc / bin / vcgencmd Measure_temp' line = os.popen (cmd) .readline (). strip () temp = line.split ('=') [1] .split ("'") [0] api.update_status (status = „Moja obecna temperatura procesora to„ + temp + „C”)

Nie wyjaśnię zbytnio tego kodu, ponieważ to tak naprawdę nie ma znaczenia - uruchamia polecenie, które chwyta temperatura, a następnie dzieli dane wyjściowe, aby wyodrębnić liczbę, i tweetuje to z niestandardowym wiadomość. Możesz znaleźć komplet przykładowy kod tutaj.

Tweety z kamery internetowej

Teraz zróbmy coś naprawdę przydatnego; będziemy tweetować zdjęcia z kamery internetowej. Na szczęście Twython obsługuje funkcję API update_status_with_media, co sprawia, że ​​wszystko jest raczej proste.

Podłącz kamerę internetową USB do urządzenia i sprawdź, czy została rozpoznana za pomocą polecenia:

ls / dev / video *

Jeśli zobaczysz wideo0, masz szczęście. Użyłem kamery Playstation 3 PSEye i działała dobrze bez żadnych dodatkowych czynności nóg.

Będziemy również korzystać z pygame biblioteki do robienia zdjęć; dodaj następujące wiersze tuż po istniejących instrukcjach importu:

import pygame. import pygame.camera. z pygame.locals import * pygame.init () pygame.camera.init () cam = pygame.camera. Kamera („/ dev / video0”, (640,480)) cam.start () image = cam.get_image () pygame.image.save (image, 'webcam.jpg')

Krótko mówiąc, zainicjowałeś kamerę internetową w określonej rozdzielczości (być może trzeba to wyregulować, bo to naprawdę stara kamera), zrobiłeś zdjęcie i zapisałeś jako plik jpg. Zastępujemy tę samą kamerę internetową.jpg przy każdym uruchomieniu aplikacji.

Na koniec dostosuj wiersz update_status, aby czytał:

photo = otwórz („webcam.jpg”, „rb”) api.update_status_with_media (media = zdjęcie, status = 'Moje RPi tweetują teraz zdjęcia =>')

Oczywiście, jeśli chcesz, możesz ponownie zmienić tekst statusu na aktualną temperaturę procesora. Kompletny kod do tego przykład jest tutaj.

Możesz to powtórzyć?

Bot na Twitterze jest użyteczny tylko wtedy, gdy uruchamia się wiele razy automatycznie; nie chcesz siedzieć tam i wykonywać polecenia co godzinę. Aby to osiągnąć, użyjmy funkcji planowania CRON Pi (Co to jest praca CRON? Zautomatyzuj tworzenie kopii zapasowych Wordpress za pomocą prostych skryptów powłoki i CRONOstatnim razem, gdy rozmawialiśmy o kopiach zapasowych Wordpress, pokazałem, jak niezwykle łatwo można wykonać kopię zapasową całej bazy danych i plików za pośrednictwem SSH za pomocą tylko kilku poleceń. Tym razem pokażę ... Czytaj więcej )

sudo crontab -e

Wklej w tym wierszu, aby uruchomić co godzinę.

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

Zmień to na * * * * * jeśli chcesz, aby działało co minutę i przygotuj się na utratę obserwatorów szybciej niż konto na Twitterze, które szybko traci obserwujących.

To na dzisiaj. Cieszę się, że przyczyniłem się do zwiększenia głupoty w ogromnym bogactwie bezużytecznych bajtów w Internecie i mam nadzieję, że ty też! Wyrazić uznanie dla tego samouczka przez tweetować to, a następnie daj nam znać, o czym będzie tweetował Twój bot na Twitterze w komentarzach.

Źródło obrazu: adafruit / flickr

James ma licencjat z zakresu sztucznej inteligencji i jest certyfikowany przez CompTIA A + i Network +. Jest głównym programistą MakeUseOf i spędza wolny czas grając w paintball VR i gry planszowe. Buduje komputery od dziecka.