Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Aan de slag met de RAK 831 Lora Gateway en RPi3

Dit project neemt je mee door alle stappen die nodig zijn om je RAK 831 Lora Gateway-module aan de gang te krijgen met wifi als backhaul.

Verhaal

Inleiding

Deze stap-voor-stap handleiding is bedoeld voor ontwikkelaars die hun eigen lora gateway willen ontwikkelen met behulp van de geweldige RAK831 Lora radio front-end module van RAK Wireless. De gids gaat uit van basiskennis van het Raspberry pi-ecosysteem, de hardware en het bijbehorende Debian-besturingssysteem. De gids veronderstelt ook basiskennis van de GPIO en randapparatuur die aanwezig is op de Raspberry Pi. Dus laten we beginnen:

Wat is LoRA?

LoRa Alliance™-technologie. LoRaWAN™ is een Low Power Wide Area Network (LPWAN)-specificatie die bedoeld is voor draadloze op batterijen werkende dingen in een regionaal, nationaal of wereldwijd netwerk. LoRaWAN richt zich op de belangrijkste vereisten van Internet of Things, zoals veilige bidirectionele communicatie, mobiliteit en lokalisatiediensten.

met dank aan Semtech

Het bovenstaande diagram toont de verschillende delen van de draadloze Lora-architectuur. Enkele van de belangrijke onderdelen worden hieronder in het kort uitgelegd:

Belangrijkste kenmerken van LoRa-technologie en het LoRaWAN-protocol

· GEOLOCATION:Maakt GPS-vrije, energiezuinige tracking-applicaties mogelijk

· LAGE KOSTEN:Verlaagt de kosten op drie manieren:investeringen in infrastructuur, bedrijfskosten en end-node-sensoren

· GESTANDAARDISEERD:verbeterde wereldwijde interoperabiliteit versnelt de acceptatie en uitrol van op LoRaWAN gebaseerde netwerken en IoT-toepassingen

· LAAG VERMOGEN:Protocol speciaal ontworpen voor een laag stroomverbruik, waardoor de levensduur van de batterij tot 20 jaar wordt verlengd

· LANG BEREIK:één basisstation zorgt voor een diepe penetratie in dichtbevolkte stedelijke/binnenregio's, en verbindt landelijke gebieden tot 50 kilometer verder

· VEILIG:geïntegreerde end-to-end AES128-codering

· HOGE CAPACITEIT:ondersteunt miljoenen berichten per basisstation, ideaal voor openbare netwerkoperators die veel klanten bedienen

De RAK 831 is een LorA Radio-frontend; d.w.z. het fungeert als een ontvanger van inkomende lora-datapakketten en stuurt ze door naar een aggregatorbeheersoftware/hardwarehost. Het kan ook LoRA-datapakketten verzenden op basis van het verzoek van de hostkaart. In ons geval is een Raspberry pi 3 het hostbord dat de RAK 831-frontend bestuurt.

De backhaul kiezen

Wat is een backhaul? Backhaul verwijst naar hoe de Raspberry Pi met internet wordt verbonden. Deze handleiding richt zich op het gebruik van Wifi als backhaul, maar u kunt ook Ethernet of 3G/4G gebruiken. Als je Ethernet in de buurt van de gateway hebt, geef dit dan de voorkeur boven wifi of 3G/4G. Dit komt omdat het hebben van een extra radiosignaal in de behuizing ruis zal veroorzaken. De software kan de lawaaierige omgeving aan, dus het is geen groot probleem, maar hoe minder lawaai, hoe beter. U kunt deze keuze combineren met Power-over-Ethernet om de bekabeling tot aan de gateway te minimaliseren.

Als u daarentegen kiest voor WiFi in plaats van Ethernet, probeer dan een dongle met externe antenne te gebruiken en plaats de antenne buiten de behuizing om minder ruis in de doos te hebben.

De hardware instellen:

Voordat we iets aansluiten en inschakelen, laten we de volgende configuraties uitvoeren op de Raspberry Pi en de RAK 831-module:

RASPBERRY PI

1) Pak het raspberry pi 3-bord en maak een 8GB micro-sd-kaart klaar met de raspbian-software. Je kunt zelfs een noobs-sd-kaart kopen met de software vooraf geladen. Volg de instructies hier om het besturingssysteem op de SD-kaart te flashen: https://www.raspberrypi.org/learning/hardware-guide/

2) Sluit de Raspberry Pi aan op een 5v 2amp voeding. DIT IS ERG BELANGRIJK. De lora-module kan een piek van 700 mA trekken tijdens actieve draadloze transacties en heeft daarom een ​​goede power-steen om de raspberry pi van stroom te voorzien

raspberry pi v3

RAK 831:

1) Voordat je het board zelfs maar aanzet, pak je de antennes die in je kit zijn geleverd en sluit je deze aan op de antenneschroefaansluiting. DIT IS ESSENTIEEL.

Raspberry Pi v3, RAK 831 module en een Lora Node

Verbindingsdetails:

Hier is een tabel die laat zien hoe de rak831-module te verbinden met de raspberry pi:

rpi v3 naar rak 831 pin-verbindingDe rak 831 zeefdrukkaart naar de rak 831-pinnen.

rak 831 zeefdrukkaart naar de rak 831-pinnen

Ga voor meer informatie over de Raspberry Pi-pinlay-out naar: https://www.raspberrypi.org/documentation/usage/gpio/ voor details

Opmerkingen:

  • De reset-pin kan worden aangesloten op een van de GPIO's op de raspberry pi 3.
  • Het is essentieel dat u de voedingspinnen correct aansluit om schade aan het RAK 831-bord te voorkomen.

SPI inschakelen:

De SPI-randapparatuur is standaard niet ingeschakeld. Ga als volgt te werk om het in te schakelen.

  • Voer sudo raspi-config uit.
  • Gebruik de pijl-omlaag om 9 geavanceerde opties te selecteren
  • Pijl omlaag naar A6 SPI.
  • Selecteer ja wanneer u wordt gevraagd om SPI in te schakelen ,
  • Selecteer ook ja als er wordt gevraagd naar het automatisch laden van de kernelmodule.
  • Gebruik de pijl naar rechts om de knop  te selecteren.
  • Selecteer ja als er wordt gevraagd om opnieuw op te starten.

Raspi-config voor SPI

Het systeem zal opnieuw opstarten. Als het weer verschijnt, logt u in en voert u de volgende opdracht in

>ls /dev/*spi*

De Pi moet reageren met

/dev/spidev0.0 /dev/spidev0.1

Deze vertegenwoordigen SPI-apparaten op chip die respectievelijk pinnen 0 en 1 inschakelen. Deze pinnen zijn bedraad in de Pi. Normaal gesproken betekent dit dat de interface maximaal twee randapparatuur ondersteunt, maar er zijn gevallen waarin meerdere apparaten in serie kunnen worden geschakeld, waarbij een enkel chip-activeringssignaal wordt gedeeld.

Voorzie het bord van stroom:

Zoals bij alle draadloze projecten, hebben ze meer stroom nodig dan het hostbord kan leveren via de voedingspinnen. De twee onderstaande schema's geven een overzicht van hoe u de RAK 831 en raspberry pi 3 van stroom kunt voorzien.

1) Voorzie de 5v-rail van de Raspberry Pi

2) Voorzie de 5v-rail op de Raspberry Pi en RAK831 afzonderlijk van stroom

Software-installatie:

Laten we op de Raspberry pi de volgende stappen uitvoeren om de essentiële software te installeren:

  • SPI inschakelen:

Gebruik het hulpprogramma raspi-config om SPI in te schakelen ([5] Interfacing-opties -> P4 SPI) en breid ook het bestandssysteem uit ([7] Geavanceerde opties -> A1 Expand bestandssysteem):

$ sudo raspi-config

  • Zorg ervoor dat git is geïnstalleerd

Sudo apt-get update
Sudo apt-get upgrade
Sudo apt-get install git

  • Beheer je wifi-verbinding op de raspberry pi
  • Configureer de wifi-inloggegevens (kijk hier voor meer informatie)

$ sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

En voeg het volgende blok toe aan het einde van het bestand, waarbij u SSID en wachtwoord vervangt zodat ze overeenkomen met uw netwerk:

network={
ssid=“The_SSID_of_your_wifi”
psk=“Your_wifi_password”
}

  • Kloon het installatieprogramma en start de installatie

$ git clone -b spi https://github.com/ttn-zh/ic880a-gateway.git ~/ic880a-gateway
$cd ~/ic880a-gateway
$ sudo ./install.sh spi

  • In de installatiestap wordt u gevraagd of u configuratie op afstand wilt inschakelen. Typ ‘y’ of ‘yes’ en ga verder met de installatie. Aan het begin van de installatie van de opdrachtregel zou het script u de gateway-EUI laten zien die belangrijk is voor de volgende stappen. LET OP !
  • Als je de externe configuratieoptie wilt gebruiken, zorg er dan voor dat je een JSON-bestand hebt gemaakt met de naam gateway-EUI (bijv. B827EBFFFE7B80CD.json) in de Gateway Remote Config-repository hier: https://github.com/ttn -zh/gateway-remote-config. Fork de repo, voeg uw .json-bestand toe met de juiste configuratie en leg vervolgens de gevorkte repo vast. Als u klaar bent, stuurt u een pull-verzoek naar de hoofdrepo en het bestand zou de volgende dag in de repo moeten verschijnen. Een voorbeeld-json wordt hieronder getoond:

{
“gateway_conf”:{
“gateway_ID”:“de id zoals je hebt genoteerd in de uitvoer van de install.sh console”,
“servers”:[
{
“server_address”:“de router waarmee u verbinding wilt maken”,
“serv_port_up”:1700,
“serv_port_down”:1700,
“serv_enabled”:true
}
],
“ref_latitude”:de lat van de rak 831 gateway,
“ref_longitude”:de lengte van de rak 831 gateway,
“ref_altitude”:40,
“contact_email”:“contact e-mailadres van de gateway-eigenaar”,
“description”:“een korte beschrijving”
}
}

Opmerking:

Kijk voor een lijst met geldige routers op de link hier:https://www.thethingsnetwork.org/wiki/Backend/Connect/Gateway

  • Standaard verandert het installatieprogramma de hostnaam van je Raspeberry Pi in ttn-gateway (om botsingen met andere Raspberry Pi's in je netwerk te voorkomen). Je kunt dit negeren in de niet-externe configuratiemodus.
  • HOE, je gateway zou nu moeten werken. Zorg ervoor dat u de gateway de volgende dag opnieuw start om uw json-bestand correct naar de RPi3 te downloaden.
  • Merk op dat de global_config.json in moet worden aangepast volgens:

https://github.com/TheThingsNetwork/gateway-conf/blob/master/US-global_conf.json

voor degenen die de mp_pkt_fwd willen gebruiken in plaats van de oude poly packet forwarder die hier is gehoord en hetzelfde willen installeren met de gegeven instructie:

https://github.com/kersing/packet_forwarder/tree/master/mp_pkt_fwd. Nogmaals, je kunt het global_conf..json-bestand in de hoofdmap van het project zien. Zorg er wel voor dat je het bestand bewerkt (imp-secties hieronder beschreven) en kopieer hetzelfde naar de bin-map na compilatie.

Enkele configureerbare entiteiten in global_conf.json:

Het global_conf.json-bestand kan worden gevonden in ./bin/global_conf.json vanaf de basis van uw projectdirectory nadat het installatiescript is uitgevoerd. Hier is een lijst met enkele entiteiten die u mogelijk wilt bewerken in het bestand global_conf.json voor uw specifieke gatewayconfiguratie:

1) Configuratie "radio_0" of "radio_1", met name de parameter Frequentie en de parameters voor min en max frequentiebereik.

2) sectie 'gateway_conf'. Vooral de gateway-ID of de EUI van uw gateway.

3) server-up en down-poort in hetzelfde gateway_conf-object samen met uw TTN-serveradres of het adres van uw eigen applicatieserver, indien beschikbaar.

Het bord resetten:

Als we de raspberry pi starten, is het een goede gewoonte om de aangesloten RAK831 lora-module te resetten. Er zijn twee manieren om dit te doen:

  • Via Shell-script:

Er kan een klein shellscript worden geschreven om de RAK831 te resetten voordat de LoRa-driver toegang krijgt tot de hardware. De inhoud van het shellscript kan er als volgt uitzien (waarbij wordt aangenomen dat de GPIO 17 (pin 11) van de Raspberry Pi is verbonden met de resetpin van de RAK831):

#!/bin/bash
echo “17”> /sys/class/gpio/export
echo “uit”> /sys/class/gpio/gpio17/direction
echo “1”> /sys/class/gpio/gpio17/value
slaap 5
echo “0”> /sys/class/gpio/gpio17/value
slaap 1
echo “0”> /sys/class/gpio/gpio17/value

Deze regels kunnen worden opgeslagen in een bestand met de naam "rak831_reset.sh". De gebruiker moet dit script na elke keer opstarten eenmaal aanroepen om het concentrator-IC in een schone staat te krijgen.

  • Via bedrading pi:

Als het hostsysteem een ​​Raspberry Pi is, kan de gebruiker een kleine C-tool schrijven om de RAK831 te resetten. Om toegang te krijgen tot de GPIO-pinnen van de Raspberry Pi is er een bibliotheek genaamd "wiringPi" die zorgt voor de details op laag niveau. De bibliotheek kan worden gedownload van http://wiringpi.com. Raadpleeg deze site voor installatie- en gebruiksinstructies. De inhoud van het RAK831_reset.c-bestand kan er als volgt uitzien:

#include
#include
#define GPIO_RESET_PIN 0 // zie bedradingPi-toewijzing!
int main() {
wiringPiSetup();
pinMode(GPIO_RESET_PIN, OUTPUT);
digitalWrite(GPIO_RESET_PIN, HIGH);
sleep(5);
digitalWrite(GPIO_RESET_PIN, LAAG);
retour;
}

De gebruiker moet deze tool na elke keer opstarten één keer aanroepen om het concentrator-IC in een schone staat te krijgen.

gcc -Wall -o blink blink.c -lwiringPi
sudo ./blink

Registreer de gateway naar het TTN-netwerk:

Om ervoor te zorgen dat uw knooppunten gegevens naar de cloud verzenden, biedt TheThingsNetwork een cloudservice om de gegevens die door lora-knooppunten via een lora worden verzonden, te ontleden en op te slaan

Lees meer detail:Aan de slag met de RAK 831 Lora Gateway en RPi3


Productieproces

  1. Kamertemperaturen bewaken met een Raspberry Pi en Nagios
  2. Kamertemperaturen bewaken met Moteino's en Raspberry Pi
  3. De integratie van sensorgegevens met Raspberry Pi-microprocessor
  4. 433MHz Smart Home Controller met Sensorflare en een RaspberryPi
  5. Pan / Tilt face-tracking met de raspberry pi
  6. Aerocultuur met Raspberry Pi en vochtigheidssensor
  7. De A111 gepulseerde radarsensor gebruiken met een Raspberry Pi
  8. Aan de slag met TJBot
  9. $35 NanoPi K1 Plus is een Raspberry Pi-achtige computer met tweemaal zoveel RAM (en een andere CPU)
  10. LoRa – Raspberry Pi – Single Channel Gateway – Goedkoop!
  11. Aan de slag met de RAK831 LoRa Gateway en RPi3