LoPy - LoRa

Voor zover ik weet is hier geen LoRa-gateway beschikbaar. En al zou die er zijn, dan zou ik niet weten, hoe ik er verbinding mee zou moeten maken. Maar we kunnen wel twee LoPy-modules met elkaar laten praten zonder tussenkomst van een gateway, dus laten we dat eens proberen. U hebt daar natuurlijk twee LoPy-modules voor nodig…



Eerst heb ik de nieuwste firmware op beide kaarten geflasht en daarna de volgende code in het bestand main.py op kaart 'A' gezet (met behulp van mijn FTP-client):
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)
Dit levert op kaart 'A' elke vijf seconden een rode lichtflits op. Als hij het woord ‘Ping’ ontvangt, geeft hij ook een groene flits.
Op kaart B heb ik de onderstaande code in main.py gezet. Hiermee zendt kaart B elke vijf seconden het woord ‘Ping’ en geeft daarbij een groene lichtflits. Hij kijkt niet naar binnenkomende data.
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)
Dit werkte prima. Er komt blijkbaar geen adressering aan te pas, dus het moet wel om een soort broadcasting gaan. Dat zou betekenen dat we nog meer LoPy-kaarten kunnen toevoegen aan dit netwerk.