Dans cet article, je vais vous montrer comment ajouter un routeur 4G à votre passerelle IoT LoRa Gateway, réalisé précédemment.
Cette application n’est pas encore fonctionnelle à 100%, car il y a un problème de transmission des données via l’interface WWAN. Il semble que la passerelle ne transmet que via l’interface WLAN, même si le module 3G/4G<E Base HAT arrive à se connecter au réseau 3/4G. Je parle de ceci la la fin de ce tutoriel. Votre feedback est le bienvenu.
Prérequis
Pour réaliser cet exercice, vous devez avoir impérativement réaliser votre passerelle après avoir suivi l’article
Vous devez avoir un compte chez The Things Network (TTN), comme j’en parle dans l’exercice préceédent.
Cet exercice est réalisé avec un Mac. Si vous avez un Windows, vous aurez besoin de Putty pour saisir les lignes de commande.
Matériel
- Raspberry Pi 3G/4G<E Base HAT (EUR 36.50)
- Quectel EC25 Mini PCle 4G/LTE Module (EUR 56.–)
- Waterproof/Weatherproof Enclosure (EUR 54.–)
- Glass Fiber LoRa Antenna (EUR 48.–)
- 1x N-Type Bulkhead (UFL / IPEX) (EUR 15.–)
- 1x General Cable Passthrough Gland – M20 x 1.5 (EUR 5.40)
- Long Header 2×20 (Tige:10mm)
- Header 2×20 (Tige: 6mm) ou long header
- 4 entretoises de 10mm
- 4 entretoises de 14mm
- Câble Ethernet
- Routeur avec un port Ethernet (Généralement le Routeur WiFi de votre domicile fait l’affaire)
Préparation et assemblage
Une fois avoir réalisé la Gateway, slon cet article IoT LoRa Gateway pour Raspberry (1),
- retirez soigneusement le chapeau IoT LoRa Gateway HAT pour Raspberry Pi
- remplacer vos haders par les longs avec une tige de 10mm que vous allez mettre sur le Raspberry
- Puis, insérez le chapeau Raspberry Pi 3G/4G<E Base HAT avec le moduleQuectel EC25 Mini PCle 4G/LTE, et les entretoises de 10mm (normalement fournies avec le Base HAT), toujours soigneusement, comme je l’indique dans cet article (voir assemblage).
- Insérez les header 2×20, avec des tiges de 6mm, dans le IoT LoRa Gateway HAT
- Finalement, ajoutez par-dessus le chapeau IoT LoRa Gateway HAT sur le Pi 3G/4G<E Base HAT, avec les entretoises de 14mm.
Ne connectez pas encore le câble USB de votre Raspberry au Raspberry Pi 3G/4G<E Base HAT, comme cela
- Connectez votre câble Ethernet dans le port Ethernet de votre Raspberry et le Routeur WiFi de votre domicile. Attention
Alimentez votre Raspberry avec l’alimentation appropriée.
Si vous avez bien suivi l’article IoT LoRa Gateway pour Raspberry (1), votre passerelle doit être vue comme connectée dans la console TTN.
Contrôle
Dans certain cas, le compte pi est effacé. Connectez-vous à votre Raspberry et assurez-vous qu’il existe, si non créez-le
sudo adduser pi # change de mot de passe sudo passwd pi # ajoute pi dans le groupe admin sudo adduser pi sudo # se déconnecte du compte courant exit
et connectez-vous avec pi
ssh pi@iotloragateway.local
Installation du routeur
Mettre à jour votre Raspberry
Lancez les mises à jour
sudo apt-get update sudo apt-get upgrade sudo apt update && sudo apt upgrade
Installation du Kernel
‘Raspberry Pi kernel headers’
sudo apt-get install raspberrypi-kernel-headers
contrôlez la version du Kernel
ls /usr/src
ce qui me donne
linux-headers-4.19.97+ linux-headers-4.19.97-v7+ linux-headers-4.19.97-v7l+
Mettre à jour le firmware
Ouvrez votre navigateur et rendez-vous sur rpi-firmware github repository commits (sautez cette étape avec un RPi4) et recherchez la ligne correspondante à votre version
Vous aurez besoin de connaître la version. Cliquer sur <> (sautez cette étape avec un RPi4)
Ensuite, observez votre URL et copiez le hash comme indiqué ci-dessous (sautez cette étape avec un RPi4)
Retournez dans le terminal de votre Raspberry et saisissez la commande suivante en ajoutant le hash (sautez cette étape avec un RPi4)
sudo rpi-update 993f47507f287f5da56495f718c2d0cd05ccbc19
et répondez y ou o (yes/oui)
*** Raspberry Pi firmware updater by Hexxeh, enhanced by AndrewS and Dom *** Performing self-update % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 18058 100 18058 0 0 3187 0 0:00:05 0:00:05 --:--:-- 4288 *** Relaunching after update *** Raspberry Pi firmware updater by Hexxeh, enhanced by AndrewS and Dom *** We're running for the first time *** Backing up files (this will take a few minutes) *** Backing up firmware *** Backing up modules 4.19.97-v7+ ############################################################# WARNING: 'rpi-update' updates to pre-releases of the linux kernel tree and Videocore firmware. 'rpi-update' should only be used if there is a specific reason to do so - for example, a request by a Raspberry Pi engineer. DO NOT use 'rpi-update' as part of a regular update process. ############################################################## Would you like to proceed? (y/N) z *** Downloading specific firmware revision (this will take a few minutes) % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 168 100 168 0 0 30 0 0:00:05 0:00:05 --:--:-- 43 100 115M 0 115M 0 0 188k 0 --:--:-- 0:10:28 --:--:-- 239k *** Updating firmware *** Updating kernel modules *** depmod 4.19.97+ *** depmod 4.19.97-v7l+ *** depmod 4.19.97-v8+ *** depmod 4.19.97-v7+ *** Updating VideoCore libraries *** Using HardFP libraries *** Updating SDK *** Running ldconfig *** Storing current firmware revision *** Deleting downloaded files *** Syncing changes to disk *** If no errors appeared, your firmware was successfully updated to 993f47507f287f5da56495f718c2d0cd05ccbc19 *** A reboot is needed to activate the new firmware
Une fois fait, redémarrez votre Raspberry (sautez cette étape avec un RPi4)
sudo reboot
Installation du Soft
Installez unzip, si ce n’est pas fait
sudo apt-get install unzip
Téléchargement
Je le télécharge dans un dossier sixfab et je me positionne dans ce dossier avant de le télécharger (sans sudo)
mkdir -p ~/Soft/sixfab cd ~/Soft/sixfab wget https://raw.githubusercontent.com/sixfab/Sixfab_RPi_3G-4G-LTE_Base_Shield/master/tutorials/QMI_tutorial/qmi_install.sh
changez les droits du fichier téléchargé afin de le rendre exécutable
sudo chmod +x qmi_install.sh
Lancez le script d’installation depuis là où vous l’avez téléchargé. Dans mon cas, je l’ai téléchargé dans /Soft/sixfab/
cd ~/Soft/sixfab sudo ./qmi_install.sh
Il vous sera probablement demandé d’installer les packages suivants:
busybox udhcpc
Réponder ‘o’ ou ‘y’ (pour oui ou yes).
A la fin du processus, il vous sera demandé de taper une touche pour redémarrer votre Raspberry.
… et insérez votre carte SIM
Configuration l’APN
Afin de ne pas trop doubler mes écrits, la configuration de l’APN est identique à ce qui est indiqué dans cet article sous le même chapitre.
Il vous suffit de suivre les instructions sous le même chapitre, … et de revenir sur cette page.
Auto connexion au démarrage
Comme indiqué sur la page que vous venez de visiter, il y a encore deux-trois étapes à compléter pour terminer. Voici un rappel.
Retournez dans le dossier où vous avez téléchargé le premier script d’installation
cd ~/Soft/sixfab
Téléchargez le script, changer ses droits et exécutez le script. Votre APN vous sera demandé mais on verra comment changer ceci plus tard
wget https://raw.githubusercontent.com/sixfab/Sixfab_RPi_3G-4G-LTE_Base_Shield/master/tutorials/QMI_tutorial/install_auto_connect.sh sudo chmod +x install_auto_connect.sh sudo ./install_auto_connect.sh
Un service, nommé ‘qmi_reconnect’ est créé et activé. Pour contrôler l’état de ce service, saisissez l’une des commande
sudo systemctl status qmi_reconnect.service #Vérifie sons statut sudo systemctl stop qmi_reconnect.service #Stop le service sudo systemctl start qmi_reconnect.service #Démarre le service sudo systemctl restart qmi_reconnect.service #Redémarre le service
Modification de l’APN et ajout du code PIN
Si votre carte SIM à un code PIN, ou/et si vous désirez modifier votre APN, ou journaliser (log) les événements, vous devez encore éditer le fichier
sudo nano /usr/src/qmi_reconnect.sh
et modifiez les lignes en fonction de vos besoins, sachant que
- -s est votre APN
- -p est le code PIN de la carte SIM
- -f est la journalisation (log)
# commenter la ligne ci-dessous #sudo ./quectel-CM -s gprs.swisscom.ch # et ajouter celle-ci en indiquant votre code PIN à la place du 1234 sudo ./quectel-CM -s gprs.swisscom.ch -p 1234 -f /var/log/sixfab_log.txt # Si vous avez un carte SIM sans code, la ligne serait # sudo ./quectel-CM -s gprs.swisscom.ch -f /var/log/sixfab_log.txt # Voici un autre exemple sans mot de passe avec un autre APN et sans journalisation (log) # sudo ./quectel-CM -s internet
Sur votre Mac presser option+X pour sauver votre correction, puis ‘o’ ou ‘y’ et ‘enter’ et redémarrer votre Rasoberry
sudo reboot
Pour contrôler si vous êtes bien connecter à votre fournisseur 4G, vous pouvez encore saisir cette commande.
ifconfig wwan0
Ce qui devrait vous donner
wwan0: flags=4291<UP,BROADCAST,RUNNING,NOARP,MULTICAST> mtu 1500 inet 10.111.11.209 netmask 255.255.255.252 broadcast 10.111.11.211 inet6 fe80::b5ff:b507:9b4:701a prefixlen 64 scopeid 0x20<link> ether 0f:ef:01:f7:13:f5 txqueuelen 1000 (Ethernet) RX packets 6 bytes 1400 (1.3 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 48 bytes 8867 (8.6 KiB) TX errors 0 dropped 10 overruns 0 carrier 0 collisions 0
Si la connexion n’était pas réussie, vous ne verriez pas la ligne en gras, commençant par inet avec une adresse IP!
Problème possible
Après l’installation, j’ai rencontré des problèmes de connexion où le Raspberry Pi 3G/4G<E Base HAT n’arrivait pas à se connecter. Cet article m’a aidé à résoudre ce problème. Il est possible qu’un conflit entre dhcpc et udhcpc se produise.
Pour vérifier le statut
sudo systemctl status qmi_reconnect.service #Vérifie sons statut
Si vous voyez un truc du genre
Oct 06 22:06:04 iotloragateway udhcpc[693]: wwan0: configuration failed: leasefail:
Alors ce qui suit vous aidera avec certitude. Pour résoudre ce problème, éditer
sudo nano /etc/dhcpcd.conf
et ajoutez au bas du fichier
denyinterfaces wwan0
Redémarrer votre raspberry
sudo reboot
Ceci a résolu mon cas.
La passerelle a été réinstallée avec succès, en re-suivant cet article , le 6 octobre 2020
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.