Cuprins:

Smart B.A.L (cutie poștală conectată): 4 pași
Smart B.A.L (cutie poștală conectată): 4 pași

Video: Smart B.A.L (cutie poștală conectată): 4 pași

Video: Smart B.A.L (cutie poștală conectată): 4 pași
Video: Cum scrii când începi un caiet nou 2024, Iulie
Anonim
Smart B. A. L (cutie poștală conectată)
Smart B. A. L (cutie poștală conectată)

V-ați săturat să vă verificați de fiecare dată cutia poștală în timp ce nu există nimic înăuntru. Vrei să știi dacă primești poștă sau colet în timpul unei călătorii. Deci, cutia poștală conectată este pentru tine. Vă va anunța dacă poștașul a depus un e-mail sau un colet, direct pe smartphone-ul dvs. prin intermediul unui e-mail, datorită celor mai noi tehnologii LORAWAN fabricate în Franța. Mergem pas cu pas cum să proiectăm un prototip pe parcursul acestui instructable.

Pasul 1: Echipament

Echipament
Echipament

Limbi utilizate: C / C ++

Cunoștințe de bază în electronică digitală.

Cerințe hardware:

Grove - Gyro digital cu 3 axe:

Kit modul sigfox cu antenă:

Buton aleatoriu (alegeți ce doriți).

Nucleo F030R8:

Cerințe software:

Un computer cu un browser bun pentru a lucra cu compilatorul Mbed.

Pasul 2: Pregătiți-vă dispozitivul

Pregătiți-vă dispozitivul
Pregătiți-vă dispozitivul

În primul rând, trebuie să conectăm toate modulele la cip.

Alimentați modulul Sigfox și giroscopul cu 3,3 tensiuni! Apoi conectați firele UART la modulul Sigfox (PA_9, PA_10) și firele I2C la giroscop (PB_10; PB_11). Conectați butonul cu pini PB_3. când ați terminat, compilați codul de mai jos.

Puteți testa prototipul plasând giroscopul pe o cutie poștală și obțineți câteva valori legate de mișcare și astfel verificați dacă este un pachet care a fost depus sau o scrisoare.

#include "mbed.h" #include "ITG3200.h" // ---------------------------------- - // Configurare hiperterminală // 9600 bauds, date pe 8 biți, fără paritate // ------------------------------ ------ PC serial (SERIAL_TX, SERIAL_RX); Sigfox serial (PA_9, PA_10, NULL, 9600); Buton de întrerupere (PB_3); Giroscopul ITG3200 (PB_11, PB_10); aplicație int volatilă; int facteur = 0; Temporizator t; Baterie analogică (A3); AnalogIn ref_batt (ADC_VREF); void lol () {pc.printf ("appui / r / n"); aplicație = 1; } / * void batt () {pc.printf ("baterie mică! / r / n"); } * / int main () {int x, y, z; // Setați cea mai mare lățime de bandă. gyro.setLpBandwidth (LPFBW_42HZ); tampon char [20]; bouton.fall (& lol); bouton.mode (PullDown); //batterie_faible.rise(&batt); //batterie_faible.mode(PullDown); pc.printf ("începutul / r / n"); while (1) {app = 0; x = gyro.getGyroX (); y = gyro.getGyroY (); z = gyro.getGyroZ (); if (x> 5000) {t.start (); pc.printf ("minut de debut / r / n"); while (t.read () <10); pc.printf ("fin temps / r / n"); //pc.printf("app=% d / r / n ", aplicație); if (app == 0) {sigfox.printf ("AT $ SF = 636f757272696572 / r / n"); // colis: 636f6c69732e202020 sigfox.scanf ("% s", tampon); pc.printf ("% s / r / n", tampon); } 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"); așteptați (10); sigfox.printf ("AT $ P = 0 / r / n"); * /}}

Pasul 3: Asamblarea PCB-ului

Prototipul anterior este prea mare pentru a fi pus în cutia poștală. Iată câteva fișiere Gerber pentru a imprima circuitul și a vă asambla componenta.

Pasul 4: site web back-end

Site web back-end
Site web back-end
Site web back-end
Site web back-end

Ne-am bazat arhitectura backend pe IBM Cloud (IBM IoT Watson Platform și NodeRED) și pe cereri API REST. IBM Cloud a fost utilizat pentru a gestiona comunicarea între diferite părți ale sistemului nostru. După cum puteți vedea în fluxul nostru NodeRED, controlăm toate cererile primite de la Sigfox API (care trimite mesajele de pe dispozitivul nostru) și de pe site-ul nostru Wix (pentru înregistrarea unui dispozitiv nou). De asemenea, cloud-ul este responsabil pentru trimiterea e-mailului de notificare către client și pentru înregistrarea unui client nou ale cărui informații vor fi stocate în baza noastră de date bazată pe cloud (MongoDB). Astfel, NodeRED gestionează practic cererile API REST și interogările bazei de date (INSERT și SELECT) pentru a se asigura că notificarea corectă va fi trimisă clientului potrivit la timp.

Recomandat: