Spisu treści:

RabbitPi - z obsługą Alexy, połączeniem IFTTT, kręceniem uszu asystentem IoT: 12 kroków
RabbitPi - z obsługą Alexy, połączeniem IFTTT, kręceniem uszu asystentem IoT: 12 kroków

Wideo: RabbitPi - z obsługą Alexy, połączeniem IFTTT, kręceniem uszu asystentem IoT: 12 kroków

Wideo: RabbitPi - z obsługą Alexy, połączeniem IFTTT, kręceniem uszu asystentem IoT: 12 kroków
Wideo: RabbitPi — цифровой помощник Raspberry Pi 2024, Listopad
Anonim
Image
Image
RabbitPi - Alexa Enabled, IFTTT Connected, poruszający uszami asystent IoT
RabbitPi - Alexa Enabled, IFTTT Connected, poruszający uszami asystent IoT
RabbitPi - Alexa Enabled, IFTTT Connected, poruszający uszami asystent IoT
RabbitPi - Alexa Enabled, IFTTT Connected, poruszający uszami asystent IoT
RabbitPi - Alexa Enabled, IFTTT Connected, poruszający uszami asystent IoT
RabbitPi - Alexa Enabled, IFTTT Connected, poruszający uszami asystent IoT

Jest to przestarzały „inteligentny królik” Nabaztag 2005, który przebudowałem na nowoczesnego asystenta IoT za pomocą Raspberry Pi 3 i Adafruit Motor HAT, z mikrofonem do kamery internetowej i głośnikiem Philips Soundshooter zawartym w uroczej oryginalnej obudowie. przycisk inicjował polecenia głosowe za pomocą usługi głosowej Amazon Alexa, odczytując odpowiedzi przez zintegrowany głośnik. Polecenia głosowe są również używane do wyzwalania przepisów IFTTT (If This Then That) w celu interakcji z innymi urządzeniami podłączonymi do Internetu, takimi jak inteligentne gniazdka i telefony komórkowe. Niewystarczająco? Oprócz wyzwalania zdarzeń IFTTT, otrzymuje je również za pośrednictwem Gmaila, używając silnika zamiany tekstu na mowę Ivona do odczytywania wiadomości e-mail, wiadomości tekstowych i innych powiadomień, na przykład alertów o pyłkach lub powiadomień z domowej kamery bezpieczeństwa. masz wizualne sprzężenie zwrotne z diodami LED i zmotoryzowanymi uszami? Aha, i ma w brzuchu kamerę Raspberry Pi V2 do przesyłania aktywowanych głosem selfie na Twittera. Trudno opisać urodę RabbitPi słowami, obejrzyj wideo, aby zobaczyć go w akcji!

Krok 1: Krótka historia inteligentnych królików

Krótka historia inteligentnych królików
Krótka historia inteligentnych królików
Krótka historia inteligentnych królików
Krótka historia inteligentnych królików
Krótka historia inteligentnych królików
Krótka historia inteligentnych królików
Krótka historia inteligentnych królików
Krótka historia inteligentnych królików

Oryginalny „pierwszy inteligentny królik” Nabaztag został wydany w 2005 roku, reklamowany jako ambientowy asystent domowy (brzmi znajomo Amazon i Google?) – prawdopodobnie był to pierwszy „Internet rzeczy” i pod wieloma względami wyprzedzał swoje czasy, Kupiłem od razu. Usiadł na naszym kominku, odczytując codzienne prognozy pogody i sporadyczne powiadomienia, ale nigdy nie miał zbyt wielu możliwości, polegając na połączeniu Wi-Fi WEP oraz własnościowym oprogramowaniu i serwerach do świadczenia usług zamiany tekstu na mowę (TTS). Trudno to sobie teraz wyobrazić, ale wtedy nie było aż tak wiele, z którymi mógłby się połączyć, media społecznościowe były ledwie rzeczą, Nokia rządziła światem smartfonów, a żarówki LED były kosztowną nowością.

W nadchodzących latach pojawiły się dwie kolejne wersje, Nabaztag:Tag i Karotz, obie oferowały ulepszoną funkcjonalność, ale żadna z nich nie znalazła swojej niszy na rynku, ostatecznie zawiodła się ograniczeniami sprzętowymi i programowymi. Szkoda, że gdy tylko serwery pomocnicze zostały wyłączone, inteligentne wcześniej króliki stały się niewiele więcej niż ozdobami. Kilka projektów społeczności próbowało zastąpić usługi „oficjalnych” serwerów i przez jakiś czas korzystaliśmy z „OpenKarotz”, ale to również wydawało się wygasnąć rok lub dwa temu, pozostawiając moje króliki milczące i nieruchome na moich głośnikach.

W każdym razie lekcja historii skończona! Skutek jest taki, że czule wspominamy obecność Nabaztagu w naszym salonie i chciałem go odzyskać, ale jako właściwe nowoczesne urządzenie IoT.

Krok 2: Nabaztag 2.0

Nabaztag 2.0
Nabaztag 2.0

Zostałem zainspirowany, aby w końcu uruchomić RabbitPi, kiedy w marcu przeczytałem, że usługa głosowa Amazon Alexa została udostępniona dla Raspberry Pi – kluczem było to, że do aktywacji „słuchania” potrzebny był przycisk – to idealnie pasowało do Nabaztag, ponieważ ma przycisk zrównany z czubkiem jego błyszczącej małej główki. Zdemontowałem swojego królika i wkrótce na moim Pi 3 uruchomiłem doskonały kod AlexaPi Sama Machina, aktywowany przez naciśnięcie przycisku królika. W tym momencie całkowicie rozproszyło mnie budowanie AlexaPhone, ale wskoczyłem z powrotem do inteligentnej króliczej nory, gdy tylko skończyłem. Potrzebowałem, aby mój nowy ulepszony Nabaztag był przynajmniej tak inteligentny jak oryginał, więc chciałem, aby:

Wykonywanie wyszukiwania głosowego i odczytywanie wyników

Przeczytaj powiadomienia

Poruszaj uszami i migaj diodami LED

Rób zdjęcia i zezwalaj na zdalne monitorowanie

Interakcja z inteligentnymi gniazdami, żarówkami i tak dalej

Krok 3: Kotlet z królika

Zając Chop
Zając Chop
Króliczek Chop
Króliczek Chop
Króliczek Chop
Króliczek Chop
Zając Chop
Zając Chop

Pierwszym zadaniem było rozebranie Nabaztagu i sprawdzenie, jakie części można ponownie wykorzystać. Uszy zaprojektowano tak, aby były wymienne i trzymane tylko za pomocą magnesów, więc było to łatwe, a główna osłona była przytrzymywana tylko dwoma (dziwnymi trójkątnymi) śrubami. To odsłoniło wszystkie obwody i komponenty, zbudowane wokół centralnego plastikowego filaru. Z jednej strony znajdował się obwód główny i diody LED, z drugiej głośnik i silniki/przycisk wbudowany w słupek na górze.

Ponieważ planowałem tylko zatrzymać silniki, przeciąłem większość kabli i zacząłem wykręcać śruby. W tym momencie mam prawdziwą niespodziankę! Za obwodem „mózgu” królika znajdowało się gniazdo biegnące przez całą wysokość kolumny, zawierające pełnowymiarową kartę Wi-Fi PCMCIA, taką, jakiej używa się w starych laptopach. Myślę, że w tamtym czasie był to kompromis w zakresie projektowania lub kompatybilności, ale porównanie go pod względem wielkości z nowoczesnym kluczem USB naprawdę pokazało, jak bardzo technologia skurczyła się w ciągu 10 lat.

Resztę części można było łatwo usunąć, pozostawiając tylko goły plastikowy słupek nośny z na pewno dużą ilością miejsca wokół niego?

Krok 4: Mówienie i słuchanie

Mówienie i słuchanie
Mówienie i słuchanie
Mówienie i słuchanie
Mówienie i słuchanie
Mówienie i słuchanie
Mówienie i słuchanie

Nie można mieć gadającego królika sterowanego głosem bez głośnika i mikrofonu, więc to były jedne z pierwszych rzeczy, które rozwiązałem. Naprawdę nie musiałem się bardzo starać, Pi wydaje się być bardzo elastyczny w kwestii mikrofonów USB i właśnie użyłem starej kamery internetowej MSI StarCam Clip do wejścia, dostosowując poziom dźwięku do Max w ustawieniach audio Pi. Aby zaoszczędzić miejsce zdemontowałem kamerkę, wyrzucając obiektyw aparatu i futerał. Wywierciłem otwór w podstawie, aby mikrofon mógł się przebić, i podłączyłem go do USB Pi, prowadząc kable tak starannie, jak to możliwe.

Użyłem głośnika KitSound MiniBuddy w AlexaPhone, ponieważ okazał się naprawdę skuteczny, ale kiedy poszedłem kupić jeden do tego projektu, stwierdziłem, że konstrukcja została zmieniona i nie są już ładowane za pomocą złącza micro-usb! Rozejrzałem się za czymś podobnym i wymyśliłem Philips SoundShooter, małe urządzenie podobne do granatu ręcznego. Miałem nadzieję, że zmieści się w futerale bez demontażu, ale był zbyt duży, więc wyszedł śrubokręt, aby go zdemontować. Udało mi się przy tym zatrzasnąć przewody głośnikowe, więc wlutowałem kilka kabli rozruchowych, aby ułatwić ponowne podłączenie. Ta część głośnika została przyklejona na gorąco do obudowy w tym samym miejscu, co oryginalny głośnik, z obwodem i baterią przymocowaną do małej półki pod nią.

Z perspektywy czasu żałuję, że nie użyłem wnętrzności stacji dokującej głośniki zasilanej z sieci lub czegoś takiego, ponieważ nie jest to idealne rozwiązanie, aby ładować głośnik - nadal trwa naprawdę długo i brzmi świetnie, a jako główna okładka łatwo się unosi, nie jest to tak naprawdę problem zatrzymywania się.

Krok 5: Czytanie jak króliki

Czytanie jak króliki
Czytanie jak króliki
Czytanie jak króliki
Czytanie jak króliki

Teraz, gdy część Alexa działała, przeszedłem do rozwiązania następnego problemu, w jaki sposób zmusiłbym królika do odczytywania powiadomień? Zamiana tekstu na mowę oryginalnego Nabaztagu była zaskakująco dobra, chociaż pamiętam, że zawsze odczytywano moje podpisy tekstowe (MM) jako „Milimetry”, a mojej żony (CM) jako „Centymetry” – chciałem użyć nowoczesnego i naturalnie brzmiący silnik, który poprawnie zinterpretuje takie elementy jak symbol „&” i zrozumie proste emotikony, takie jak:).

Podobnie jak w przypadku wszystkiego na Raspberry Pi, istnieje wiele różnych opcji i przyjrzałem się kilku, zanim zdecydowałem się na Ivonę, która wydaje się być tym samym podstawowym silnikiem używanym przez usługę Alexa. To była dla mnie najlepsza opcja, ponieważ istnieje szereg dostępnych głosów i opcji konfiguracyjnych - również dużym plusem było to, że Zachary Bears udostępnił wygodny wrapper Pythona dla usługi, Pyvona.

Aby rozpocząć pracę z Ivoną, musisz najpierw skonfigurować konto programisty, a następnie, podobnie jak w przypadku konfiguracji Alexa, otrzymujesz dane uwierzytelniające do użycia w swojej aplikacji, w tym przypadku skrypt do odczytywania powiadomień. Jedno z tych kont pozwala na 50 000 wyszukiwań miesięcznie, co z pewnością jest dla mnie wystarczającą ilością.

Konfiguracja Pyvony była naprawdę prosta, w ciągu kilku minut stworzyłem skrypt Pythona z podanego przykładu, który odczytywał każdą wpisaną frazę. Ale to było oczywiście tylko częściowo rozwiązanie - nie chciałem, aby Ivona odczytywała na stałe SMS, ale dynamiczne powiadomienia przychodzące.

Krok 6: Powiedz co?

Powiedz co?
Powiedz co?
Powiedz co?
Powiedz co?

