Comment connecter Internet sur Raspberry Pi à l’aide du module SIM800L GSM?
Ousmane Soumaiala Yaye
Auteur Connecter le Raspberry Pi à Internet
La connexion Internet devient maintenant la chose la plus importante après l’alimentation électrique pour les projets basés sur Raspberry Pi et lorsque nous parlons d’un véritable projet IoT, cela devient une chose indispensable à considérer. Donc, aujourd’hui, nous allons essayer d’interfacer GSM SIM800L pour fournir Internet à notre Pi tout comme un modem utilisant GSM GPRS. Pour ce projet, nous utilisons le protocole PPP (Point to Point Protocol) et la communication nœud à nœud pour communiquer avec le GSM en série. Après avoir fait ce projet, vous n’aurez pas besoin de connecter votre pi avec Wi-Fi ou Ethernet.
Composants requis pour Tether Internet sur Raspberry Pi
Composant | Qté. |
Raspberry Pi 3 (vous pouvez utiliser n’importe lequel) | 1 |
GSM SIM800L Module | 1 |
Câbles de liaison F-F | Comme req. |
Carte SIM en réseau fonctionnelle | 1 |
2596 Convertisseur abaisseur avec adaptateur | 1 unité |
Ici, nous utilisons un convertisseur abaisseur 2596 pour fournir une tension constante de 4,2 volts, car le module GSM SIM800L est un appareil gourmand en énergie qui nécessitera plus de courant lors de l’utilisation du GPRS. Pour en savoir plus sur le GSM avec raspberry pi, vous pouvez visiter notre site Web.
Schéma de circuit de Tether Internet sur Raspberry Pi
GPS Module | Raspberry Pi 3 |
Rx | Tx of the Raspberry Pi |
Tx | RX of the Raspberry Pi |
GND | GND of the Raspberry Pi |
GND of the Buck | |
VCO | 4.2 V (2596 Ic output) |
Hence we have connected all the pins accordingly. For a better understanding, I am attaching a connection diagram below.
Ainsi, vous pouvez voir que les connexions ne sont pas complexes. Vous devez maintenir la fiabilité de l’alimentation électrique car les modules GSM ont besoin de courant lorsqu’ils sont connectés à Internet et au point d’accès. J’ai utilisé un module de conversion Buck 2596 pour mon projet. Vous pouvez utiliser n’importe lequel.
La configuration réelle que j’ai effectuée est illustrée ci-dessous.
Installation de la bibliothèque et programmation du Raspberry Pi
Avant d’aller plus loin, veuillez vérifier le GSM avec les commandes AT et confirmer si le GSM répond aux commandes AT ou non. Cela peut être fait de la manière suivante,
- Activer le port série
- Vérifiez le port série
- Exécutez le script check_commands.py suivant
- Il doit retourner 'OK' en réponse à votre code, si ce n’est pas le cas, veuillez vérifier les connexions de RX_TX et répéter les étapes.
import time import serial import os, time cmd='' ser = serial.Serial('/dev/serial0', 9600, timeout=1) ser.reset_input_buffer() while True: smd=input("please enter a command: ") smd=smd+'\n' smds=smd.encode('utf-8') ser.write(smds) print("smd value is:",smd) line = ser.read(10).decode('utf-8').rstrip() print(line)
Note : Comme j’utilise python 3 sur raspberry Pi, je devrais donc me préoccuper de l’encodage et du décodage des données sous « utf-8 ».
Maintenant, le code ci-dessus enverra une commande à partir de votre terminal et affichera la réponse sur le terminal. Au début, écrivez « AT » puis appuyez sur « Entrée », cela doit renvoyer le message « OK ». Vous pouvez essayer d’autres commandes AT pour le plaisir. Maintenant, nous allons installer une bibliothèque PPP qui nous aidera à utiliser Internet via le module GSM.
Écrivez la commande suivante dans le terminal afin que nous puissions avoir la dernière mise à jour sur notre Pi.
sudo apt-get upgrade sudo apt-get install ppp screen elinks
De cette façon, vous téléchargerez et installerez la bibliothèque ppp. Maintenant, allez dans le sudo -i en tapant la même chose sur le terminal. Ensuite, vous devrez vous rendre dans le dossier peers à l’aide de la commande suivante.
cd /etc/ppp/peers*
Tapez ensuite « nano rnet » afin de pouvoir créer un fichier nommé « rnet » dans le dossier « peers ». Là, vous devez écrire les lignes suivantes du code. (il suffit de le copier-coller)
#code start #imis/internet is the apn for idea connection connect "/usr/sbin/chat -v -f /etc/chatscripts/gprs -T airtelgprs.com" # For Raspberry Pi4 use /dev/ttyS0 as the communication port: /dev/ttyS0 # Baudrate 115200 # Assumes that your IP address is allocated dynamically by the ISP. noipdefault # Try to get the name server addresses from the ISP. usepeerdns # Use this connection as the default route to the internet. defaultroute # Makes PPPD "dial again" when the connection is lost. persist # Do not ask the remote to authenticate. noauth # No hardware flow control on the serial link with GSM Modem nocrtscts # No modem control lines with GSM Modem local #code end
Étant donné que j’utilise la carte SIM du réseau Airtel, nous devrions connaître l’APN de la même chose. Pour l’instant, c’est « airtelgprs.com ». Vous pouvez facilement trouver le vôtre sur Google.
Ici, vous devrez modifier votre APN dans la ligne 'connect'. Le mien est « airtelgprs.com ». De plus, mon port série est « ttyS0 » donc je l’ai mentionné. Veuillez noter qu’il n’est pas nécessaire de modifier le débit en bauds. Ensuite, enregistrez-le et fermez-le en appuyant sur « Ctrl+X ».
Redémarrez maintenant le terminal. Ensuite, dans le terminal, tapez « ifconfig » et appuyez sur Entrée.
Maintenant, que le plaisir commence en entrant la commande suivante, c’est-à-dire « sudo pon rnet ». Rien ne se passera à l’écran mais le comportement de votre LED GSM changera. Cette fois, la fréquence d’allumage et d’extinction de la LED augmentera. Ici, vous pouvez arrêter Internet en entrant « sudo poff rnet ». Vous pouvez maintenant profiter du réseau GPRS sur votre Raspberry Pi. Bien que la vitesse d’Internet ne soit pas si bonne dans mon cas en raison d’une certaine puissance de signal, cela peut être négligé si vous voulez faire un projet IoT.
Conclusion
Par conséquent, nous avons fourni une connexion Internet GPRS à notre Raspberry Pi via le protocole point à point (PPP) à l’aide du module GSM SIM800L. Vous pouvez démarrer automatiquement votre connexion GPRS via GSM à l’aide de crontab ou de n’importe quel exécuteur de script planifié. Étant donné que nous utilisons la technologie GPRS, nous ne pouvons donc pas nous attendre à l’Internet haut débit, mais il peut être envisagé de pousser et d’extraire des API pour nos projets IoT. Si vous avez des doutes ou des questions, posez-les dans la section des commentaires ci-dessous ou vous pouvez également écrire toutes vos questions techniques sur les forums pour lancer une discussion.
#code start #imis/internet is the apn for idea connection connect "/usr/sbin/chat -v -f /etc/chatscripts/gprs -T airtelgprs.com" # For Raspberry Pi4 use /dev/ttyS0 as the communication port: /dev/ttyS0 # Baudrate 115200 # Assumes that your IP address is allocated dynamically by the ISP. noipdefault # Try to get the name server addresses from the ISP. usepeerdns # Use this connection as the default route to the internet. defaultroute # Makes PPPD "dial again" when the connection is lost. persist # Do not ask the remote to authenticate. noauth # No hardware flow control on the serial link with GSM Modem nocrtscts # No modem control lines with GSM Modem local #code end
Commentaires
Enregistrer un commentaire