Table des matières:
2025 Auteur: John Day | [email protected]. Dernière modifié: 2025-01-23 14:45
Lora a été très populaire ces dernières années. Le module de communication sans fil utilisant cette technologie est généralement bon marché (utilisant un spectre libre), de petite taille, économe en énergie et a une longue distance de communication, et est principalement utilisé pour la communication mutuelle entre les terminaux IoT ou l'échange de données avec un hôte. Il existe de nombreux modules LoRa sur le marché, comme le RFM96W, qui est équipé de la puce SX1278 (compatible), qui est très petite. Je l'utilise avec MakePython ESP32 comme passerelle.
Ensuite, j'utiliserai deux nœuds LoRa pour envoyer les données de température et d'humidité à la passerelle, puis je les téléchargerai sur Internet via la passerelle. Ici, vous apprendrez à télécharger les données distantes de plusieurs nœuds LoRa vers le cloud via la passerelle.
Étape 1: Fournitures
1 * MakePython ESP32
MakePython ESP32 est une carte ESP32 avec un écran OLED SSD1306 intégré.
2 * Radio Maduino LoRa
Maduino Lora Radio est une solution IoT (Internet des objets) basée sur le MCU Atmega328P et le module Lora d'Atmel. Cela peut être un véritable projet pour les projets IoT (en particulier les applications à longue portée et à faible puissance)
2 * DHT11
1 * faire Python Lora
Étape 2: nœud LoRa
Voici le schéma de Maduino Lora Radio.
Module radio Arduino Lora en tant que nœud LoRa, nous l'utilisons pour envoyer des données de température et d'humidité à la passerelle.
(Ce WiKi explique comment utiliser Maduino Lora Radio et envoyer et recevoir des données)
Étape 3: Connexion du nœud et du capteur
Le VCC et GND de DHT11 sont connectés à 3V3 et GND de Maduino, et la broche DATA est connectée à D4 de Maduino.
Le nœud 0 est dans le parc, le nœud 1 est dans l'immeuble de bureaux près de l'entreprise, ils sont distants d'environ 2 kilomètres, puis je reçois leurs données de température et d'humidité à la maison
Étape 4: envoyer des données à la passerelle
Téléchargez TransmitterDHT11.ino, ouvrez-le sur Arduino IDE.
Lors de l'ajout d'un nœud, modifiez le numéro de nœud en conséquence. Par exemple, utilisez maintenant 2 nœuds, le premier nœud pour modifier le nodenum = 0 pour exécuter le programme, le deuxième nœud pour modifier le nodenum = 1 pour exécuter le programme, et ainsi de suite, vous pouvez ajouter plus de nœuds.
int16_t numéro_paquet = 0; // compteur de paquets, on incrémente par xmission
int16_t nodenum = 0; //Modifier le numéro de nœud
Collectez des données et imprimez-les
String message ="#"+(String)nodenum+" Humidité:"+(String)humidité+"% Température:"+(String)temperature+"C"+" num:"+(String)packetnum;Serial.println(message); numpaquet++;
Envoyer un message à rf95_server
uint8_t radioPacket[message.length()+1];
message.toCharArray(radioPacket, message.length()+1); radioPacket[message.length()+1]= '\0'; rf95.send((uint8_t *)radioPacket, message.length()+1);
Ouvrez le moniteur série, vous pouvez voir les données de température et d'humidité collectées et les envoyer.
#0 Humidité:6.00% Température:27.00C num:0
Transmettre: Envoi vers rf95_server Envoi… En attente de la fin du paquet… En attente de réponse… Pas de réponse, y a-t-il un écouteur ?
Mettez cela de côté, nous devons maintenant créer la passerelle Lora.
Étape 5: Créer Python Lora
Il s'agit de la broche correspondante du module RFM96W et MakePython ESP32. Afin de faciliter la connexion avec MakePython ESP32, j'ai réalisé un circuit imprimé avec le module RFM96W. Oui, il y a deux RFM96W dessus, qui peuvent envoyer et recevoir des données en même temps, mais maintenant je n'en ai besoin que d'un.
Étape 6: Passerelle LoRaWAN
LoRaWAN est un réseau étendu à faible consommation basé sur LoRa, qui peut en fournir un: faible consommation d'énergie, évolutivité, haute qualité de service et réseau sans fil longue distance sûr.
Assemblez MakePython Lora et ESP32 pour créer une passerelle pouvant recevoir des données distantes et les télécharger sur Internet.
Étape 7: Télécharger le code
Téléchargez tous les fichiers « xxx.py » de WiKi et téléchargez-les sur ESP32.
Ouvrez le fichier LoRaDuplexCallback.py, vous devez effectuer quelques ajustements pour que votre ESP32 puisse se connecter au réseau et télécharger des données sur le serveur.
Modifiez l'API_KEY que vous avez obtenu dans ThingSpeak (je vous expliquerai comment l'obtenir plus tard)
#https://thingspeak.com/channels/1047479
API_KEY='UBHIRHVV9THUJVUI'
Modifier SSID et PSW pour connecter WiFi
ssid = "Makerfabs"
pswd = "20160704"
Étape 8: Recevoir des données
Recherchez la fonction on_receive (lora, payload) dans le fichier LoRaDuplexCallback.py, où vous pouvez indiquer à ESP32 quoi faire après avoir reçu les données. Le code suivant analyse et affiche les données de température et d'humidité reçues.
def on_receive(lora, charge utile):
lora.blink_led() rssi = lora.packetRssi() essayez: length=len(payload)-1 myStr=str((payload[4:length]), 'utf-8') length1=myStr.find(':') myNum1=myStr[(length1+1):(length1+6)] myNum2=myStr[(length1+20):(length1+25)] print("*** Message reçu ***\n{}". format(payload)) si config_lora. IS_LORA_OLED: lora.show_packet(("{}".format(payload[4:length])), rssi) si wlan.isconnected(): global msgCount print('Envoi vers le réseau…') node = int(str(payload[5:6], 'utf-8')) si node == 0: URL="https://api.thingspeak.com/update?api_key="+API_KEY+"&field1= "+myNum1+"&field2="+myNum2 res=urequests.get(URL) print(res.text) elif node == 1: URL="https://api.thingspeak.com/update?api_key="+API_KEY+" &field3="+myNum1+"&field4="+myNum2 res=urequests.get(URL) print(res.text) sauf exception comme e: print(e) print("avec RSSI {}\n".format(rssi))
En jugeant le nombre pour distinguer les nœuds et en téléchargeant les données sur Internet via l'URL, nous pouvons surveiller les données distantes de différents nœuds à tout moment. Vous pouvez ajouter plus de nœuds et apporter des modifications similaires au code.
si nœud == 0:
URL="https://api.thingspeak.com/update?api_key="+API_KEY+"&field1="+myNum1+"&field2="+myNum2 res=urequests.get(URL) print(res.text)
Étape 9: Utiliser ThingSpeak IoT
Pas:
- Créez un compte sur https://thingspeak.com/. Si vous en avez déjà un, connectez-vous directement.
- Cliquez sur Nouveau canal pour créer un nouveau canal ThingSpeak.
- Saisissez le nom, la description, sélectionnez le champ 1. Enregistrez ensuite le canal en bas.
- Cliquez sur l'option Clés API, copiez la clé API, nous l'utiliserons dans le programme.
Étape 10: Résultat
Vous pouvez voir les données du nœud 0 et du nœud 1 à l'écran, bien qu'ils soient distants de 2 kilomètres.
Connectez-vous à votre compte ThingSpeak et cliquez sur le canal que vous avez créé, vous pouvez voir les données de température et d'humidité téléchargées.
Le graphique field1 et les graphiques field2 sont les données d'humidité et de température du nœud Lora 0, et le graphique field3 et le graphique field4 sont les données d'humidité et de température du nœud Lora 1.
Conseillé:
MuMo - Passerelle LoRa : 25 étapes (avec photos)
MuMo - LoRa Gateway : ### UPDATE 10-03-2021 // les dernières informations / mises à jour seront disponibles sur la page github : https://github.com/MoMu-Antwerp/MuMoWhat is MuMo?MuMo est une collaboration entre développement de produits (un département de l'Université d'Anvers) sous le
Comment créer une domotique basée sur l'IoT avec le relais de contrôle des capteurs NodeMCU : 14 étapes (avec photos)
Comment faire de la domotique basée sur l'IoT avec le relais de contrôle des capteurs NodeMCU : Dans ce projet basé sur l'IoT, j'ai réalisé la domotique avec le module de relais de contrôle Blynk et NodeMCU avec retour en temps réel. En mode manuel, ce module de relais peut être contrôlé à partir d'un mobile ou d'un smartphone et, commutateur manuel. En mode automatique, cette smar
Passerelle série UDP/IP pour Arduino basée sur ESP8266 Shield : 8 étapes
Passerelle série UDP/IP pour Arduino basée sur ESP8266 Shield : j'ai déjà publié en 2016 cette instructable "Comment créer votre propre passerelle Wifi pour connecter votre Arduino au réseau IP". Depuis que j'ai apporté quelques améliorations au code et que j'utilise toujours cette solution. Néanmoins, il existe maintenant des boucliers ESP8266 t
Gestion d'installation solaire basée sur le poids avec ESP32 : 7 étapes (avec photos)
Gestion solaire des plantes basée sur le poids avec ESP32: Cultiver des plantes est amusant et arroser et en prendre soin n'est pas vraiment un problème. Les applications de microcontrôleur pour surveiller leur santé sont partout sur Internet et l'inspiration pour leur conception vient de la nature statique de la plante et de la facilité de surveillance
Une solution de vision abordable avec bras robotique basée sur Arduino : 19 étapes (avec photos)
Une solution de vision abordable avec bras robotique basée sur Arduino : lorsque nous parlons de vision industrielle, cela nous semble toujours tellement inaccessible. Alors que nous avons fait une démo de vision open source qui serait super facile à faire pour tout le monde. Dans cette vidéo, avec la caméra OpenMV, peu importe où se trouve le cube rouge, le robot est