Więc teraz miałem królika (w kawałkach na całej ławce), który potrafił mówić, ale potrzebował mechanizmu do odbierania powiadomień i przekazywania ich służbie Ivona do odczytania. Przyjrzałem się możliwości wysyłania wiadomości tekstowych za pośrednictwem usługi online lub adaptera karty SIM, a także Twittera i Dropbox do dostarczania ciągów tekstowych/plików, ale w końcu zdecydowałem się użyć imaplib, opartego na Pythonie sposobu interakcji z kontami e-mail IMAP. Zdecydowałem się na tę opcję głównie dlatego, że dobrze integruje się z usługą IFTTT, można być naprawdę kreatywnym przy formatowaniu e-maili z powiadomieniami. Oznaczało to również, że będę mógł wysyłać e-maile bezpośrednio do RabbitPi, aby je czytać na głos.

Przejrzałem wiele przykładów imaplib python online, a po połączeniu fragmentów i przepracowaniu dokumentacji imaplib udało mi się uzyskać skrypt, który sprawdzał Gmaila pod kątem nieprzeczytanych wiadomości w regularnych odstępach czasu i wyświetlał inny tekst na ekranie w zależności od zawartości temat wiadomości. Było to bardzo przydatne, ponieważ mogłem dostosować instrukcję „IF” w kodzie, aby działała tylko wtedy, gdy e-mail pochodził ode mnie, a następnie zamienić akcję „Drukuj” na kod wywołujący usługę Ivona.

Spędziłem sporo czasu próbując dostosować kod imaplib i Pyvona do odczytywania treści e-maili, ale okazało się to niezwykle skomplikowane - wkrótce dowiedziałem się, że podstawowe pola e-maili (od, do, temat itp.) są sformatowane bardzo prosto, ale treść wiadomości e-mail może być ustrukturyzowana na wiele różnych sposobów. Ostatecznie nie miało to większego znaczenia, udało mi się osiągnąć to, czego potrzebowałem, używając tematu wiadomości e-mail jako pola, z którego zostanie odczytany tekst powiadomienia.

Następnie dostosowałem przykład kodu imaplib tak, aby zamiast zatrzymywać się po każdym sprawdzeniu wiadomości e-mail, zapętlał się w nieskończoność, sprawdzając wiadomości kilka razy na minutę i odczytując nowe prawie po ich przybyciu. Było to przydatne do testowania, ale w praktyce prawdopodobnie sprawiłbym, że sprawdzałbym to trochę rzadziej. Warto również zauważyć, że skrypt przechowuje hasło w postaci zwykłego tekstu, więc w pewnym momencie będzie wymagało dodania szyfrowania.

Jestem w 100% pewien, że można to osiągnąć znacznie bardziej elegancko i wydajnie w Pythonie, ale było to zabawne i trudne, aby w ogóle działało - pożyczyłem "Python dla dzieci" z biblioteki w tym tygodniu, więc mam nadzieję, że mój kod się poprawi jak dowiem się więcej.

Przy działającym podstawowym skrypcie pobierz-e-mail-i-odczytaj, dodałem dodatkowe fragmenty kodu, które sprawią, że uszy królika poruszą się, a diody LED będą świecić podczas czytania powiadomień. Kod, którego użyłem, znajduje się na GitHub, ale pamiętaj o moim obecnym braku sprawności w Pythonie!

Krok 7: Czapka dla RabbitPi

CZAPKA dla KrólikaPi
CZAPKA dla KrólikaPi
CZAPKA dla KrólikaPi
CZAPKA dla KrólikaPi
CZAPKA dla KrólikaPi
CZAPKA dla KrólikaPi
CZAPKA dla KrólikaPi
CZAPKA dla KrólikaPi

Jedną z najbardziej charakterystycznych rzeczy w Nabaztagu był sposób, w jaki poruszał uszami, gdy nadchodziło powiadomienie. Można je ustawić w określonej orientacji albo ręcznie przesuwając je, albo ustawiając pozycję za pomocą oprogramowania sterującego - moim celem było tylko po to, by się ruszyć.

Wcześniej nie używałem silników z Raspberry Pi, więc był to dla mnie kolejny nowy temat badawczy - najpierw musiałem dowiedzieć się, z jakimi silnikami mam do czynienia, wiedziałem tylko, że są 2 silniki, każdy z 2 przewodami. Czytając online doszedłem do wniosku, że muszą to być proste silniki prądu stałego, a nie silniki krokowe, fakt potwierdzony przez ten fantastycznie pomocny instruktażowy „Hack the Nabaztag” autorstwa Liana_B, który chciałbym przeczytać około miesiąc wcześniej.

Po raz kolejny dzięki elastyczności Pi istnieje wiele różnych sposobów sterowania silnikami, ale zdecydowałem się użyć płyty Adafruit DC & Stepper Motor HAT. Używałem już ekranów i bibelotów Adafruit i uwielbiam szczegółowe instrukcje i przykłady, które są standardem.

Korzystanie z płyty ze standardem HAT (Hardware Attached on Top) oznaczało, że sterownik silnika zmieściłby się porządnie na górze Pi, zajmując minimalną przestrzeń, a ponieważ korzysta z interfejsu I2C, pozostawił wolne piny GPIO, których potrzebowałem do Alexa / Clap przycisk i diody LED.

Zgodnie z oczekiwaniami lutowanie HAT-a było naprawdę proste i wkrótce zainstalowałem go na PI i podłączyłem do dwóch silników usznych. Planowałem uruchomić silniki z power banku usb, aby potrzebować tylko jednej wtyczki zasilania, ale okazało się, że nie ma wystarczającej ilości chrząknięć, nawet nie zapali się dioda „Praca” na HAT-ie. Zdecydowałem się zamiast tego użyć zasilacza DC do uruchomienia HAT i uszu, wygodnie miałem jeden z tych uniwersalnych z wymiennymi końcówkami pod ręką. To, czego nie miałem, to gniazdo DC do podłączenia adaptera do HAT. Już miałem wyjeżdżać do Norwich Maplin (znowu), kiedy przypomniałem sobie z rozbiórki, że oryginalny przewód zasilający Nabaztag to standardowa wtyczka DC - dlatego mogłem po prostu ponownie podłączyć oryginalne gniazdo zasilania do HAT - fajnie! Ostatecznie wykorzystałem również oryginalny zasilacz Nabaztag, ponieważ zapewniał odpowiednią ilość energii.

Po podłączeniu wszystkiego i wybraniu rozsądnego napięcia wstępnie uruchomiłem przykład Pythona dołączony do czapki silnika prądu stałego, przykładowy kod, który stale zmieniał prędkość i kierunek silnika, aby zilustrować różne opcje sterowania. Byłem bardzo podekscytowany, kiedy to zadziałało, mój pierwszy silnik sterowany przez Pi! Ale wtedy coś zauważyłem - naprawdę głośny, wysoki skowyt, jakby ktoś przesuwał mokrym palcem po kieliszku wina. To nie było dobre, chciałem, aby uszy poruszały się podczas czytania powiadomień i chociaż nie ogłuszający, skowyt był naprawdę zauważalny. Próbowałem różnych napięć, ale bez zmian. Zwracając się do Google, dowiedziałem się, że może się to zdarzyć dzięki PWM (modulacja szerokości impulsu) i że jednym ze środków zaradczych może być przylutowanie małych kondensatorów na zaciskach silnika. Patrząc na silniki, były już na miejscu. Eksperymentowałem również ze zmianą częstotliwości PWM, ale nadal bez zmian. Po kilku eksperymentach zdałem sobie sprawę, że wycie pojawiało się tylko wtedy, gdy prędkość silnika była zmieniana przez kod z niskiej na wysoką - więc ustawienie stałej wysokiej prędkości całkowicie wyeliminowało jęczenie - uff!

Stworzyłem kilka testowych skryptów Pythona opartych na przykładach Adafruit, jeden dla ruchu podczas powiadomień, a drugi, aby uszy wykonały pełny „obwód” podczas uruchamiania, mając na celu skopiowanie działającego kodu z nich do głównych skryptów używanych do obsługi Interakcje Alexa i Gmail/Ivona.

Krok 8: Kamera i poprawki

Kamera i poprawki
Kamera i poprawki
Kamera i poprawki
Kamera i poprawki
Kamera i poprawki
Kamera i poprawki

