Índice:

Smart B.A.L (caixa de correio conectada): 4 etapas
Smart B.A.L (caixa de correio conectada): 4 etapas

Vídeo: Smart B.A.L (caixa de correio conectada): 4 etapas

Vídeo: Smart B.A.L (caixa de correio conectada): 4 etapas
Vídeo: Policia brasileira x polícia Russa quem ganha #shorts 2024, Julho
Anonim
Smart B. A. L (caixa de correio conectada)
Smart B. A. L (caixa de correio conectada)

Você está cansado de verificar sempre sua caixa de correio enquanto não há nada dentro. Você quer saber se recebe sua correspondência ou um pacote durante uma viagem. Portanto, a caixa de correio conectada é para você. Irá notificá-lo se o carteiro depositou uma correspondência ou uma encomenda, directamente no seu smartphone por meio de um e-mail, graças às mais recentes tecnologias LORAWAN fabricadas em França. Vamos passo a passo como projetar um protótipo ao longo deste instrutível.

Etapa 1: Equipamento

Equipamento
Equipamento

Linguagens usadas: C / C ++

Conhecimentos básicos em eletrônica digital.

Requisitos de hardware:

Grove - giroscópio digital de 3 eixos:

Módulo do kit sigfox com antena:

Botão de pressão aleatório (escolha o que quiser).

Nucleo F030R8:

Requisitos de software:

Um computador com um bom navegador para trabalhar com o compilador Mbed.

Etapa 2: Prepare seu dispositivo

Prepare o seu dispositivo
Prepare o seu dispositivo

Primeiro, precisamos conectar todos os módulos ao chip.

Alimente o módulo Sigfox e o giroscópio com 3,3 voltagem! Em seguida, conecte os fios UART ao módulo Sigfox (PA_9, PA_10) e os fios I2C ao giroscópio (PB_10; PB_11). Conecte o botão com pinos PB_3. quando terminar, compile o código abaixo.

Você pode testar o protótipo colocando o giroscópio em uma caixa de correio e obter alguns valores relacionados à movimentação e assim verificar se é um pacote que foi depositado ou uma carta.

#include "mbed.h" #include "ITG3200.h" // ---------------------------------- - // Configuração do hiperterminal // 9600 bauds, dados de 8 bits, sem paridade // ------------------------------ ------ PC serial (SERIAL_TX, SERIAL_RX); Sigfox serial (PA_9, PA_10, NULL, 9600); Botão InterruptIn (PB_3); Giroscópio ITG3200 (PB_11, PB_10); app int volátil; int facteur = 0; Timer t; Bateria AnalogIn (A3); AnalogIn ref_batt (ADC_VREF); void lol () {pc.printf ("appui / r / n"); app = 1; } / * void batt () {pc.printf ("batterie faible! / r / n"); } * / int main () {int x, y, z; // Defina a largura de banda mais alta. gyro.setLpBandwidth (LPFBW_42HZ); buffer char [20]; bouton.fall (& lol); bouton.mode (PullDown); //batterie_faible.rise(&batt); //batterie_faible.mode(PullDown); pc.printf ("início / r / n"); enquanto (1) {app = 0; x = gyro.getGyroX (); y = gyro.getGyroY (); z = gyro.getGyroZ (); if (x> 5000) {t.start (); pc.printf ("minuto de estreia / r / n"); while (t.read () <10); pc.printf ("fin temps / r / n"); //pc.printf("app=% d / r / n ", app); if (app == 0) {sigfox.printf ("AT $ SF = 636f757272696572 / r / n"); // colis: 636f6c69732e202020 sigfox.scanf ("% s", buffer); pc.printf ("% s / r / n", buffer); } 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"); esperar (10); sigfox.printf ("AT $ P = 0 / r / n"); * /}}

Etapa 3: Montagem de PCB

O protótipo anterior é muito grande para colocá-lo na caixa de correio. Aqui estão alguns arquivos Gerber para imprimir seu circuito e montar seu componente.

Etapa 4: site de back-end

Site de back-end
Site de back-end
Site de back-end
Site de back-end

Baseamos nossa arquitetura de back-end na nuvem IBM (IBM IoT Watson Platform e NodeRED) e em solicitações API REST. A nuvem IBM foi usada para gerenciar a comunicação entre as diferentes partes de nosso sistema. Como você pode ver em nosso fluxo NodeRED, controlamos todas as solicitações recebidas da API Sigfox (que envia as mensagens de nosso dispositivo) e de nosso site Wix (para registrar um novo dispositivo). Além disso, a nuvem é responsável por enviar o email de notificação ao cliente e por registrar um novo cliente cujas informações serão armazenadas em nosso banco de dados baseado em nuvem (MongoDB). Assim, o NodeRED basicamente gerencia as solicitações REST da API e as consultas ao banco de dados (INSERT e SELECT) para garantir que a notificação correta seja enviada ao cliente certo no prazo.

Recomendado: