Índice:
2025 Autor: John Day | [email protected]. Última modificação: 2025-01-13 06:58
Este projeto acadêmico, a pulseira de orientação conectada, foi realizado por quatro alunos da escola de engenharia Polytech Paris-UPMC: Sébastien Potet, Pauline Pham, Kevin Antunes e Boris Bras.
Qual é o nosso projeto?
Durante um semestre, tivemos que criar uma pulseira conectada que será usada por um corredor. O seu percurso será orientado por vários pontos onde irá marcar, o que permitirá registar o seu percurso. Esses dados serão armazenados em uma nuvem em tempo real.
Este produto pode fornecer a temperatura, a umidade e a orientação. Além disso, temos três botões incluindo um que envia uma posição GPS caso o corredor tenha algum problema (botão SOS), por isso precisamos dele em tempo real. O segundo permite etiquetar e o último desligar a pulseira porque queremos um produto de baixa potência.
Tínhamos um bugdet de 120 €. Para realizar uma pulseira de orientação conectada, siga nosso tutorial!
Etapa 1: Material necessário
Lista de componentes:
- STM32L432KC-Nucleo Ultra Low Power
- Módulo SigFox TD1208
- Leitor RFID 125 kHz
- Sensor de temperatura / umidade HTU21D
- Módulo acelerômetro de 3 eixos ADXL345
- Módulo de bússola de 3 eixos HMC5883L
- Tela OLED ADA938
- Módulo GPS Grove 31275
- Bateria 1,5 V LR6
- Regulador de tensão Pololu 3.3V U1V11F3
- Alguns botões de controle
Etapa 2: Parte de Programação
Em primeiro lugar, programamos cada componente com o site de desenvolvedor mbed. Para isso, usamos um microcontrolador STM32L476RG-Nucleo que é de baixo consumo.
A tela, o sensor de temperatura / umidade e a bússola funcionam na comunicação I²C. O leitor RFID e o acelerômetro funcionam em comunicação serial. Para cada componente, você tinha que adicionar sua própria biblioteca.
Para o sensor de temperatura / umidade, a bússola e o acelerômetro, você precisa chamar uma função definida em sua biblioteca para obter os dados.
O leitor RFID trabalha em comunicação serial, você tem que usar a função "getc ()" pois o tag retorna os dados em char.
Todos os códigos estão disponíveis em arquivo, exceto o código da tela OLED.
Etapa 3: Montagem Eletrônica
Depois de programar cada componente, pegamos uma placa labdec e os conectamos ao STM32L432KC-Nucleo. Siga o diagrama de fiação em anexo para montar todos os componentes, ou cada PIN é detalhado no conjunto do código.
Adicionamos três botões com três resitâncias de 10 Kilo ohms: um envia a posição GPS em caso de perigo, um para ligar / desligar e o último para permitir que o corredor marque o ponto. Adicionamos uma campainha quando você pressiona o botão SOS.
O arquivo "braceletOrientation" em anexo é nosso projeto no Fritzing. Este é um arquivo de resumo de nossos componentes e nossa fiação no labdec, bem como no PCB. Além disso, adicionamos o código de montagem de todos os componentes.
Etapa 4: aquisição de dados
Actoboard
Actoboard é uma ferramenta baseada em painel. Ele exibe todos os dados enviados pelo Módulo Sigfox. Em seguida, ele enviará via URL esses dados para nodered, a fim de serem inseridos no banco de dados.
Envie os dados:
Para enviar os dados através do seu código, em primeiro lugar você precisa declarar o PIN (Tx, Rx) do módulo Sigfox (você pode vê-lo em nosso código). Depois disso, graças a este comando: "sigfox.printf (" AT $ SF =% 02X% 02X% 02X% 02X% 02X% 02X / r / n ", lat_deg, long_deg, lat_10s, long_10s, lat_100s, long_100s);", este exemplo envia os dados do GPS para o Actoboard.
Receba os dados:
Depois de configurar suas fontes de dados em relação ao seu módulo Sigfox, você precisa configurar o formato de dados para receber os dados de seu código. Para o mesmo exemplo anterior (GPS), você precisa definir o formato de dados assim: "lat_deg:: uint: 8 long_deg:: uint: 8 lat_10s:: uint: 8 long_10s:: uint: 8 lat_100s:: uint: 8 long_100s:: uint: 8 ".
Tenha cuidado com o tipo e o número de bits, você precisa ter exatamente o mesmo comprimento. Portanto, recomendo que você lance seus dados em seu código assim: "lat_deg = (int8_t) lat_deg;".
Tenha cuidado também com o número de dígitos, neste exemplo nós apenas transmitimos dados com 2 dígitos no máximo. Mas se você quiser transferir dados maiores como "% 04X", você deve saber que o Actoboard irá inverter o dígito. Por exemplo, se você transmitir 0x3040, Actoboard entenderá 0x4030. Portanto, você deve inverter o dígito antes de enviar um formato de dados que exceda 2 dígitos.
Editar painel:
Para editar seus dados em um Dashboard no Actoboard, basta adicionar um widget. Existe uma lista de widget, você deve escolher aquele que melhor corresponda ao seu sistema. E depois você só tem que escolher quais dados vão preencher qual widget.
Transmitir para nodered:
Para transferir todos os dados que você recebe no Actoboard para nodered via URL, você apenas tem que preencher a caixa "forwarding url" em suas configurações com o URL do projeto nodered. Por exemplo, preenchemos a caixa com "https://noderedprojet.mybluemix.net/projet".
Etapa 5: Base de dados
Bluemix
- Acenou:
- Receba o formulário de dados Actoboard
Para obter o formulário de dados Actoboard, você precisa adicionar uma entrada "websocket" que você tem que configurar o método por "POST" e especificar sua URL (exemplo na foto).
Formatando dados
Você precisa extrair os dados que deseja adicionar em seu banco de dados (cloudant) e formatá-los. para isso, você deve adicionar um bloco de "funções". Veja a foto em anexo para entender como fazer isso.
Você pode adicionar coisas geográficas em um mapa, por exemplo, temos uma função que adiciona um ponto com a coordenada GPS em um mapa e os vincula. Usamos esta função para criar a corrida e depois, trocamos a outra função que vai criar o polígono ao redor do ponto se você checar um RFID TAG.
Enviar para nuvem
Após a formatação de seus dados, você precisa enviá-los para seu Cloudant DataBase. Para isso, deve-se adicionar um bloco de armazenamento "cloudant" e especificar as configurações como o nome do seu DataBase, a operação "inserir" veja nosso exemplo em anexo.
Não se esqueça de "implantar" seu nodered para que seu sistema funcione.
Nublado:
Em seu banco de dados cloudant, você agora pode ver todos os dados que você enviou com o sigfox e formatação em nó vermelho. Você pode escolher quais informações deseja ver como "data, dispositivo, TAG RFID, GPS".
E você pode visualizar as coisas geomtricas que você criou na função nodered no menu "Índices geoespaciais gps"
Etapa 6: Demonstração
Para resumir, tínhamos quatro Interfaces Homem-Máquina controladas por quatro botões.
A interface básica indica a temperatura, a umidade, o número da etiqueta, um cronômetro e a direção magnética.
Em um dos botões de ação, você encontrará uma bússola de interface real. Um círculo será desenhado na tela com a direção bem posicionada.
Em outra ação de botão, você enviará uma mensagem SOS que enviará sua localização para a base de dados. Além disso, você ouvirá uma mensagem SOS em código morse.
Além disso, na última ação do botão, você ativará a etiqueta RFID. Depois disso, você tem cinco segundos para marcar seu ponto de passagem. Então você ouvirá um bipe. Esta ação aumenta um contador no display e envia a tag com o tempo em nosso banco de dados. Finalmente, todas as tags desenharão o passeio em um mapa.
A automomia do nosso relógio é de cerca de 4h30 (cerca de 660mA / h). Depende do número da etiqueta verificada.
Para concluir após a corrida, você encontrará todas as ações do corredor em nosso bluemix de banco de dados.