Przed przystąpieniem do montażu wszystko przetestowałem. Wszędzie tam, gdzie było to możliwe w tej wersji, używałem kabli połączeniowych do łączenia ze sobą poszczególnych komponentów, jeśli wcześniejsze wersje nauczyły mnie czegoś, to należy zaplanować przyszły demontaż! Postanowiłem również narysować schemat połączeń pokazujący, jakie kolorowe kable poszły gdzie, kable rozruchowe są doskonałe, ale czasami łatwo się odpinają, gdy wpychasz elementy w ciasne przestrzenie!

Zdecydowałem się dość daleko w kompilacji, aby również dołączyć moduł Pi Camera, wersja 2 8MP właśnie została wydana i jako coś nowego dla mnie pomyślałem, że będzie to dobry dodatek. Najnowsza wersja królika Karotza zawierała kamerę internetową w żołądku, ale to nigdy nie działało tak dobrze. Pomyślałem, że kamera Pi będzie fajna dla aktywowanych głosem selfie, a może nawet zdalnego monitorowania, jeśli Pi poradzi sobie z uruchomieniem kodu w tym samym czasie, co wszystko inne.

Zbudowałem uchwyt do aparatu z meccano pokrytego plastikiem i najpierw włożyłem go do obudowy, a następnie bardzo dokładnie zmierzyłem, gdzie muszę wywiercić otwór w obudowie. Zdecydowanie był to przypadek „jednokrotnego wycięcia miarki raz”, ponieważ dziura w niewłaściwym miejscu byłaby katastrofą. Na szczęście wyszedł martwy punkt i trochę za wysoko, więc mogłem to zrekompensować, dodając podkładki między wspornikiem kamery a podstawą.

W tym momencie dodałem również kabel zasilający Pimoroni Dual Micro USB - to dało mi ładne gniazdo micro-usb z tyłu obudowy i zapewniło drugą wtyczkę zasilania. Zamierzałem użyć dodatkowej wtyczki do naładowania baterii głośnika i włamałem się do niej, aby móc podłączyć oryginalny przełącznik „mute” Nabaztag do sterowania ładowaniem.

Krok 9: Co to jest Cookin' Doc? Przepisy IFTTT

Co to jest Cookin' Doc? Przepisy IFTTT!
Co to jest Cookin' Doc? Przepisy IFTTT!
Co to jest Cooking Doc? Przepisy IFTTT!
Co to jest Cooking Doc? Przepisy IFTTT!

Fenomenalną rzeczą w budowaniu urządzenia IoT w tej chwili jest sama liczba dostępnych usług internetowych, a usługa IFTTT (If This Then That) wykonuje niesamowitą robotę, łącząc je wszystkie w prosty i funkcjonalny pakiet. Jeśli jeszcze go nie używałeś, jest to usługa online, a po zarejestrowaniu się możesz połączyć z nią wszystkie inne treści internetowe, takie jak Gmail, Facebook, Twitter i (zgadłeś) Amazon Alexa. Do wyboru jest szeroki wybór usług, w tym opcje sterowania inteligentnymi urządzeniami, takimi jak żarówki, termostaty i gniazdka.

Reguły IFTTT są ustawione w "przepisach" - coś w rodzaju reguły Outlooka lub instrukcji IF w SQL lub Visual Basic, na przykład mam przepis, który mówi "JEŚLI ktoś oznaczy mnie tagiem na zdjęciu na Facebooku TO wyślij mi e-mail z tematem „Święty guacamole, [imię osoby oznaczającej] właśnie oznaczył cię na zdjęciu na Facebooku” - ponieważ jest to wysyłane do mnie z mojego adresu, a RabbitPi odczytuje tekst tematu.

Innym świetnym zastosowaniem IFTTT jest usługa głosowa Alexa - dla części IF przepisu możesz ustawić frazę, na przykład "laser", a jeśli następnie powiesz Alexa "Uruchom laser", przekaże żądanie do IFTTT, który uruchomi WTEDY część przepisu, w tym przypadku aktywując zdalne gniazdo połączone z laserem dyskotekowym.

