LoPy – LoRa

Soweit ich weiß gibt es kein LoRa-Gateway, mit dem ich die Tests machen kann. Und selbst wenn es eines gäbe, wüsste ich nicht, wie ich damit eine Verbindung herstellen könnte. Doch es ist möglich, zwei LoPy-Module miteinander sprechen zu lassen, ganz ohne Gateway. Also probierte ich das aus. Gebraucht wurden also zwei LoPy-Module…



Nachdem bei beiden Boards neue Firmware aufgespielt war, schob ich folgenden Code in die Datei main.py von Board A (mit Hilfe eines FTP-Clients):
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)
Auf diese Weise blinkt es bei Board A alle fünf Sekunden rot. Beim Empfang des Strings „Ping“ wird es auch grün blinken.
Bei Board B habe ich in main.py den folgenden Code stehen, der es dazu veranlasst, alle fünf Sekunden den String „Ping“ zu senden und grün zu blinken. Einlaufende Daten werden nicht ausgewertet.
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)
Dieser Test funktionierte prima. Da hier keine Adressierung beim Senden verwendet wird, kann man leicht noch weitere LoPy-Boards zum Netzwerk hinzufügen.