/
158 Views0
Gateway LoRaWAN quectel

Dans cet article, je vais vous montrer comment faire pour que deux Raspberry puissent établir un connexion sur un serveur distant via le premier Pi et comment créer sa passerelle LoRaWAN avec deux Raspberry Pi3.

Dans cet article, je vais prendre deux Raspberry Pi3 avec Rasbain Buster du 20-08.2020

Matériel

Premier Raspberry / routeur 4G

Installation du Router 4G

Vous allez devoir préparer votre Raspberry qui fera office de router 4G et offrira une connexion internet au deuxième Raspberry, connecté à son port Ethernet (eth0). Pour cela suivez cet article ci-dessous et arrêtez-vous avant le chapitre Configurer votre Raspberry en un WiFi hotspot. (J’expliquerai plus bas, pourquoi je n’utilise plus RaspAP)

Réaliser un routeur WiFi/4G sois-même

N’oubliez pas aussi de bien configurer le fichier

/etc/wpa_suppliant/wpa_suppliant.conf

avec le SSID et le PSK du routeur de votre domicile. Il vous permettra de vous connecter en ssh, plus tard.

Partage du port eth0

Une fois fait, vous allez devoir faire encore ces étapes pour partager le port Ethernet (eth0) afin qu’il puisse attribuer une adresse IP au second Raspberry et pour que ce dernier puisse accéder à Internet via le premier

Installation de dnsmasq

sudo apt install dnsmasq

Activation de ip_forward

Editer le fichier

sudo nano /etc/sysctl.conf

et dé-commenter la ligne

net.ipv4.ip_forward=1

Pour contrôler si ip_forward est bien activé, cette commande doit retourner ‘1’

cat /proc/sys/net/ipv4/ip_forward

Activer le routing et IP masquerading

sudo DEBIAN_FRONTEND=noninteractive apt install -y netfilter-persistent iptables-persistent
sudo iptables -t nat -A POSTROUTING -j MASQUERADE
sudo cp /etc/iptables/rules.v4 /etc/iptables/rules.v4.orig
# Now save the current firewall rules for IPv4 (including the rule above) and IPv6 to be loaded at boot by 
# the netfilter-persistent service:
sudo iptables-save | sudo tee /etc/iptables/rules.v4

Editer le fichier

sudo nano /etc/dhcpcd.conf

et ajouter les lignes

# Cette ligne est très importante pour que l'adresse IP de wwan0 ne soit fournie
# que par votre fournisseur de votre carte SIM
denyinterfaces wwan0 

interface eth0
static ip_address=10.3.142.1/24
static routers=10.3.142.1
static domain_name_server=1.1.1.1 8.8.8.8

Pour terminer, éditer le fichier

sudo nano /etc/dnsmasq.conf

et ajouter ces lignes

interface=eth0
listen-address=10.3.142.1
# Bind to the interface to make sure we aren't sending things elsewhere 
#### bind-interfaces #### BUT don't enable this.
server=8.8.8.8 # Forward DNS requests to Google DNS
domain-needed # Don't forward short names
# Never forward addresses in the non-routed address spaces.
bogus-priv
# Assign IP addresses between 10.3.142.2 and 10.3.142.5 with a
# 12 hour lease time
dhcp-range=10.3.142.2,10.3.142.5,12h

Dès à présent, vous pouvez connecter un autre Raspberry au port Ethernet à votre installation. Une adresse IP entre 10.3.142.2 et 10.3.142.5 lui sera attribuée.

Pourquoi je n’utilise plus RaspAP

RasAp est un utilitaire très bien. Il vous permettra de transformer votre Raspberry en un WiFi Hotspot, comme je l’indique dans cet article. Cependant, j’ai constaté que le Hotpot n’était pas stable ce qui rendait l’accès en ssh difficile. En plus de cela, si vous modifiez les paramètres de RaspAP via son interface, tel que le Hotspot, la configuration du fichier /etc/ dhcpcd.conf était écrasée, ce qui supprimait aussi la ligne

denyinterfaces wwan0

J’ai aussi constaté que de temps en temps, lors du boot du premier Pi, aucune adresse IP n’était fournir à eth0.

Il est fort probable que ce problème pouvait être résolu d’une manière ou d’une autre. Mais dans le cadre de cet article, soit de la réalisation d’une passerelle LoRaWAN, il est absolument nécessaire que ces paramètres soient conservés et qu’une connexion WiFi soit stable pour accéder au Pi en ssh via wlan0.

Finalement une version simplifiée, sans RaspAP, tel que je la présente, est largement suffisante pour une passerelle LoRaWAN, et fonctionne à merveille.

Deuxième Raspberry / LoRaWAN Gateway

Vous devez suivre cet article

IoT LoRa Gateway pour Raspberry (1)

Aussi, n’oubliez pas de bien configurer le fichier

/etc/wpa_suppliant/wpa_suppliant.conf

avec le SSID et le PSK du routeur de votre domicile. Il vous permettra de vous connecter en ssh, plus tard.

Une fois fait, éditer le fichier

sudo nano /opt/iotloragateway/iot-lora-gateway-reset.sh

et commenter la ligne 4

#php -f /var/www/iotloragateway/html/updatePacketfwd.php

Contrôle

Pour contrôler si votre passerelle arrive à se connecter au server TTN, lancer cette commande

sudo systemctl status iot-lora-gateway.service

vous devriez voir ceci

INFO: [TTN] send status success for bridge.eu.thethings.network

Si vous voyez

INFO: Enabling GPS mode for concentrator's counter

c’est que le module est toujours en cours d’initialisation. Attendez et revérifier.

Vous pouvez encore redémarrer le service

sudo systemctl restart iot-lora-gateway.service
# ou
sudo systemctl stop iot-lora-gateway.service
sudo systemctl start iot-lora-gateway.service

Cette commande peut aussi s’avérer utile

journalctl -u iot-lora-gateway.service --no-pager -n 3000

Alimentation des Raspberry

Alimenter votre premier Raspberry avec l’alimentation 5V/2A. Attention il vous faut une alimentation de 2A minimum.

Pour alimenter le deuxième, vous allez le faire avec les deux fils femelle-femelle.

Raspberry Pi3 Pinout
Raspberry Pi3 Pinout

Relier les broches 4 (5V) et les broches 6 (GND). Ce sont la 2ème et 3ème broches, en haut à gauche. Si vous n’êtes pas sûre, vous trouverez facilement ces informations en faisant une recherche sur google.

Bravo!

Vous avez installé et configuré votre passerelle LoRaWAN. Il ne vous reste plus qu’à la mettre dans un boîtier étanche avec une belle antenne.

N’hésitez pas à me faire part de vos commentaires et expériences afin de corriger et améliorer cet article


Soutenez-nous!

Si vous avez aimé cet article, faîtes un don de quelques Euro pour le financement de mes projets et du matériel.

Leave Comment:

*

code

fr_FRFrench
fr_FRFrench