Wykracza to nawet poza „inteligentne rzeczy” – jeśli masz zainstalowany IFTTT na telefonie (moja to wersja na Androida), możesz wchodzić z nim w interakcję w obu kierunkach, przepis użyty w filmie to: „Jeśli powiem „Trigger Chas & Dave” do Alexy, NASTĘPNIE odtwórz konkretną piosenkę „Królik” na moim telefonie z Androidem. Działa to również w drugą stronę – uniwersalną aplikację zdalnego sterowania AnyMote na moim telefonie można dostosować tak, aby określony przycisk wyzwalał część „JEŻELI” przepisu - mam więc przycisk na ekranie, który powoduje, że RabbitPi robi selfie i przesyła je na Twittera.

Kolejna funkcja umożliwia RabbitPi odczytanie moich sms-ów, w telefonie mam przepis „JEŚLI otrzymam nową wiadomość SMS TO wyślij sobie e-mail z tematem „Hej! [nadawca tekstu] mówi [treść wiadomości tekstowej]”

Jest łatwy w użyciu, daje dużo zabawy i działa dobrze, powiadomienia są przekazywane tam i z powrotem bardzo szybko, szczególnie do przełącznika WeMo Insight, który mam, który jest prawie natychmiastowy. Posiadanie IFTTT i RabbitPi sprawia, że łączenie rzeczy i usług jest naprawdę proste.

Krok 10: Montaż i testowanie

Montaż i testowanie
Montaż i testowanie
Montaż i testowanie
Montaż i testowanie
Montaż i testowanie
Montaż i testowanie

Teraz nadeszła trudna część - wpakowanie wszystkich komponentów do obudowy! Byłem prawie pewien, że wszystko się zmieści, ale rzeczywisty montaż był naprawdę kłopotliwy, dobrze wykorzystałem kilka narzędzi chirurgicznych i pęsety, aby przebić kable przez małe szczeliny.

Gdy wszystko było już dobrze dopasowane, dodałem samoprzylepne podstawy opasek kablowych, aby wiele przewodów można było porządnie połączyć - było to naprawdę ważne, ponieważ nie chciałem przypadkowo odłączać żadnego z nich podczas składania obudowy.

Krok 11: Gotowy królik?

Gotowy królik?
Gotowy królik?
Gotowy królik?
Gotowy królik?
Gotowy królik?
Gotowy królik?
Gotowy królik?
Gotowy królik?

Teraz, gdy cała fizyczna strona budowy została ukończona, nadszedł czas, aby „przeciąć przewód”, usuwając RabbitPi z wygodnego kabla Ethernet, monitora i klawiatury w warsztacie, abym mógł dokończyć kod w innym miejscu przez SSH (sygnał bezprzewodowy jest naprawdę słaby!)

Usiadłem na biurku w moim biurze, uruchomiłem królika i - w ogóle nie ma połączenia wi-fi, nic. Wiedziałem, że musi być sygnał, ponieważ mój telefon działał dobrze - czy był problem z kartą sieciową w Pi 3, o którym nie słyszałem? Szybkie googlowanie poinformowało mnie, że Pi 3 znajdzie sygnał wi-fi tylko wtedy, gdy router nadaje na kanałach 1-11 - mój był ustawiony na kanał 13! Kilka poprawek później i byliśmy połączeni, wielkie westchnienie ulgi.

Następnie przyszło uporządkowanie różnych skryptów. Najpierw zmodyfikowałem skrypt main.py kodu AlexaPi, dodając dodatkowe wiersze, aby RabbitPi nie tylko migał diodami LED podczas uruchamiania, ale także ładnie poruszał uszami. Zamieniłem też standardową wiadomość „Hello” na zabawny efekt dźwiękowy „boing” dla zabawy.

Drugi skrypt nazywa się rabbit.py (SWIDT?) i zawiera cały kod do pobierania wiadomości z Gmaila i odczytywania ich za pomocą Pyvony. Dodałem również kod Twythona, który zaadaptowałem z samouczka Raspberry Pi „Tweeting Babbage”, umożliwiając RabbitPi zrobienie zdjęcia i przesłanie go na swoje konto na Twitterze (@NabazPi). Dodałem trochę ruchu ucha i błysków LED, aby dać ci uczciwe ostrzeżenie, gdy zdjęcie ma zostać zrobione, a także dźwięk migawki i potwierdzenie odczytu tweeta Pyvona.

