LoPy - LoRa

Autant que je sache, il n'y a pas de passerelle LoRa à l’heure où je rédige ce banc d'essai, même s'il y en avait une, je ne saurais pas comment m'y connecter, mais il est possible de faire communiquer deux modules LoPy entre eux sans avoir besoin d'une passerelle, alors nous allons essayer ça à la place. Évidemment, il vous faudra deux modules LoPy…



Après avoir mis à jour le microprogramme des cartes, j'ai ajouté le code ci-dessous dans main.py de la carte A (avec mon client FTP) :
from network import LoRa
import socket
import time
import pycom

lora = LoRa(mode=LoRa.LORA, frequency=863000000)
s = socket.socket(socket.AF_LORA, socket.SOCK_RAW)
s.setblocking(False)

pycom.heartbeat(False)

while True:
	if s.recv(64) == b'Ping':
		pycom.rgbled(0x007f00) # green
		time.sleep(0.05)
		pycom.rgbled(0) # off
		s.send('Pong')
	time.sleep(2.5)
	pycom.rgbled(0x7f0000) # red
	time.sleep(0.05)
	pycom.rgbled(0) # off
	time.sleep(2.5)
De cette façon, la carte A envoie un flash rouge toutes les cinq secondes. À réception du mot Ping, elle envoie un flash vert.
Sur la carte B, j'ai ajouté le code ci-dessous dans main.py pour qu'elle envoie le mot Ping toutes les cinq secondes et envoie un flash vert. Il n'y a aucun contrôle des données reçues.
from network import LoRa
import socket
import time
import pycom

lora = LoRa(mode=LoRa.LORA, frequency=863000000)
s = socket.socket(socket.AF_LORA, socket.SOCK_RAW)
s.setblocking(False)

pycom.heartbeat(False)

while True:
	s.send('Ping')
	pycom.rgbled(0x007f00) # green
	time.sleep(0.05)
	pycom.rgbled(0x000000) # off
	time.sleep(5)
Cela a bien fonctionné. Étant donné qu'apparemment aucun adressage n'est mis en œuvre, il s'agit sans doute d'un envoi de type diffusion et il devrait être possible d'ajouter d'autres cartes LoPy au réseau.