|
Sensor Cooper v3.2 - medialab_ lpwan: Lora sensor ultrassônico para medir o nível de água de San Miguel's Creek
Distribuído por
Em homenagem a Martin Cooper, prêmio Princesa de Asturias em 2009 e Arlene Harris e sua visão da PIO, a Internet das pessoas, em medialab_ lpwan, queríamos desenvolver um dispositivo de IoT que pudesse melhorar a qualidade da Escola de Engenharia Politécnica de Gijón. Como resultado, a idéia do sensor Cooper entrou como um dispositivo Lora, sincronizável com a rede de coisas, que poderia ser deixada medindo o nível da água do riacho de San Miguel sem nenhuma necessidade de mantanância.

Com esses sensores, o objetivo é monitorar a possibilidade de uma inundação no prédio principal durante a estação das chuvas pesadas. Especificamente, em 2018, uma grande inundação ocorreu, tornando -se inúteis muitos equipamentos caros dos andares inferiores que foram usados pelos alunos durante as práticas de laboratório de muitos subjetcs:



Neste repositório, você encontrará todos os arquivos e guias de ensino necessários para entender completamente e até tomar a liberdade criativa para melhorar esse projeto. Pastas e arquivos receberam um nome auto-explicativo para tornar a navegação mais intuituve.
Recursos principais ↩️
Desenvolvido usando Lilygo Lora32 OLED v2.1_1.6 (placa baseada em ESP32 com recursos internos da LORA que suportam recarga solar e gerenciamento de bateria)

Alterações feitas para JSN-SR04T (sensor de distância ultrassônica)

Aviso
Este sensor é extremamente sensível a distúrbios físicos. Certifique -se de alinhá -lo perfeitamente perpendicularmente à superfície onde o feixe ultrassônico salta e também se importa com a visão direta
Implementação da taxa de transmissão de dados dinâmicos: o envio do intervalo altera dinamicamente seu valor entre 20 e 40 minutos, dependendo do desvio típico das 5 últimas distâncias enviadas para a rede de coisas (por OTAA; arquivo payload_formatter.json é uma sugestão sobre como decodificar os bytes enviados)

PCB personalizado

Dica
Considere soldando conectores de pinos femininos para que os componentes eletrônicos possam simplesmente ser conectados e desconectados se um reparo precisar ser feito
Habitação personalizada para ajustar todos os elementos da maneira mais eficiente (contêiner + suporte do painel solar + protetor USB)



Exemplo de montagem:

Aviso
Recomenda -se o filamento de impressão 3D de cor PETG transparente para sobreviver à radiação solar e deformações plásticas. Um anel de O também é uma boa opção para consertar e estabilizar o sensor dentro da campainha. Quatro parafusos M3 são necessários para consertar o conjunto
A lista a seguir enumara todas as tarefas envolvidas no processo de pesquisa deste projeto e se tiverem sido estritamente concluídas:
- Some pins are conflictive due to poor manufacturer documentation, so testing is still being
- carried out Compreensão completa do modo de trabalho do sensor e modos alternativos
Implementação do código do sensor
Implementação de código Lora
Baixa implementação do código de energia
Componentes de hardware de baixa potência
- A transistor is being tried to be implemented so the sensor can be powered-on from the
- board's 5V pin and powered-off when going to deep slee, but it is getting tricky 
Esquema elétrico com o transistor
- As low power hardware has not been fully implemented, PCB has to wait Modelagem 3D do invólucro
Aplicativo de visualização de dados
Lista de componentes ↩️
| Componente | Modelo |
|---|---|
| Módulo dev | Lilygo Lora32 OLED v2.1_1.6 |
| Sensor de distância | JSN-SR04T |
| N-Channel MOSFET | IRF540N |
| Resistor | 2K2 |
| Bateria | 18650 |
| Painel solar | SYP-S0606 |
| PCB | Custom (arquivo incluído) |
| Habitação | Custom (arquivo incluído) |
Lista de conexões ↩️
| JSN-SR04T | Transistor | Resistor | 18650 escudo | SYP-S0606 | Lilygo |
|---|---|---|---|---|---|
trigger | - | - | - | - | 13 |
echo | - | - | - | - | 12 |
5v | S | - | - | - | - |
GND | - | indifferent | - | - | GND |
| - | G | indifferent | - | - | 15 |
| - | D | - | - | - | 5V |
| - | - | - | USB-In | USB-Out | - |
| - | - | - | USB-Out | - | USB-In |
Esboçado parece da seguinte maneira:

Cuidado
O modelo de placa usado no esboço acima é um TTGO T3 V1.3, mas os números de pinos correspondem aos da v2.1_1.6
FlowChart (simplificado!) ↩️
Gráfico TD;
A [LIGN ON] -> | 1 | B (acorde se estiver no sono profundo)
B -> | 2 | C (obtenha distância e medição da bateria)
C -> | 3 | D (envie bytes para TTN)
D -> | 4 | E (taxa de transmissão de dados do tempo)
E -> | 5 | F (vá para sono profundo)
F -> | 6 | B
Nesta seção, é fornecida uma breve descrição sobre como o código é distribuído entre os arquivos em medialablpwan/lorawaterlevelmonitoring/main/ , onde o código está disponível e pronto para piscar ou editar, é fornecido:
main.ino /*
Definition of global functions
Variables to be stored in the RTC memory
'setup()' and 'loop()' functions
*/sensor.ino /*
Functions and variables needed to make a sensor work
*/ddc.ino /*
Functions and variables for the implementation of the dynamic data transfer rate
*/sleep.ino /*
Functions to activate ESP32's deep sleep mode
*/ttn.ino /*
Functions from LMIC library
*/configuration.h /*
Sensor macros and boolean toggles
*/credentials.h /*
OTAA keys for TTN synchronization
*/lmic_project_config.h /*
LoRa frequency band and radio chip selector
*/Uma análise mais detalhada é fornecida no próprio código, pois os comentários explicam o que cada função faz.
Dica
Os arquivos mais importantes para editar são sensor.ino , onde qualquer sensor pode ser implementado e configuration.h , onde as macros dos periféricas são declaradas
Cuidado
Código adicional pode ser necessário se a implementação da I/S2C. As funções para fazê-los funcionar estão no projeto original em TTGO-PAXCOUNTER-LoRa32-V2.1-TTN/main/main.ino
Lilygo Board Library (Cole o link na guia Preferences e escolha TTGO LoRa32 OLED como Board no Arduino IDE): https://github.com/xinyuan-lilygo/lilygo-lora-series/blob/master/boards/t3_s3_v1_x.json
Lmic (copie o conteúdo do arquivo de projeto main/lmic_project_config.h para o arquivo da biblioteca arduino-lmic/project_config/lmic_project_config.h e uncomment a frequência adequada para a sua região. O esboço sempre procure a pasta da biblioteca para a região configurada!): Ht ht.
QuickMedianLib (para obter mais valores de distância mais sólidos): https://github.com/luisllamasbinaburo/arduino-quickmedian
Sono ESP (para reduzir o consumo de bateria): https://github.com/pycom/pycom-esp-idf/blob/master/components/esp32/include/esp_sleep.h
Observação
Outras bibliotecas, como a Biblioteca SPI, são facilmente downloads do Arduino IDE
Experimento de implantação ↩️
A primeira unidade foi implantada perto da Escola Politécnica de Engenharia de Gijón:



http://4f566df1fed52c6e7fd5f661f64ae3eb.balena-devices.com:8080/d/vJhQNCZgz/sensores-jsn-sr04t-arroyo-de-san-miguel?from=now-24h&orgId=1&to=now&refresh=1m
Licença ↩️
Este projeto está licenciado sob a licença GPL-3.0. Contém código de Rwanrooy/TTGO-PAXCONTER-LORA32-V2.1-TTN
Contate ↩️
Importante
Vamos responder a dúvidas e ler sugestões:
Mais informações sobre nossas atividades:
Autores: Daniel Rodríguez Moya, Óscar Gijón, Ramón Rubio e Medialab_ Lpwan WorkGroup
Instruções sobre como implantar painéis de grafana são fornecidas no repo medialablpwan/documentacion . ↩