Na koniec dodałem w instrukcji IF do kodu gmaila imaplib, aby jeśli temat wiadomości e-mail brzmiał „selfie”, RabbitPi zrobiłby swoje selfie, ale w przeciwnym razie odczytałby temat wiadomości e-mail w normalny sposób.

Kod, którego użyłem, jest dostępny na GitHubie - przeczytaj plik ReadMe!

Na koniec wydrukowałem logo Raspberry Pi na przezroczystym papierze i przykleiłem je do obudowy RabbitPi, aby biała dioda LED na brzuchu oświetlała obraz przez przezroczystą skórę.

Krok 12: Nabaztag powraca

Nabaztag powraca!
Nabaztag powraca!
Nabaztag powraca!
Nabaztag powraca!
Nabaztag powraca!
Nabaztag powraca!

Po wszystkim, co zostało zrobione, pozostało tylko nagranie wideo. To była świetna zabawa, testując RabbitPi przed kamerą, jedynym minusem była późniejsza edycja materiału HD na moim starszym laptopie. W przypadku niektórych powiadomień (głównie wiadomości tekstowych z powodu mojego okropnego sygnału Vodafone) skróciłem przerwy między akcją a powiadomieniem, w przeciwnym razie byłby to długi i nudny film, ale większość z nich pokazuje prawdziwą szybkość reakcji.

Eksperymentowałem z czujnikiem klaśnięcia, aby uruchomić usługę Alexa (jak widać w filmie Snap to it Alexa), ale pominąłem go w ostatecznej wersji, ponieważ nie był wystarczająco niezawodny, gdy był hałas w tle. Wiem, że inni majsterkowicze pracują nad używaniem pilotów na podczerwień, kontrolerów wii, a nawet aktywnego słuchania za pomocą kodu AlexaPi, więc istnieje wiele opcji na przyszłość.

Mam nadzieję dodać pierścień neopikselowy adafruit, aby zastąpić diodę LED brzucha, ponieważ zapewniłoby to znacznie lepsze powiadomienia wizualne, a także chciałbym uwzględnić „wyciszanie” powiadomień głosowych w nocy. Moje dzieci również przedstawiły kilka świetnych sugestii, a teraz, gdy czuję się trochę bardziej komfortowo w Pythonie, będziemy pracować razem nad rozszerzeniem zakresu powiadomień, na przykład tak, aby tekst potwierdzenia selfie był pobierany z listy wartości losowo, a więc można poinstruować królika, aby spróbował tańczyć macarenę z uszami i diodami LED.

Tak się składa, że mam tu innego Nabaztaga, a także późniejszego królika Karotza, więc może zbuduję z nimi coś innego - kuszące jest eksperymentowanie ze zdalnym monitorowaniem i wszelkiego rodzaju czujnikami! Jest to idealna platforma sprzętowa dla Pi z idealną obudową, silnikami i przyciskiem. Zastanawiam się, czy oryginalni producenci mają gdzieś zapas niesprzedanych Nabaztagów, takich jak wysypisko Atari? Z pewnością dzięki wydrukom 3D do montażu kamery i PI oraz niestandardowemu kapeluszowi do uruchamiania silników, diod LED i dźwięku, które stanowiłyby idealny zestaw do tworzenia Raspberry Pi, każdy klub kodowania powinien taki mieć!

Jeśli podoba Ci się ten projekt i chcesz zobaczyć więcej, możesz zajrzeć na moją stronę internetową pod kątem bieżących aktualizacji projektu pod adresem bit.ly/OldTechNewSpec, dołącz do Twittera @OldTechNewSpec lub subskrybuj rozwijający się kanał na YouTube pod adresem bit.ly/oldtechtube - daj niektóre z twoich starych technologii to nowa specyfikacja!

Konkurs Internetu Rzeczy 2016
Konkurs Internetu Rzeczy 2016
Konkurs Internetu Rzeczy 2016
Konkurs Internetu Rzeczy 2016

Drugie miejsce w konkursie Internetu Rzeczy 2016

Zalecana: