LoRaWAN met Raspberry Pi Zero
Als je een internet of things toepassing wilt maken met een Raspberry Pi Zero W en wilt aansluiten aan KPN LoRa of The Things Network, dan heb je niet al te veel keus in kant-en-klare pHATs. Eén van de weinige opties die ik tegenkwam is de Uputronics Raspberry Pi Zero LoRa(tm) Expansion Board, een niet al te duur bordje ter grootte van een Raspberry Pi Zero, voorzien van een HopeRF RFM96W (een Semtech SX1276 kloonn) zendontvanger-module.

De HopeRF RFM96W heeft de volgende specificaties (zie datasheet):
- SPI interface
- LoRa modem
- Ingebouwde temperatuursensor en batterijvoltagemeting
- Frequentiebereik 137 MHz - 1020 MHz (de RMF96/97/98 verschillen hierin)
- Spreading factor 6 - 12
- Bit rate 0,018 - 37,5 kbps
Het Uputronics bordje heeft een vaste SMA antenneaansluiting, geschikt voor een schroefbare antenne. Ik had persoonlijk liever een kleine U.FL printconnector gezien, zodat je wat flexibeler bent in de montage van de antenne, maar voor experimenteerdoeleinden kan dit geen kwaad.
Om te verbinden met een LoRaWAN gateway zijn de volgende stappen nodig:
- Activeren van de SPI interface op de Raspberry Pi
- Python bibliotheek voor de SPI interface
- Python bibliotheek voor gebruik met de RFM96W module
- Python bibliotheek om te verbinden met de LoRaWAN gateway
- Instellingen op het LoRaWAN netwerk (APP ID, etc)
- Toepassing die data genereert om te versturen naar de gateway
Da's nog wel veel om helemaal vanaf nul te ontwikkelen. Maar misschien hoeft dat ook niet. Er zijn wat modules en ander voorwerk beschikbaar die mogelijk gaan helpen:
- De spidev module verzorgt de SPI communicatie met randapparaten
- Er is een RFM69 Python bibliotheek die mogelijk te porteren is naar gebruik met de RFM96
- pyLoRa voor RFM95 kan bruikbaar zijn
- Adafruit heeft verschillende toepassingen met de LoRa chips
- Een generieke opzet 'RadioHead' ter ondersteuning van verschillende modules van Hallard
- Getting started op hackster.io die gebruik maakt van de RadioHead opzet
- Een minimale LoRa implementatie met de SX127x modules
Ik ben op zoek naar een Python basis die gebruikt kan worden voor onderwijsdoeleinden. Dat betekent ondermeer inzicht in alle code, zowel voor het LoRa deel als het LoRaWAN deel.