Collection d’objets communiquants: envoyer des messages depuis plusieurs dispositifs¶
À l’issue de ce tutoriel, vous serez capables de:
- connecter plusieurs dispositifs au Réseau IoT Expérimental de l’Eurométropole de Strasbourg
- envoyer des messages depuis plusieurs dispositifs
- consulter les derniers messages envoyés par plusieurs dispositifs
Ce tutoriel présuppose que vous avez déjà suivi le tutoriel “Hello world!” : Se connecter au réseau LoRaWAN et envoyer son premier message.
Matériel¶
Ce tutoriel est réalisé avec un LoPy commercialisé par Pycom
Le code du tutoriel peut être directement chargé et exécuté sur le LoPy
à l’aide du plugin Pymakr disponible pour plusieurs éditeurs Python
(dont Atom) :
Se connecter au réseau¶
La procédure pour connecter au réseau plusieurs dispositifs est la même que pour un seul, à la différence que chaque dispositif doit employer une configuration différente.
app_eui = binascii.unhexlify('5F554E5F4555495F')
app_key = binascii.unhexlify('4F4E455F4170705F4B45595F554E5F31')
app_eui = binascii.unhexlify('444555585F455549')
app_key = binascii.unhexlify('54574F5F4170705F4B65795F44455558')
Le reste du code est identique.
Émettre les messages¶
De la même manière, chaque dispositif va envoyer son propre message.
out.send("Castor")
out.send("Pollux")
Consulter les messages¶
Une fois les messages envoyés, on peut se rendre sur l’interface Wavebricks et consulter le contenu des derniers messages envoyés par les dispositifs.
Code complet¶
from network import LoRa
import socket
import time
import binascii
# use the LoRaWAN stack
lora = LoRa(mode=LoRa.LORAWAN)
app_eui = binascii.unhexlify('5F554E5F4555495F')
app_key = binascii.unhexlify('4F4E455F4170705F4B45595F554E5F31')
# join by OTAA
lora.join(activation=LoRa.OTAA, auth=(app_eui, app_key), timeout=0)
# wait for network to accept OTAA
while not lora.has_joined():
time.sleep(2.5)
# socket setup
out = socket.socket(socket.AF_LORA, socket.SOCK_RAW)
out.setsockopt(socket.SOL_LORA, socket.SO_DR, 5)
# send your first data!
out.send("Castor")
from network import LoRa
import socket
import time
import binascii
# use the LoRaWAN stack
lora = LoRa(mode=LoRa.LORAWAN)
app_eui = binascii.unhexlify('444555585F455549')
app_key = binascii.unhexlify('54574F5F4170705F4B65795F44455558')
# join by OTAA
lora.join(activation=LoRa.OTAA, auth=(app_eui, app_key), timeout=0)
# wait for network to accept OTAA
while not lora.has_joined():
time.sleep(2.5)
# socket setup
out = socket.socket(socket.AF_LORA, socket.SOCK_RAW)
out.setsockopt(socket.SOL_LORA, socket.SO_DR, 5)
# send your first data!
out.send("Pollux")