|
Capteur Cooper V3.2 - Medialab_ LPWAN: Capteur ultrasonique Lora pour mesurer le niveau d'eau du ruisseau de San Miguel
Alimenté par
En l'honneur de Martin Cooper, Princesa de Asturias Award 2009, et Arlene Harris et leur vision de l'IOP, l'Internet des gens, dans Medialab_ lpwan, nous voulions développer un dispositif IoT qui pourrait améliorer la qualité de l'école polytechnique d'ingénierie de Gijón. En conséquence, l'idée du capteur Cooper est venue en tant que dispositif LORA, synchronisable avec le réseau de choses, qui pourrait être à mesurer le niveau d'eau du ruisseau de San Miguel sans avoir besoin de manteau.

Avec ces capteurs, l'objectif est de surveiller la possibilité d'une inondation dans le bâtiment principal pendant la saison des fortes pluies. Plus précisément, en 2018, une inondation majeure a eu lieu en train de tourner inutile de nombreux équipements coûteux des étages inférieurs qui ont été utilisés par les étudiants pendant les pratiques de laboratoire de nombreux subJetcs:



Dans ce dépôt, vous trouverez tous les fichiers et guides d'enseignement nécessaires pour bien comprendre et même prendre la liberté créative pour améliorer ce projet. Les dossiers et les fichiers ont reçu un nom auto-explicite pour rendre la navigation plus intuive.
Caractéristiques principales ↩️
Développé à l'aide de Lilygo Lora32 OLED V2.1_1.6 (carte basée sur ESP32 avec des capacités LORA intégrées qui prennent en charge la recharge solaire et la gestion des batteries)

Modifications effectuées pour JSN-SR04T (capteur de distance à ultrasons)

Avertissement
Ce capteur est extrêmement sensible aux perturbations physiques. Assurez-vous de l'aligner parfaitement perpendiculairement à la surface où le faisceau à ultrasons rebondit et aussi l'esprit ayant une vision directe
Implémentation de taux de transmission de données dynamiques: Envoyer l'intervalle modifie dynamiquement sa valeur entre 20 et 40 minutes en fonction de l'écart typique par rapport aux 5 dernières distances envoyées au réseau Things (par OTAA; File payload_formatter.json est une suggestion sur la façon de décoder les octets envoyés)

PCB personnalisé

Conseil
Envisagez de souder les connecteurs de broches féminins afin que les composants électroniques puissent simplement être branchés et débranchés si une réparation doit être effectuée
Logement personnalisé pour s'adapter à tous les éléments de la manière la plus efficace (conteneur + porte-panneau solaire + protecteur USB)



Exemple d'assemblage:

Avertissement
Un filament d'impression PETG 3D de couleur claire est recommandé pour survivre au rayonnement solaire et aux déformations plastiques. Un joint torique est également un bon choix pour réparer et stabiliser le capteur à l'intérieur de la cloche. Quatre vis M3 sont nécessaires pour fixer l'assemblage
La liste suivante énumère toutes les tâches impliquées dans le processus de recherche de ce projet et si elles ont été strictement terminées:
- Some pins are conflictive due to poor manufacturer documentation, so testing is still being
- carried out Compréhension complète du mode de travail du capteur et des modes alternatifs
Implémentation du code du capteur
Implémentation du code LORA
Implémentation du code électrique faible
Composants matériels à faible puissance
- 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 
Schéma électrique avec le transistor
- As low power hardware has not been fully implemented, PCB has to wait Modélisation 3D du boîtier
Application de visualisation des données
Liste des composants ↩️
| Composant | Modèle |
|---|---|
| Module de développement | Lilygo lora32 OLED V2.1_1.6 |
| Capteur de distance | JSN-SR04T |
| MOSFET NACHEL | IRF540N |
| Résistance | 2k2 |
| Batterie | 18650 |
| Panneau solaire | SYP-S0606 |
| PCB | Personnalisé (fichier inclus) |
| Logement | Personnalisé (fichier inclus) |
Liste des connexions ↩️
| JSN-SR04T | Transistor | Résistance | Bouclier 18650 | SYP-S0606 | Lygo |
|---|---|---|---|---|---|
trigger | - | - | - | - | 13 |
echo | - | - | - | - | 12 |
5v | S | - | - | - | - |
GND | - | indifferent | - | - | GND |
| - | G | indifferent | - | - | 15 |
| - | D | - | - | - | 5V |
| - | - | - | USB-In | USB-Out | - |
| - | - | - | USB-Out | - | USB-In |
Esquissé, il a l'air de la manière suivante:

Prudence
Le modèle de carte utilisé dans l'esquisse ci-dessus est un TTGO T3 v1.3, mais les numéros de broches correspondent à ceux du v2.1_1.6
Organigramme (simplifié!) ↩️
graphique TD;
A [allumer] -> | 1 | B (Réveillez-vous si dans un sommeil profond)
B -> | 2 | C (Obtenez la distance et la mesure de la batterie)
C -> | 3 | D (envoyer des octets à TTN)
D -> | 4 | E (taux de transmission des données de temps)
E -> | 5 | F (aller en profondeur)
F -> | 6 | B
Dans cette section, une brève description de la façon dont le code est distribué entre les fichiers dans medialablpwan/lorawaterlevelmonitoring/main/ , où le code est disponible et prêt à flasher ou à modifier, est donné: est donné:
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
*/Une analyse plus approfondie est donnée dans le code lui-même car les commentaires expliquent ce que fait chaque fonction.
Conseil
Les fichiers les plus importants à modifier sont sensor.ino , où tout capteur peut être implémenté, et configuration.h , où les macros des périphériques sont déclarés
Prudence
Un code supplémentaire peut être nécessaire si la mise en œuvre d'E / S I2C. Les fonctions pour les faire fonctionner figurent dans le projet original dans TTGO-PAXCOUNTER-LoRa32-V2.1-TTN/main/main.ino
Library Lilygo Board (Collez le lien sur l'onglet Preferences et choisissez TTGO LoRa32 OLED comme Board dans Arduino IDE): https://github.com/xinyuan-lilygo/lilygo-lon-series/blob/master/boards/t3_s3_v1_x.json
LMIC (Copiez le contenu du fichier de projet main/lmic_project_config.h au fichier de bibliothèque arduino-lmic/project_config/lmic_project_config.h et Décomment La fréquence appropriée pour votre région. Le croquis regarde toujours le dossier de la bibliothèque pour la région configurée!)
QuickMedianLib (pour obtenir des valeurs de distance plus solides): https://github.com/luisllamasbinaburo/arduino-quickmedian
ESP Sleep (pour réduire la consommation de batteries): https://github.com/pycom/pycom-esp-idf/blob/master/components/esp32/include/esp_sleep.h
Note
D'autres bibliothèques, comme la bibliothèque SPI, sont facilement téléchargeables à partir d'Arduino IDE
Expérience de déploiement ↩️
La première unité a été déployée près de la Polytechnic School of Engineering of Gijón:



http://4f566df1fed52c6e7fd5f661f64ae3eb.balena-devices.com:8080/d/vjhqnczgz/sensores-jsn-sr04t-arroyo-de---miguel?from=Now-24h&orgid=1&to=&refresh=1m
Licence ↩️
Ce projet est concédé sous licence GPL-3.0. Contient du code de rwanrooy / ttgo-paxcounter-lora32-v2.1-ttn
Contact ↩️
Important
Nous allons bien répondre aux doutes et lire des suggestions:
Plus d'informations sur nos activités:
Auteurs: Daniel Rodríguez Moya, Óscar Gijón, Ramón Rubio et Medialab_ Lpwan Workgroup
Des instructions sur la façon de déployer des panneaux Grafana sont données sur le Repo medialablpwan/documentacion . ↩