Spisu treści:

Smart B.A.L (podłączona skrzynka pocztowa): 4 kroki
Smart B.A.L (podłączona skrzynka pocztowa): 4 kroki

Wideo: Smart B.A.L (podłączona skrzynka pocztowa): 4 kroki

Wideo: Smart B.A.L (podłączona skrzynka pocztowa): 4 kroki
Wideo: Bezdotykowe otwieranie furtki? Jak zaprogramować pastylkę do domofonu Orno i innych? RFID 2024, Listopad
Anonim
Smart B. A. L (podłączona skrzynka pocztowa)
Smart B. A. L (podłączona skrzynka pocztowa)

Masz dość sprawdzania za każdym razem, gdy twoja skrzynka pocztowa nie ma nic w środku. Chcesz wiedzieć, czy podczas podróży otrzymasz pocztę lub paczkę. Połączona skrzynka pocztowa jest dla Ciebie. Poinformuje Cię, jeśli listonosz nadał przesyłkę lub paczkę bezpośrednio na smartfonie za pośrednictwem poczty e-mail, dzięki najnowszym technologiom LORAWAN wyprodukowanym we Francji. Przechodzimy krok po kroku, jak zaprojektować prototyp w tej instrukcji.

Krok 1: Sprzęt

Wyposażenie
Wyposażenie

Używane języki: C/C++

Podstawowa wiedza z zakresu elektroniki cyfrowej.

Wymagania sprzętowe:

Grove - 3-osiowy żyroskop cyfrowy:

Zestaw modułu sigfox z anteną:

Losowy przycisk (wybierz, co chcesz).

Nucleo F030R8:

Wymagania Systemowe:

Komputer z dobrą przeglądarką do pracy z kompilatorem Mbed.

Krok 2: Przygotuj urządzenie

Przygotuj swoje urządzenie
Przygotuj swoje urządzenie

Najpierw musimy podłączyć wszystkie moduły do chipa.

Zasil moduł Sigfox i żyroskop napięciem 3,3! Następnie podłącz przewody UART do modułu Sigfox (PA_9, PA_10) a przewody I2C do żyroskopu (PB_10; PB_11). Połącz przycisk z pinami PB_3. po zakończeniu skompiluj poniższy kod.

Możesz przetestować prototyp, umieszczając żyroskop na skrzynce pocztowej i uzyskać pewne wartości związane z ruchem, a tym samym sprawdzić, czy jest to paczka, która została zdeponowana, czy list.

#include "mbed.h" #include "ITG3200.h" //---------------------------------- -- // Konfiguracja hiperterminala // 9600 bodów, 8-bitowe dane, brak parzystości //-------------------------------------------- ------ Szeregowy komputer (SERIAL_TX, SERIAL_RX); Szeregowy sigfox (PA_9, PA_10, NULL, 9600); Przycisk przerwania (PB_3); żyroskop ITG3200 (PB_11, PB_10); lotna aplikacja int; int faktur=0; Zegar t; bateria AnalogIn (A3); AnalogIn ref_batt(ADC_VREF); void lol() { pc.printf("appui\r\n"); aplikacja=1; } /* void batt() { pc.printf("akumulator uszkodzony!\r\n"); }*/ int main() { int x, y, z; //Ustaw najwyższą przepustowość. żyroskop.setLpBandwidth(LPFBW_42HZ); bufor znaków[20]; bouton.fall(&lol); bouton.mode(PullDown); //batterie_faible.rise(&batt); //batterie_faible.mode(PullDown); pc.printf("rozpoczęcie\r\n"); while(1) { aplikacja=0; x = żyroskop.getGyroX(); y = żyroskop.getGyroY(); z = żyroskop.getGyroZ(); if(x > 5000) { t.start(); pc.printf("minuta debiutu\r\n"); while(t.odczyt() <10); pc.printf("fin temps\r\n"); //pc.printf("app= %d\r\n", aplikacja); if(app == 0) { sigfox.printf("AT$SF=636f757272696572\r\n"); //colis: 636f6c69732e202020 sigfox.scanf("%s", bufor); pc.printf("%s\r\n", bufor); } pc.printf("fin if\r\n"); t.stop(); t.reset(); } /* if(batterie.read() <= (2.8*ref_batt.read()/1.23)) pc.printf("batterie faible\r\n"); sigfox.printf("AT$SF=636f757272696572\r\n"); //colis: 636f6c69732e202020 wait(10); sigfox.printf("AT$P=1"); czekaj(10); sigfox.printf("AT$P=0\r\n");*/ } }

Krok 3: Montaż PCB

Poprzedni prototyp jest zbyt duży, aby umieścić go w skrzynce pocztowej. Oto kilka plików Gerber do wydrukowania obwodu i złożenia komponentu.

Krok 4: Back-endowa strona internetowa

Strona zaplecza
Strona zaplecza
Strona zaplecza
Strona zaplecza

Naszą architekturę zaplecza oparliśmy na IBM Cloud (IBM IoT Watson Platform i NodeRED) oraz na żądaniach API REST. Do zarządzania komunikacją pomiędzy różnymi częściami naszego systemu wykorzystano IBM Cloud. Jak widać na naszym przepływie NodeRED, kontrolujemy wszystkie żądania otrzymane z API Sigfox (który wysyła wiadomości z naszego urządzenia) oraz z naszej strony Wix (w celu rejestracji nowego urządzenia). Chmura odpowiada również za wysłanie maila z powiadomieniem do klienta oraz za zarejestrowanie nowego klienta, którego informacje będą przechowywane w naszej bazie danych w chmurze (MongoDB). W ten sposób NodeRED zasadniczo zarządza żądaniami API REST i zapytaniami do bazy danych (INSERT i SELECT), aby zapewnić, że właściwe powiadomienie zostanie wysłane do właściwego klienta na czas.

Zalecana: