Mündəricat:
2025 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2025-01-13 06:56
İçərisində heç bir şey olmadığı halda poçt qutunuzu hər dəfə yoxlamaqdan yoruldunuz. Gəzinti zamanı poçtunuzu və ya bağlamanızı aldığınızı bilmək istəyirsiniz. Beləliklə bağlı poçt qutusu sizin üçündür. Poçtalyon, Fransada istehsal olunan LORAWAN ən son texnologiyaları sayəsində bir e -poçt vasitəsi ilə birbaşa smartfonunuza bir poçt və ya bağlama qoyduğunu bildirəcəkdir. Bu təlimat verilişində bir prototipi necə dizayn edəcəyimizi addım -addım davam etdirəcəyik.
Addım 1: Avadanlıq
İstifadə olunan dillər: C/C ++
Rəqəmsal elektronikada əsas biliklər.
Avadanlıq tələbləri:
Grove-3 Eksenli Rəqəmsal Gyro:
Antenli Sigfox modulu:
Təsadüfi düymə (istədiyinizi seçin).
Nucleo F030R8:
Proqram tələbləri:
Mbed kompilyatoru ilə işləmək üçün yaxşı bir brauzeri olan bir kompüter.
Addım 2: Cihazınızı hazırlayın
Əvvəlcə bütün modulları çipə bağlamalıyıq.
Sigfox modulunu və giroskopu 3.3 gərginliklə gücləndirin! Sonra UART tellərini Sigfox moduluna (PA_9, PA_10) və I2C tellərini giroskopa (PB_10; PB_11) qoşun. Düyməni PB_3 pinləri ilə bağlayın. bitirdikdə, aşağıdakı kodu tərtib edin.
Girotu poçt qutusuna qoyaraq prototipi sınaya və hərəkətlə əlaqəli bəzi dəyərlər əldə edə bilərsiniz və buna görə də qoyulmuş bir paket və ya məktub olub olmadığını yoxlaya bilərsiniz.
#"mbed.h" daxil edin "" ITG3200.h "daxil edin // ---------------------------------- -// Hiperterminal konfiqurasiya // 9600 baud, 8-bit məlumat, paritet yoxdur // ------------------------------ ------ Serial kompüter (SERIAL_TX, SERIAL_RX); Serial sigfox (PA_9, PA_10, NULL, 9600); Bağlantıda kəsmə (PB_3); ITG3200 girro (PB_11, PB_10); uçucu int proqramı; int facteur = 0; Taymer t; Analog Batterie (A3); AnalogIn ref_batt (ADC_VREF); boş lol () {pc.printf ("appui / r / n"); tətbiq = 1; } /* void batt () {pc.printf ("batterie faible! / r / n"); }*/ int main () {int x, y, z; // Ən yüksək bant genişliyini təyin edin. gyro.setLpBandwidth (LPFBW_42HZ); char tamponu [20]; bouton.fall (& lol); bouton.mode (PullDown); //batterie_faible.rise(&batt); //batterie_faible.mode(PullDown); pc.printf ("başlama / r / n"); isə (1) {app = 0; x = gyro.getGyroX (); y = gyro.getGyroY (); z = gyro.getGyroZ (); əgər (x> 5000) {t.start (); pc.printf ("debüt dəqiqəsi / r / n"); while (t.read () <10); pc.printf ("fin temps / r / n"); //pc.printf("app= %d / r / n ", tətbiq); əgər (app == 0) {sigfox.printf ("AT $ SF = 636f757272696572 / r / n"); // colis: 636f6c69732e202020 sigfox.scanf ("%s", tampon); pc.printf ("%s / r / n", tampon); } pc.printf ("fin əgər / 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 gözləyin (10); sigfox.printf ("AT $ P = 1"); gözləyin (10); sigfox.printf ("AT $ P = 0 / r / n");*/}}
Addım 3: PCB montajı
Əvvəlki prototip poçt qutusuna qoymaq üçün çox böyükdür. Dövrənizi çap etmək və komponentinizi yığmaq üçün burada bir neçə Gerber faylı var.
Addım 4: arxa planlı veb sayt
Arxa arxitekturamızı IBM Cloud (IBM IoT Watson Platform və NodeRED) və API REST sorğularına əsaslanırıq. IBM Cloud sistemimizin müxtəlif hissələri arasındakı əlaqəni idarə etmək üçün istifadə edilmişdir. NodeRED axınımızda görə biləcəyiniz kimi, Sigfox API -dən (mesajları cihazımızdan göndərən) və Wix veb saytımızdan (yeni bir cihazın qeydiyyatı üçün) alınan bütün istəkləri idarə edirik. Ayrıca, bulud müştəriyə bildiriş e-poçtu göndərməkdən və məlumatları bulud əsaslı verilənlər bazamızda (MongoDB) saxlanılacaq yeni bir müştərinin qeydiyyatı üçün məsuliyyət daşıyır. Beləliklə, NodeRED, düzgün bildirişin vaxtında doğru müştəriyə göndəriləcəyini təmin etmək üçün API REST sorğularını və verilənlər bazası sorğularını (INSERT və SELECT) idarə edir.