- Nowatorskie podejście do urządzeń automatyki domowej wykorzystujących Chirp
- Odtwarzam dźwięk Chirp z Asystentem Google
- Przygotowanie Arduino Nano 33
Niedawno zaintrygowały mnie wszystkie nowe produkty automatyki domowej na rynku, dlatego kupiłem Google Home Mini i kilka innych inteligentnych urządzeń do sterowania oświetleniem, wentylatorami, klimatyzacją i innymi rzeczami. Chociaż to działało i wszystko było przyjemne w użyciu, trochę się martwiłem, że wszystkie te połączenia bezprzewodowe dzieją się wokół mnie. Sama sypialnia miała 5 inteligentnych urządzeń, a łącznie z moim laptopem i telefonem, będzie to łącznie 7 urządzeń bezprzewodowych wokół mnie, które będą zawsze połączone z routerem. Martwiłem się, że wszystkie te sygnały Wi-Fi mogą być szkodliwe dla naszego zdrowia, a ten artykuł badawczy w Sciencedirect dodał dowody do moich przemyśleń. Wtedy zacząłem myśleć o alternatywnym rozwiązaniu automatyki domowej, które nie potrzebuje Wi-Fi / Bluetooth do działania.
Nowatorskie podejście do urządzeń automatyki domowej wykorzystujących Chirp
Zbudowaliśmy wcześniej projekt automatyki domowej sterowanej pilotem IR, który może działać bez Wi-Fi lub Bluetooth, ale to już nie jest fajne i chciałem sterować urządzeniami za pomocą głosu. Szukałem techniki dla Google Home mini do bezpośredniej komunikacji z urządzeniami inteligentnymi, więc w zasadzie potrzebuję metody komunikacji bezprzewodowej Machine to Machine bez korzystania z Wi-Fi lub BLE.
Właśnie wtedy przypomniałem sobie wywiad z Danem Jonesem, dyrektorem technicznym firmy Chirp, w którym przedstawił Chirp jako „Chirp to sposób przesyłania informacji za pomocą fal dźwiękowych. W przeciwieństwie do Wi-Fi lub Bluetooth, które wykorzystują częstotliwości radiowe, Chirp koduje dane w tonach, które można odtwarzać (przesyłać) za pomocą dowolnego głośnika komputerowego i odbierać przez dowolny mikrofon komputerowy bez konieczności posiadania dodatkowego sprzętu, takiego jak chipy RF. Dzięki temu Chirp może być używany na dowolnym urządzeniu konsumenckim, które ma głośnik i mikrofon, takim jak telefony komórkowe, laptopy, systemy nagłośnienia itp., I może przesyłać informacje nawet przez strumień YouTube lub transmisję telewizyjną. Oznacza to, że możemy używać naszego Google Home mini, aby rozmawiać bezpośrednio (za pomocą chirp) z naszym inteligentnym urządzeniem.Wszystko, czego potrzebujemy, to mikrofon i procesor wewnątrz tych inteligentnych urządzeń, aby zdekodować dane dźwiękowe urządzenia chirp i wykonać wymagane czynności. Firma Chirp niedawno ogłosiła również integrację danych nad dźwiękiem dla Arduino, co oznacza, że powinniśmy być w stanie użyć nowej płyty Arduino nano 33 BLE do uruchamiania Chirp SDK dla naszego projektu.
Dlatego w tym projekcie zbudujemy akustyczne urządzenie automatyki domowej, w którym będziemy mogli sterować tym inteligentnym urządzeniem bez korzystania z żadnych połączeń bezprzewodowych, takich jak Wi-Fi lub Bluetooth. Użyjemy Actions for Google i Dialogflow, aby zbudować aplikację testową dla naszego Asystenta Google, aby odtwarzał zakodowany dźwięk (Chirp). Ten dźwięk zostanie następnie przechwycony przez płytkę sensorową Arduino nano BLE z programem Chirp Arduino, w oparciu o wiadomość zakodowaną w danych, że płyta Arduino może wykonać dowolną czynność, taką jak przełączanie obciążenia AC sterującego diodą LED RGB itp. Może to brzmieć jak dużo, ale jest to stosunkowo proste, a pełne instrukcje podano poniżej. Więc zacznijmy.
Odtwarzam dźwięk Chirp z Asystentem Google
Najłatwiejszym sposobem na zbudowanie automatyki domowej sterowanej głosem jest użycie IFTTT z Asystentem Google dla automatyki domowej. Ale w chwili pisania tego artykułu Chrip nie ma apletu na IFTTT, więc użyjemy natywnej platformy Actions for Google. Istnieje duża szansa, że Chirp udostępnił własny aplet w IFTTT w czasie, gdy czytasz ten artykuł, więc sprawdź to. Jeśli nie, przejdźmy do Actions for Google, aby stworzyć aplikację Google Assistant.
Krok 1: Otwórz konsolę Dialogflow. Być może będziesz musiał się zarejestrować, jeśli jeszcze tego nie zrobiłeś. Następnie kliknij „Utwórz nowego agenta”, jak pokazano poniżej
Krok 2: Nadaj nowemu agentowi nazwę, a następnie kliknij przycisk Utwórz. Nazwałem mojego agenta jako „Circuitdgest_Automation”
Krok 3: Teraz zostaniesz przeniesiony do sekcji intencji. Tutaj szkolisz nowego agenta pod kątem różnych celów. W naszym przypadku napiszemy dwie intencje, jedna to włączenie światła, a druga to wyłączenie światła. Możesz napisać dowolną liczbę intencji w oparciu o aplikacje i polecenia, które muszą być zrozumiane przez Twojego Agenta. Domyślnie będziesz miał zamiar powitania, ale stwórzmy nowy, który włącza światło, klikając „Utwórz intencję”, a ja nazwałbym tę intencję Światła włączone
Na nowej stronie kliknij „Dodaj frazy szkoleniowe” i wprowadź polecenie, które ma być zrozumiane przez Twojego asystenta w tym przypadku „Włącz światło”. Możesz napisać dowolną liczbę fraz szkoleniowych, które wyrażą ten sam zamiar.
Krok 4: Teraz przewiń w dół i kliknij „Dodaj odpowiedź”. W tym miejscu mówimy asystentowi, jak ma zareagować, jeśli ta konkretna intencja zostanie wywołana. Domyślnie możesz tutaj wpisać odpowiedź tekstową, ale potrzebujemy, aby nasz asystent odtworzył dźwięk, więc kliknij symbol „+” obok zakładki „Domyślne” i wybierz Asystenta Google, a następnie zaznacz „Dodaj odpowiedzi” i wybierz „Proste odpowiedzi” ”. Wewnątrz prostego pola tekstowego odpowiedzi wpisz ten kod
Jest to prosty kod SSML do odtwarzania dźwięku z adresu URL, a następnie do powiedzenia „Włączone światła”. Ten dźwięk powinien być zakodowanym dźwiękiem z Chirp i powinien zostać przesłany na jovo.tech.
Pobieranie zakodowanego dźwięku z urządzenia chirp:
Ten zakodowany dźwięk można pobrać z aplikacji Chrip na Androida. Zainstaluj aplikację i wpisz wiadomość, która ma zostać zakodowana, a następnie kliknij przycisk Wyślij, aby odsłuchać zakodowany dźwięk
Tutaj wpisałem „Włącz światła”. Podobnie możesz wpisać dowolną wiadomość i kliknąć przycisk Wyślij, aby sprawdzić zakodowany dźwięk. Możemy następnie zapisać ten plik audio (format mp3) za pomocą dowolnego rejestratora dźwięku. Nagrałem dwa takie pliki audio z zakodowanym komunikatem „Lights on” i „Lights off”. Możesz je pobrać stąd, jeśli chcesz zaoszczędzić czas. Gdy będziesz gotowy z plikami audio, przejdź do konwertera audio jovo tech, aby przesłać pliki mp3 i uzyskać do niego link.
Pamiętaj, że jest to narzędzie testowe, a Twoje pliki będą aktywne tylko przez 24 godziny. Jeśli chcesz, aby działał przez długi czas, musisz użyć własnego serwera internetowego, takiego jak baza ogniowa Google, jak ten przykładowy interfejs asystenta Google Firebase. Teraz, gdy masz już link, twoja odpowiedź w przepływie okna dialogowego powinna wyglądać mniej więcej tak
Upewnij się, że kliknąłeś Zapisz, aby zapisać ten zamiar.
Krok 5: Podobnie, stwórz kolejną nową intencję wyłącz światła. Ponownie wprowadź swoją frazę szkoleniową, a także swoją odpowiedź. Tym razem wstaw link do innego pliku audio i poproś o powiedzenie Światła wyłączone, jak pokazano poniżej.
Ponownie upewnij się, że również to zapiszesz.
Krok 6: Teraz po lewej stronie kliknij kartę integracji i wybierz asystenta Google. Pomoże nam to przetestować aplikację za pomocą asystenta Google. Wybierz aplikację Asystent Google i kliknij „TESTUJ”
Krok 7: Zajmie to trochę czasu, po czym pojawi się ekran testowy, jak pokazano poniżej. W lewym rogu możesz zobaczyć pole tekstowe, w którym możesz wpisać swoje polecenia testowe i zobaczyć, jak reaguje aplikacja. Możesz także znaleźć aplikacje do debugowania po lewej stronie ekranu.
Kiedy wpiszesz „włącz lampki do czytania”, powinno odtworzyć dźwięk ćwierkania i powiedzieć, że światła są włączone, podobnie jak „Wyłącz lampki do czytania”. Gdy to zadziała, możesz wypróbować go na dowolnym urządzeniu z asystentem Google, takim jak telefon lub domowa mini wyszukiwarka Google, które jest połączone z Twoim identyfikatorem Gmaila. Po prostu powiedz „porozmawiaj” z moją aplikacją testową i zacznij sterować urządzeniem.
Przygotowanie Arduino Nano 33
Teraz po stronie sprzętowej sprawy stały się całkiem proste dzięki płycie Arduino Nano 33 BLE Sense. Ponieważ płyta ma wbudowany mikrofon i biblioteki chirp gotowe do wdrożenia bezpośrednio z Arduino IDE. Jeśli nie masz doświadczenia z tą płytą, zalecamy przeczytanie tego artykułu „Pierwsze kroki z Arduino Nano 33 BLE”, aby zrozumieć