/
3,188 Views0
Raspberry Pi 3G/4G&LTE Base HAT & IoT LoRa Gateway

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&LTE 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

IoT LoRa Gateway pour Raspberry (1)

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

Préparation et assemblage

Une fois avoir réalisé la Gateway, slon cet article IoT LoRa Gateway pour Raspberry (1),

Ne connectez pas encore le câble USB de votre Raspberry au Raspberry Pi 3G/4G&LTE Base HAT, comme cela

Raspberry Pi 3G/4G&LTE Base HAT & IoT LoRa Gateway
Raspberry Pi 3G/4G&LTE Base HAT & IoT LoRa Gateway (n’oubliez pas les entretoises que l’on ne voit pas sur cette photo)
  • 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

rpi firmware

Vous aurez besoin de connaître la version. Cliquer sur <> (sautez cette étape avec un RPi4)

rpi firmeware version

Ensuite, observez votre URL et copiez le hash comme indiqué ci-dessous (sautez cette étape avec un RPi4)

rpi firmware hash

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

L’installation du routeur doit se faire avec le compte pi. N’oubliez pas de changer son mot de passe

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/

Assurer vous que le câble USB fournit n’est toujours pas connecté entre le Raspberry et le module Raspberry Pi 3G/4G&LTE Base HAT, comme indiqué plus haut
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.

Connectez maintenant le câble USB entre votre Raspberry et le 3G/4G&LTE Base HAT

… 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.

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

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&LTE 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.

Leave Comment:

fr_FRFrench