Spisu treści:
- Krok 1: Podłącz obwód
- Krok 2: Przygotuj aplikacje internetowe
- Krok 3: Zaprogramuj płytę NodeMCU
- Krok 4: Ciesz się swoim urządzeniem
Wideo: Powiadomienia o zdarzeniach w czasie rzeczywistym za pomocą NodeMCU (Arduino), Google Firebase i Laravel: 4 kroki (ze zdjęciami)
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:32
Czy kiedykolwiek chciałeś otrzymać powiadomienie, gdy w Twojej witrynie zostanie wykonana akcja, ale e-mail nie jest odpowiedni? Czy chcesz słyszeć dźwięk lub dzwonek za każdym razem, gdy dokonujesz sprzedaży? A może potrzebujesz natychmiastowej uwagi z powodu nagłej sytuacji w domu?
To urządzenie może ostrzegać Cię w czasie rzeczywistym o wszystkim, co chcesz.
Krok 1: Podłącz obwód
Urządzenie, które zbudowałem, składa się z płytki NodeMCU z brzęczykiem informującym mnie o sprzedaży dokonanej na stronie internetowej. Mikrokontroler programowany jest za pomocą oprogramowania Arduino, a częścią wyzwalającą może być dowolna aplikacja webowa, iOS lub Android. Na przykład stworzyłem dwie proste aplikacje internetowe, jedną w Laravelu, a drugą w zwykłym HTML i JavaScript.
Ponieważ płyta NodeMCU może bezpiecznie działać do około 12 mA prądu na pinach, brzęczyk jest podłączony przez tranzystor NPN. Użyłem 2N2222, ponieważ mam ich wiele, ale jestem pewien, że zasada będzie taka sama w przypadku każdego innego tranzystora NPN.
Aby okablować obwód, podłącz kolektor tranzystora do pinu Vin na płytce. Brzęczyk pracuje na 5V i skoro zamierzamy zasilać urządzenie z USB to ten pin poda nam napięcie przed regulatorem 3.3V na płytce.
Następnie podłącz dodatnią stronę brzęczyka na emiterze tranzystora, a ujemny styk brzęczyka do dowolnego styku masy na płytce. Użyłem pinu 2, ale można go również podłączyć na pinach 9, 25 lub 29.
Baza tranzystora jest podłączona do pinu D2, który koreluje z GPIO 4 w oprogramowaniu Arduino. W tej konfiguracji tranzystor będzie skutecznie działał jako przełącznik włączający brzęczyk przy każdym zdarzeniu. Zamiast brzęczyka można podłączyć przekaźnik w ten sam sposób, aby móc sterować dowolnym urządzeniem sieciowym, takim jak żarówki, maszyny lub syrena, jeśli wykonujesz jakieś urządzenie alarmowe.
Krok 2: Przygotuj aplikacje internetowe
W przypadku części wyzwalającej i działającej w czasie rzeczywistym użyjemy bazy danych czasu rzeczywistego Firebase firmy Google. To wspaniała baza danych NoSQL w chmurze stworzona przez Google, która zapewnia synchronizację danych w czasie rzeczywistym między każdą z używanych platform.
Najpierw utwórz projekt z wybraną nazwą. Po utworzeniu stwórz pojedynczy węzeł o nazwie „count” i zainicjuj go z wartością 0. To będzie nasza początkowa liczba, którą chcemy śledzić w przyszłości.
Aplikacja Laravel korzysta z pakietu „firebase-php” firmy Kreait, do którego link znajduje się poniżej. Zainstaluj pakiet, uruchamiając „kompozytor wymaga kreait/firebase-php”. Po zakończeniu instalacji musimy stworzyć kontroler, w którym nastąpi akcja. Metodę nazwałem „update” i połączyłem ją w trasach w akcji POST.
Aby pobrać instancję Firebase, potrzebujesz pliku json, który musisz pobrać z konsoli Firebase. Umieść ten plik w katalogu głównym projektu Laravel i nazwij go firebase.json. Podczas pobierania instancji Firebase musimy podać ścieżkę do tego pliku za pomocą metody withCredentials.
Po otrzymaniu instancji firebase musimy uzyskać odwołanie do bazy danych i do utworzonego wcześniej węzła. Przy każdej akcji otrzymamy aktualną wartość węzła, zwiększymy ją o jeden i zapiszemy, jeśli wrócimy do bazy danych. Pozwoli to śledzić nasze wydarzenia, o których musimy powiadomić.
To samo można osiągnąć za pomocą zwykłego HTML i JavaScript, korzystając z dostarczonej biblioteki Firebase. Dzięki niemu najpierw musimy dostarczyć do tablicy konfiguracyjnej odpowiednie ustawienia z konsoli Firebase i zainicjować aplikację. Po zainicjowaniu otrzymujemy odwołanie do węzła, w którym przechowujemy liczniki zdarzeń i dołączamy detektor, aby pobrać każdą zmianę wartości.
Dodatkowo, zamiast wysyłać formularz jak w przykładzie Laravela, mamy teraz funkcję JavaScript, która jest wywoływana po kliknięciu przycisku, aktualizuje licznik i zapisuje zaktualizowaną wartość z powrotem do bazy danych.
Krok 3: Zaprogramuj płytę NodeMCU
Do zaprogramowania NodeMCU użyłem oprogramowania Arduino i po zainstalowaniu na nim płytki upewniłem się, że wybieram odpowiednią wersję i port, aby móc wgrać oprogramowanie. Moja jest w wersji 1.0, więc przed kontynuowaniem sprawdź dokładnie na swojej tablicy.
Pierwsza część kodu Arduino, ustawia wszystkie niezbędne definicje, które będziesz musiał dostosować na swoim urządzeniu. Pierwszym takim ustawieniem jest identyfikator sieci Wi-Fi i hasło, a następnie musimy ustawić adres URL Firebase i Sekret bazy danych Firebase. Niestety nie jest to zalecany sposób łączenia się z bazą danych, ale jak na razie jest to jedyny sposób, w jaki biblioteka go obsługuje. Możesz znaleźć ten sekret w ustawieniach projektu, menu kont usług w konsoli Firebase.
Następna definicja to ścieżka, którą będziemy sprawdzać pod kątem aktualizacji oraz identyfikator urządzenia. Identyfikator urządzenia jest potrzebny, więc w przypadku, gdy mamy wiele urządzeń do powiadamiania o tych samych zdarzeniach, musimy wiedzieć, które urządzenie powiadomiło nas o zdarzeniu i przechowywać to. Na koniec musimy ustawić pin, do którego podłączyliśmy brzęczyk iw naszym przypadku jest to D2.
Funkcja konfiguracji definiuje wbudowany pin led i piny D2 jako wyjścia, uruchamia komunikację szeregową, aby wiedzieć, co się dzieje i łączy się z określoną siecią WiFi. Po nawiązaniu połączenia rozpoczyna komunikację z Firebase i pobiera ostatnią wartość, o której zgłosiliśmy. Następnie zaczyna nasłuchiwać zmian na określonej ścieżce.
W głównej pętli jest wywołanie funkcji blink, która mruga wbudowaną diodą przez 500 milisekund, abyśmy mogli stwierdzić, że urządzenie jest aktywne. Po wykryciu zmiany i dostępnych danych, które możemy odczytać za pomocą dostępnej funkcji, odczytywana jest nowa wartość węzła, obliczana jest różnica, ponieważ w międzyczasie mogło być wiele zdarzeń i za każdym razem generowany jest sygnał dźwiękowy różnicy.
Na przykład, jeśli różnica między ostatnio zgłoszoną wartością a nową wartością wynosi 4, zostaną wygenerowane 4 sygnały dźwiękowe informujące o dokonaniu 4 nowych zakupów. Funkcja sygnału dźwiękowego wykorzystuje wbudowaną funkcję tonu do odtwarzania określonej częstotliwości przez brzęczyk przez określony czas.
Po wygenerowaniu sygnałów dźwiękowych nowa wartość zostanie zaktualizowana dla określonego urządzenia, a strumieniowanie zostanie ponownie uruchomione. Obecnie w bibliotece Firebase arduino istnieje otwarty problem polegający na tym, że strumieniowanie nie jest kontynuowane automatycznie po ręcznym zapisaniu wartości, więc musimy ją ponownie uruchomić.
Krok 4: Ciesz się swoim urządzeniem
Cały kod, którego użyłem, jest dostępny na moim koncie GitHub połączonym poniżej wraz z linkiem do schematu projektu.
Kod źródłowy
Schematyczny
Kod można łatwo zaadaptować do pracy w wielu różnych scenariuszach i wydarzeniach i jestem pewien, że będziesz się z nim dobrze bawić.
Dla mnie była to naprawdę fajna konstrukcja i udało mi się na niej sporo się nauczyć i z tego jestem bardzo zadowolony. Mam nadzieję, że może ci to pomóc w twoim projekcie, ale jeśli utkniesz w jakiejś jego części lub potrzebujesz dalszych wyjaśnień, daj mi znać w komentarzach, a dołożę wszelkich starań, aby ci pomóc.
Jeśli podobał Ci się projekt, zasubskrybuj mój kanał na YouTube:
Skosztuj kodu
Zalecana:
Rozwiązujący w czasie rzeczywistym kostkę Rubika z zasłoniętymi oczami za pomocą Raspberry Pi i OpenCV: 4 kroki
Kostka Rubika z zawiązanymi oczami w czasie rzeczywistym za pomocą Raspberry Pi i OpenCV: Jest to druga wersja narzędzia Rubika do rozwiązywania problemów z zawiązanymi oczami. Pierwsza wersja została opracowana przez javascript, możesz zobaczyć projekt RubiksCubeBlindfolded1W przeciwieństwie do poprzedniej, ta wersja używa biblioteki OpenCV do wykrywania kolorów i e
Jak zrobić rejestrator danych wilgotności i temperatury w czasie rzeczywistym za pomocą Arduino UNO i karty SD - Symulacja rejestratora danych DHT11 w Proteus: 5 kroków
Jak zrobić rejestrator danych wilgotności i temperatury w czasie rzeczywistym za pomocą Arduino UNO i karty SD | Symulacja rejestratora danych DHT11 w Proteus: Wstęp: cześć, tu Liono Maker, tutaj link do YouTube. Tworzymy kreatywne projekty z Arduino i pracujemy na systemach wbudowanych.Data-Logger: Rejestrator danych (również rejestrator danych lub rejestrator danych) to urządzenie elektroniczne, które rejestruje dane w czasie w
Live Tracker Covid19 za pomocą ESP8266 i OLED - Pulpit nawigacyjny Covid19 w czasie rzeczywistym: 4 kroki
Live Tracker Covid19 za pomocą ESP8266 i OLED | Pulpit nawigacyjny Covid19 w czasie rzeczywistym: odwiedź witrynę Techtronic Harsh: http://techtronicharsh.comWszędzie istnieje ogromna epidemia nowego wirusa koronowego (COVID19). Konieczne stało się obserwowanie aktualnego scenariusza COVID-19 na świecie. Więc będąc w domu, to był punkt
ESP01 Moodlight z Firebase w czasie rzeczywistym + OTA: 7 kroków
ESP01 Moodlight z Firebase w czasie rzeczywistym + OTA: Obsługuje tryb R-G-B i efekt Fade. Istnieje również wsparcie dla kontroli jasności. Wsparcie dla aktualizacji OTA
Lista rzeczy do zrobienia w czasie rzeczywistym przy użyciu Google Firebase: 12 kroków
Lista rzeczy do zrobienia w czasie rzeczywistym przy użyciu Google Firebase: Cześć! Wszyscy codziennie korzystamy z list rzeczy do zrobienia, zarówno online, jak i offline. Podczas gdy listy offline są podatne na zgubienie, a wirtualne listy mogą zostać zgubione, przypadkowo usunięte, a nawet zapomniane. Postanowiliśmy więc zrobić jeden w Google Firebase