Tabla de contenido:

Smart B.A.L (buzón de correo conectado): 4 pasos
Smart B.A.L (buzón de correo conectado): 4 pasos

Video: Smart B.A.L (buzón de correo conectado): 4 pasos

Video: Smart B.A.L (buzón de correo conectado): 4 pasos
Video: El mejor truco para tu Samsung! 2024, Mes de julio
Anonim
Smart B. A. L (buzón conectado)
Smart B. A. L (buzón conectado)

Estás cansado de revisar cada vez tu buzón mientras no hay nada dentro. Quieres saber si recibes tu correo o un paquete durante un viaje, así que el buzón conectado es para ti. Le notificará si el cartero ha depositado un correo o un paquete, directamente en su teléfono inteligente mediante un correo electrónico, gracias a las últimas tecnologías LORAWAN made in France. Vamos paso a paso cómo diseñar un prototipo a lo largo de este instructable.

Paso 1: Equipamiento

Equipamiento
Equipamiento

Idiomas utilizados: C / C ++

Conocimientos básicos en electrónica digital.

Requisitos de hardware:

Grove - Gyro digital de 3 ejes:

Kit módulo sigfox con antena:

Pulsador aleatorio (elige lo que quieras).

Nucleo F030R8:

Requisitos de Software:

Una computadora con un buen navegador para trabajar con el compilador Mbed.

Paso 2: prepara tu dispositivo

Prepare su dispositivo
Prepare su dispositivo

Primero, necesitamos conectar todos los módulos al chip.

¡Encienda el módulo Sigfox y el giroscopio con voltaje 3.3! Luego conecte los cables UART al módulo Sigfox (PA_9, PA_10) y los cables I2C al giroscopio (PB_10; PB_11). Conecte el botón con los pines PB_3. cuando termine, compile el siguiente código.

Puedes probar el prototipo colocando el giróscopo en un buzón y obtener unos valores relacionados con el movimiento y así comprobar si se trata de un paquete que se ha depositado o una carta.

#include "mbed.h" #include "ITG3200.h" // ---------------------------------- - // Configuración del hiperterminal // 9600 baudios, datos de 8 bits, sin paridad // ------------------------------ ------ PC serie (SERIAL_TX, SERIAL_RX); Sigfox serie (PA_9, PA_10, NULL, 9600); InterruptIn bouton (PB_3); Giroscopio ITG3200 (PB_11, PB_10); aplicación int volátil; int facteur = 0; Temporizador t; AnalogIn batterie (A3); AnalogIn ref_batt (ADC_VREF); vacío lol () {pc.printf ("appui / r / n"); aplicación = 1; } / * void batt () {pc.printf ("batterie faible! / r / n"); } * / int main () {int x, y, z; // Establece el ancho de banda más alto. gyro.setLpBandwidth (LPFBW_42HZ); tampón de carbón [20]; bouton.fall (& lol); bouton.mode (PullDown); //batterie_faible.rise(&batt); //batterie_faible.mode(PullDown); pc.printf ("comienzo / r / n"); while (1) {app = 0; x = gyro.getGyroX (); y = gyro.getGyroY (); z = gyro.getGyroZ (); si (x> 5000) {t.start (); pc.printf ("minuto de debut / r / n"); while (t.read () <10); pc.printf ("temperaturas fin / r / n"); //pc.printf("app=% d / r / n ", aplicación); if (aplicación == 0) {sigfox.printf ("AT $ SF = 636f757272696572 / r / n"); // colis: 636f6c69732e202020 sigfox.scanf ("% s", búfer); pc.printf ("% s / r / n", búfer); } pc.printf ("fin si / 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"); esperar (10); sigfox.printf ("AT $ P = 0 / r / n"); * /}}

Paso 3: PCB de montaje

El prototipo anterior es demasiado grande para ponerlo en el buzón. Aquí algunos archivos Gerber para imprimir su circuito y ensamblar su componente.

Paso 4: sitio web back-end

Sitio web back-end
Sitio web back-end
Sitio web back-end
Sitio web back-end

Hemos basado nuestra arquitectura backend en IBM Cloud (IBM IoT Watson Platform y NodeRED) y en solicitudes API REST. Se utilizó IBM Cloud para gestionar la comunicación entre diferentes partes de nuestro sistema. Como puede ver en nuestro flujo NodeRED, controlamos todas las solicitudes recibidas desde la API de Sigfox (que envía los mensajes desde nuestro dispositivo) y desde nuestro sitio web Wix (para registrar un nuevo dispositivo). Además, la nube es responsable de enviar el correo electrónico de notificación al cliente y de registrar un nuevo cliente cuya información se almacenará en nuestra base de datos basada en la nube (MongoDB). Por lo tanto, NodeRED básicamente administra las solicitudes de REST de la API y las consultas de la base de datos (INSERT y SELECT) para garantizar que la notificación correcta se envíe al cliente correcto a tiempo.

Recomendado: