Premiers pas avec le RAK 831 Lora Gateway et RPi3
Ce projet vous guide à travers toutes les étapes nécessaires pour que votre module de passerelle RAK 831 Lora soit opérationnel avec le wifi comme backhaul.
Histoire
Introduction
Ce guide étape par étape est destiné aux développeurs qui souhaitent développer leur propre passerelle Lora à l'aide du formidable module frontal radio RAK831 Lora de RAK Wireless. Le guide suppose une connaissance de base de l'écosystème Raspberry pi, du matériel et du système d'exploitation Debian associé. Le Guide suppose également une connaissance de base du GPIO et des périphériques présents sur le Raspberry Pi. Alors commençons :
Qu'est-ce que LoRA ?
LoRa Technologie Alliance™. LoRaWAN™ est une spécification de réseau étendu à faible consommation (LPWAN) destinée aux objets fonctionnant sur batterie sans fil dans un réseau régional, national ou mondial. LoRaWAN cible les exigences clés de l'Internet des objets, telles que la communication bidirectionnelle sécurisée, les services de mobilité et de localisation.
avec l'aimable autorisation de Semtech
Le schéma ci-dessus montre les différentes parties de l'architecture sans fil Lora. Certaines des parties importantes sont expliquées brièvement ci-dessous :
Caractéristiques clés de la technologie LoRa et du protocole LoRaWAN
· GÉOLOCALISATION :permet des applications de suivi sans GPS et à faible consommation d'énergie
· FAIBLE COT :réduit les coûts de trois manières :investissement dans l'infrastructure, dépenses d'exploitation et capteurs de nœud final
· NORMALISÉ :l'interopérabilité mondiale améliorée accélère l'adoption et le déploiement des réseaux basés sur LoRaWAN et des applications IoT
· FAIBLE PUISSANCE :protocole conçu spécifiquement pour une faible consommation d'énergie prolongeant la durée de vie de la batterie jusqu'à 20 ans
· LONGUE PORTÉE :une seule station de base offre une pénétration profonde dans les régions urbaines/intérieures denses, et relie les zones rurales jusqu'à 30 miles
· SÉCURISÉ :Cryptage AES128 de bout en bout intégré
· HAUTE CAPACITÉ :prend en charge des millions de messages par station de base, idéal pour les opérateurs de réseaux publics desservant de nombreux clients
Le RAK 831 est une interface LorA Radio ; c'est-à-dire qu'il agit comme un récepteur des paquets de données lora entrants et les transmet à un hôte logiciel/matériel de gestion d'agrégateur. Il peut également transmettre des paquets de données LoRA en fonction de la demande des cartes hôtes. Dans notre cas, une raspberry pi 3 est la carte hôte contrôlant l'interface RAK 831.
Choisir le backhaul
Qu'est-ce qu'un backhaul ? Le backhaul fait référence à la façon dont le Raspberry Pi sera connecté à Internet. Ce guide se concentre sur l'utilisation du Wifi comme backhaul, mais vous pouvez également utiliser Ethernet ou 3G/4G. Si vous disposez d'Ethernet à proximité de la passerelle, préférez-le au WiFi ou à la 3G/4G. En effet, le fait d'avoir un signal radio supplémentaire à l'intérieur du boîtier provoquera du bruit. Le logiciel peut gérer l'environnement bruyant, ce n'est donc pas un gros problème, mais moins il est bruyant, mieux c'est. Vous pouvez combiner ce choix avec Power-over-Ethernet pour minimiser le câblage allant jusqu'à la passerelle.
En revanche, si vous choisissez le WiFi au lieu d'Ethernet, essayez alors d'utiliser un dongle avec antenne externe et déplacez l'antenne à l'extérieur du boîtier pour avoir moins de bruit à l'intérieur du boîtier.
Configurer le matériel :
Avant de connecter quoi que ce soit et d'allumer, effectuons les configurations suivantes sur le raspberry pi et le module RAK 831 :
FRAMBOISE PI
1) Obtenez la carte raspberry pi 3 et préparez une carte micro sd de 8 Go avec le logiciel raspbian. Vous pouvez même acheter une carte SD noobs avec le logiciel préchargé. Pour savoir comment flasher le système d'exploitation sur la carte SD, veuillez suivre les instructions ici : https://www.raspberrypi.org/learning/hardware-guide/
2) Connectez le raspberry pi à l'alimentation 5v 2amps. C'EST TRÈS IMPORTANT. Le module lora peut tirer un pic de 700 mA pendant les transactions sans fil actives et donc avoir une bonne brique d'alimentation pour alimenter le raspberry pi
raspberry pi v3
RAK 831 :
1) Avant même de mettre la carte sous tension, procurez-vous les antennes fournies dans votre kit et connectez-les à la borne à vis des antennes. C'EST INDISPENSABLE.
Raspberry Pi v3, module RAK 831 et un nœud Lora
Détails de connexion :
Voici un tableau montrant comment connecter le module rak831 avec le raspberry pi :
Connexion rpi v3 à broches rak 831La carte de la sérigraphie rak 831 aux broches rak 831.carte de la sérigraphie rak 831 aux broches rak 831
Pour comprendre la disposition des broches du Raspberry Pi, rendez-vous sur : https://www.raspberrypi.org/documentation/usage/gpio/ pour plus de détails
Remarques :
- La broche de réinitialisation peut être connectée à n'importe quel GPIO du raspberry pi 3.
- Il est essentiel de vous assurer que vous connectez correctement les broches d'alimentation pour éviter d'endommager la carte RAK 831.
Activer SPI :
Le périphérique SPI n'est pas activé par défaut. Pour l'activer, procédez comme suit.
- Exécutez sudo raspi-config.
- Utilisez la flèche vers le bas pour sélectionner 9 options avancées
- Flèche vers le bas jusqu'à A6 SPI.
- Sélectionnez oui lorsqu'il vous est demandé d'activer SPI ,
- Sélectionnez également oui lorsqu'il vous demande de charger automatiquement le module du noyau.
- Utilisez la flèche vers la droite pour sélectionner le bouton
.
- Sélectionnez oui lorsqu'il vous demande de redémarrer.
Raspi-config pour SPI
Le système va redémarrer. Quand il revient, connectez-vous et entrez la commande suivante
>ls /dev/*spi*
Le Pi doit répondre avec
/dev/spidev0.0 /dev/spidev0.1
Ceux-ci représentent les périphériques SPI sur puce activent les broches 0 et 1, respectivement. Ces broches sont câblées dans le Pi. Normalement, cela signifie que l'interface prend en charge au plus deux périphériques, mais il existe des cas où plusieurs périphériques peuvent être connectés en guirlande, partageant un seul signal d'activation de puce.
Alimentation du tableau :
Comme pour tous les projets sans fil, ils ont tendance à nécessiter plus de puissance que la carte hôte ne peut en fournir via les broches d'alimentation. Les deux schémas ci-dessous énumèrent comment vous pouvez alimenter le RAK 831 et le raspberry pi 3.
1) Alimenter le rail 5v depuis le Raspberry Pi
2) Alimentez séparément le rail 5v du Raspberry Pi et du RAK831
Installation du logiciel :
Sur le Raspberry pi, procédons comme suit pour installer le logiciel essentiel :
- Activer SPI :
Utilisez l'utilitaire raspi-config pour activer SPI ([5] Options d'interfaçage -> P4 SPI) et développez également le système de fichiers ([7] Options avancées -> A1 Développer le système de fichiers) :
$ sudo raspi-config
- Assurez-vous que git est installé
Mise à jour Sudo apt-get
Mise à jour Sudo apt-get
Sudo apt-get install git
- Gérez votre connexion wifi sur le raspberry pi
- Configurez les identifiants Wi-Fi (cliquez ici pour plus de détails)
$ sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
Et ajoutez le bloc suivant à la fin du fichier, en remplaçant le SSID et le mot de passe pour correspondre à votre réseau :
network={
ssid="The_SSID_of_your_wifi"
psk="Your_wifi_password"
}
- Cloner le programme d'installation et démarrer l'installation
$ git clone -b spi https://github.com/ttn-zh/ic880a-gateway.git ~/ic880a-gateway
$cd ~/ic880a-gateway
$ sudo ./install.sh spi
- L'étape d'installation vous demandera si vous souhaitez activer la configuration à distance. Tapez « y » ou « oui » et poursuivez l'installation. Au début de l'installation de la ligne de commande, le script vous montrerait l'EUI de la passerelle, ce qui est important pour les étapes suivantes. NOTEZ-LE !
- Si vous souhaitez utiliser l'option de configuration à distance, assurez-vous d'avoir créé un fichier JSON nommé comme EUI de votre passerelle (par exemple, B827EBFFFE7B80CD.json) dans le référentiel Gateway Remote Config ici : https://github.com/ttn -zh/gateway-remote-config. Forkez le référentiel, ajoutez votre fichier
.json avec la configuration appropriée, puis validez le référentiel forké. Une fois cela fait, envoyez une pull request au référentiel principal et le fichier devrait apparaître dans le référentiel le lendemain. Un exemple de json est présenté ci-dessous :
{
« gateway_conf » :{
« gateway_ID » :« l'identifiant tel que vous l'avez noté dans la sortie de la console install.sh »,
« serveurs » :[
{
« server_address » : « le routeur auquel vous souhaitez vous connecter »,
« serv_port_up » : 1700,
« serv_port_down » : 1700,
« serv_enabled » : vrai
}
],
« ref_latitude » :le lat de la passerelle rak 831,
« ref_longitude » :le long de la passerelle rak 831,
« ref_altitude » :40,
« contact_email » :« e-mail de contact du propriétaire de la passerelle »,
« description » :« une brève description »
}
}
Remarque :
Pour une liste des routeurs valides, consultez le lien ici :https://www.thethingsnetwork.org/wiki/Backend/Connect/Gateway
- Par défaut, le programme d'installation modifie le nom d'hôte de votre Raspeberry Pi en ttn-gateway (pour éviter les collisions avec d'autres Raspberry Pis de votre réseau). Vous pouvez outrepasser cela en mode de configuration non à distance.
- HURRAY, votre passerelle devrait maintenant fonctionner. Assurez-vous de redémarrer la passerelle le lendemain pour que votre fichier json soit correctement téléchargé sur le RPi3.
- Notez que global_config.json dans doit être ajusté selon :
https://github.com/TheThingsNetwork/gateway-conf/blob/master/US-global_conf.json
pour ceux qui cherchent à utiliser le mp_pkt_fwd au lieu de l'ancien poly packet forwarder entendu ici et à installer le même avec les instructions fournies :
https://github.com/kersing/packet_forwarder/tree/master/mp_pkt_fwd. Encore une fois, vous pouvez voir le fichier global_conf..json à la racine du projet, assurez-vous simplement de modifier le fichier (sections imp décrites ci-dessous) et de le copier dans le dossier bin après la compilation.
Quelques entités configurables dans global_conf.json :
Le fichier global_conf.json se trouve dans ./bin/global_conf.json à partir de la base de votre répertoire de projet après l'exécution du script d'installation. Voici une liste de certaines entités que vous pouvez modifier dans le fichier global_conf.json pour votre configuration de passerelle particulière :
1) Configuration « radio_0 » ou « radio_1 », en particulier le paramètre Fréquence et les paramètres de balayage de fréquence min et max.
2) section « gateway_conf », en particulier l'ID de la passerelle ou l'EUI de votre passerelle.
3) le port haut et bas du serveur dans le même objet gateway_conf avec votre adresse de serveur TTN de l'adresse de votre propre serveur d'applications si elle est disponible.
Réinitialisation du tableau :
Chaque fois que nous démarrons le raspberry pi, c'est une bonne pratique de réinitialiser le module lora RAK831 attaché. Il y a deux façons de le faire :
- Par script Shell :
Un petit script shell peut être écrit pour réinitialiser le RAK831 avant que le pilote LoRa puisse accéder au matériel. Le contenu du script shell peut ressembler à l'exemple suivant (qui suppose que le GPIO 17 (broche 11) du Raspberry Pi est connecté à la broche reset du RAK831) :
#!/bin/bash
echo "17"> /sys/class/gpio/export
echo "out"> /sys/class/gpio/gpio17/direction
echo "1"> /sys/class/gpio/gpio17/value
sommeil 5
écho "0"> /sys/class/gpio/gpio17/value
sommeil 1
écho "0"> /sys/class/gpio/gpio17/value
Ces lignes peuvent être stockées dans un fichier appelé « rak831_reset.sh ». L'utilisateur doit appeler ce script une fois après chaque démarrage afin d'obtenir le circuit intégré du concentrateur dans un état propre.
- Par câblage pi :
Si le système hôte est un Raspberry Pi, l'utilisateur peut écrire un petit C-Tool pour réinitialiser le RAK831. Afin d'accéder aux broches GPIO du Raspberry Pi, il existe une bibliothèque appelée "wiringPi" qui prend en charge les détails de bas niveau. La bibliothèque peut être téléchargée sur http://wiringpi.com. Veuillez vous référer à ce site pour obtenir les instructions d'installation et d'utilisation. Le contenu du fichier RAK831_reset.c peut ressembler à ce qui suit :
#include
#include
#define GPIO_RESET_PIN 0 // voir le mappage de câblagePi !
int main() {
wiringPiSetup();
pinMode(GPIO_RESET_PIN, OUTPUT);
digitalWrite(GPIO_RESET_PIN, HIGH);
sleep(5);
digitalWrite(GPIO_RESET_PIN, LOW);
retour ;
}
L'utilisateur doit appeler cet outil une fois après chaque démarrage afin d'obtenir le circuit intégré du concentrateur dans un état propre.
gcc -Wall -o blink blink.c -lwiringPi
sudo ./blink
Enregistrez la passerelle vers le réseau TTN :
Pour que vos nœuds envoient des données vers le cloud, TheThingsNetwork fournit un service cloud pour analyser et stocker les données envoyées par les nœuds lora via une lora
Lire plus de détails :Premiers pas avec le RAK 831 Lora Gateway et RPi3
Processus de fabrication
- Surveillance de la température ambiante avec un Raspberry Pi et Nagios
- Surveillance de la température ambiante avec Moteino's et Raspberry Pi
- L'intégration des données du capteur avec le microprocesseur Raspberry Pi
- Contrôleur Smart Home 433MHz avec Sensorflare et RaspberryPi
- Pan/Tilt Face Tracking avec le raspberry pi
- Aéroponie avec Raspberry Pi et capteur d'humidité
- Utilisation du capteur radar pulsé A111 avec un Raspberry Pi
- Premiers pas avec TJBot
- 35 $ Le NanoPi K1 Plus est un ordinateur de type Raspberry Pi avec deux fois plus de RAM (et un processeur différent)