Table des matières:
- Fournitures
- Étape 1: Caractéristiques
- Étape 2: Étape 1: Connaître la carte IoT (A)
- Étape 3: Étape 2: Comment l'assembler
- Étape 4: Étape 3: Branchez l'antenne
- Étape 5: Étape 4: Environnement du système d'exploitation et configurations logicielles
- Étape 6: Étape 5: Configurer I2C (Raspberry Pi)
- Étape 7: Étape 6: Connaître les informations du registre
- Étape 8:
- Étape 9: Instructions:
- Étape 10: Comment utiliser le module GPS avec Gpsd (Raspberry Pi)
- Étape 11: Comment utiliser le module GPS avec C (Raspberry Pi)
- Étape 12: Compilez-le
- Étape 13: Comment utiliser le module GPS avec Python (Raspberry Pi)
- Étape 14: Comment utiliser le module GSM avec PPPd (Raspberry Pi)
- Étape 15: Comment diagnostiquer mon module GSM (Raspberry Pi)
- Étape 16: Comment utiliser Lora TX & RX avec C (Raspberry Pi)
- Étape 17: Description spéciale de la bande passante I2C
- Étape 18: Terminé
Vidéo: [Série Docker Pi] Comment utiliser le module IoT Node (A) sur Raspberry Pi : 18 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:07
Qu'est-ce que le module IoT Node (A) ?
Le nœud IoT (A) est l'un des modules de la série Docker Pi.
Nœud IOT (A) = GPS/BDS + GSM + Lora.
I2C contrôle directement Lora, envoie et reçoit des données, contrôle le module GSM/GPS/BDS via SC16IS752, la carte mère n'a besoin que du support I2C.
Prend en charge Raspberry Pi et d'autres produits similaires.
Fournitures
1x Raspberry Pi 2B/3B/3B+/4B/3A+/Zéro/Zéro W
1x produit de la série Docker Pi: module IoT Node (A)
1x carte TF classe 10 de 16 Go
1x alimentation 5V/2.5A (5V@3A pour Pi 4B)
Étape 1: Caractéristiques
- Série Docker Pi
- Programmable
- Contrôle directement (sans programmation)
- Étendre les broches GPIO
- Prise en charge GPS/BDS
- Assistance GSM
- Lora Soutien
- Peut s'empiler avec d'autres panneaux d'empilement
- Indépendant du matériel de la carte mère (nécessite le support I2C)
Étape 2: Étape 1: Connaître la carte IoT (A)
Le nœud IoT (A) est l'un des modules de la série Docker Pi.
Nœud IOT (A) = GPS/BDS + GSM + Lora.
I2C contrôle directement Lora, envoie et reçoit des données, contrôle le module GSM/GPS/BDS via SC16IS752, la carte mère n'a besoin que de la prise en charge I2C. Prend en charge Raspberry Pi et d'autres produits similaires.
Vous pouvez donc créer un appareil de communication de milieu de gamme en utilisant deux d'entre eux.
et vous pouvez également localiser l'emplacement de votre appareil en utilisant le module GPS à bord.
Insérez une carte SIM, elle deviendra une station émettrice via un message SMS.
Étape 3: Étape 2: Comment l'assembler
Il est très facile à assembler grâce à sa conception "HAT", il vous suffit de le mettre sur votre raspberry pi et de le connecter via des broches GPIO, comme un "chapeau" sur raspberry pi, de sorte que vous n'ayez pas à ajouter la masse câble.
Étape 4: Étape 3: Branchez l'antenne
Il y a 3 pièces d'antenne pour ce module IoT (A), l'une d'entre elles est pour le module loar, c'est une antenne de type SMA, et l'une d'elles est bonne pour votre GPS, c'est une antenne carrée qui a un port IPX. et le dernier est pour le module SIM (A9G), c'est une petite antenne qui a un port IPX. connectez l'antenne et montez le chapeau sur votre raspberry pi.
Comment assembler Montez la carte Iot Node (A) sur Raspberry Pi
Branchez GPS Antana et Lora Antana au port IPX.
- E1:GPS-ANTANA-IPX
- E3:LoRa-ANTANA-IPX
Visse l'antana GPRS sur le port SMA.
Étape 5: Étape 4: Environnement du système d'exploitation et configurations logicielles
Dans cette étape, vous devez faire ces choses:
1. Téléchargez le dernier fichier image sur: www.raspberrypi.org/downloads
2. Décompressez-le.
3. Flashez votre carte TF avec la dernière image via l'outil de gravure
4. Modifiez le fichier /boot/config.txt et ajoutez ce paragraphe.
dtoverlay=sc16is752-i2c
5. Remplace le fichier /boot/overlay/sc16is752-i2c.dtbo par ce fichier:
wiki.52pi.com/index.php/File:Sc16is752-i2c…
PS: n'oubliez pas de le décompresser et de le mettre dans votre dossier /boot/overlay/ et de remplacer l'ancien.
6. Redémarrez votre Raspberry Pi.
Étape 6: Étape 5: Configurer I2C (Raspberry Pi)
Exécutez sudo raspi-config et suivez les invites pour installer le support i2c pour le noyau ARM et le noyau Linux Accédez aux options d'interfaçage
Étape 7: Étape 6: Connaître les informations du registre
Rubrique GPRS
Faible consommation d'énergie, courant de veille <1mA2.
Prend en charge les quatre bandes de fréquences GSM/GPRS, dont 850, 900, 1800, 1900MHZ
GPRS classe 10
Prend en charge le service de données GPRS, débit de données maximal, téléchargement 85,6 Kbps, téléchargement 42,8 Kbps
Prend en charge les commandes standard GSM07.07, 07.05 AT et accède au port série via la conversion d'interface I2C
Les commandes AT prennent en charge les ports de commande AT et TCP/IP standard
Section GPSPrise en charge du positionnement conjoint BDS/GPS
Prise en charge A-GPS, A-BDS
Prise en charge de la carte SIM standard
Section LORA Distance de transmission: 500 mètres (paramètres RF: 0x50 @ China City)
Prise en charge des méthodes de modulation FSK, GFSK, MSK, GMSK, LoRaTM et OOK
Sensibilité ultra-élevée du récepteur aussi faible que -141 dBm
Prise en charge de la détection de préambule
Moteur de paquets avec CRC, jusqu'à 256 octets
Indicateur d'émetteur-récepteur LORA
TX/RX facile par Docker Pi
Étape 8:
Module A9G
Le module A9G offre deux ports série.
Utilisez le pont I2C UART pour la communication.
Nom du module de port série
- /dev/ttySC0 GSM
- /dev/ttySC1 GPS/BDS
S'inscrire Carte
- Registre Adresse Fonction Valeur
- 0x01 LORA_TX1 Lora TX Buffer 1 - Données utilisateur
- 0x02 LORA_TX2 Lora TX Buffer 2 - Données utilisateur
- 0x03 LORA_TX3 Lora TX Buffer 3 - Données utilisateur
- 0x04 LORA_TX4 Lora TX Buffer 4 - Données utilisateur
- 0x05 LORA_TX5 Lora TX Buffer 5 - Données utilisateur
- 0x06 LORA_TX6 Lora TX Buffer 6 - Données utilisateur
- 0x07 LORA_TX7 Lora TX Buffer 7 - Données utilisateur
- 0x08 LORA_TX8 Lora TX Buffer 8 - Données utilisateur
- 0x09 LORA_TX9 Lora TX Buffer 9 - Données utilisateur
- 0x0a LORA_TX10 Lora TX Buffer 10 - Données utilisateur
- 0x0b LORA_TX11 Lora TX Buffer 11 - Données utilisateur
- 0x0c LORA_TX12 Lora TX Buffer 12 - Données utilisateur
- 0x0d LORA_TX13 Lora TX Buffer 13 - Données utilisateur
- 0x0e LORA_TX14 Lora TX Buffer 14 - Données utilisateur
- 0x0f LORA_TX15 Lora TX Buffer 15 - Données utilisateur
- 0x10 LORA_TX16 Lora TX Buffer 16 - Données utilisateur
- 0x11 LORA_RX1 Lora RX Buffer 1 - Données utilisateur
- 0x12 LORA_RX2 Lora RX Buffer 2 - Données utilisateur
- 0x13 LORA_RX3 Lora RX Buffer 3 - Données utilisateur
- 0x14 LORA_RX4 Lora RX Buffer 4 - Données utilisateur
- 0x15 LORA_RX5 Lora RX Buffer 5 - Données utilisateur
- 0x16 LORA_RX6 Lora RX Buffer 6 - Données utilisateur
- 0x17 LORA_RX7 Lora RX Buffer 7 - Données utilisateur
- 0x18 LORA_RX8 Lora RX Buffer 8 - Données utilisateur
- 0x19 LORA_RX9 Lora RX Buffer 9 - Données utilisateur
- 0x1a LORA_RX10 Lora RX Buffer 10 - Données utilisateur
- 0x1b LORA_RX11 Lora RX Buffer 11 - Données utilisateur
- 0x1c LORA_RX12 Lora RX Buffer 12 - Données utilisateur
- 0x1d LORA_RX13 Lora RX Buffer 13 - Données utilisateur
- 0x1e LORA_RX14 Lora RX Buffer 14 - Données utilisateur
- 0x1f LORA_RX15 Lora RX Buffer 15 - Données utilisateur
- 0x20 LORA_RX16 Lora RX Buffer 16 - Données utilisateur
- 0x01 - 0x10 Écriture uniquement.
- 0x11 - 0x20 Lecture seule.
Étape 9: Instructions:
L_SET (écriture seule)
- Écrivez 1 pour définir les paramètres de 0x22 au module LORA.
- Ecrire 0 sans effet
G_RESET (écriture seule)
- Ecrire 1 pour réinitialiser le module A9G
- Ecrire 0 sans effet
L_RXNE (lecture et écriture)
- Ecrire 1 cause d'erreur
- Écrivez 0 pour effacer
- Lire 1 signifie que des données ont été reçues, veuillez obtenir les données du registre 0x11 - 0x20.
- Lire 0 signifie qu'aucune donnée n'est disponible pour le moment.
L_SET (écriture seule)
- Écrivez 1 pour envoyer des données, veuillez remplir les données dans le registre 0x01 - 0x10 avant l'envoi.
- Ecrire 0 sans effet
Étape 10: Comment utiliser le module GPS avec Gpsd (Raspberry Pi)
Comment utiliser le module GPS avec gpsd (Raspberry Pi)
Tout d'abord, remplacez le fichier /boot/overlays/sc16is752-i2c.dtbo et assurez-vous que I2C fonctionne correctement.
- Remplacer sc16is752-i2c.dtbo
- Configuration d'I2C
- Installer les outils gpsd.
Ouvrez un terminal et tapez cette commande:
sudo apt installer gpsd gpsd-clients
Modifiez le fichier /etc/default/gpsd et ajoutez les paramètres suivants:
- APPAREILS="/dev/ttySC1"
- GPSD_OPTIONS="-F /var/run/gpsd.sock"
Entrez la commande i2cset -y 1 0x16 0x23 0x40 pour réinitialiser le module GPRS.
Script Python pour Open GPS:
import serialimport os import time # Redémarrez le service gpsd. os.system("sudo systemctl restart gpsd.socket") # Ouvrir le port série ser = serial. Serial('/dev/ttySC0', 115200) i = 0 if ser.isOpen == False: ser.open() try: print("Activer le GPS…") tant que True: ser.write(str.encode("AT+GPS=1\r")) size = ser.inWaiting() if size != 0: ticks = time.time() réponse = ser.read(size) gps = str(response, encoding="utf-8") if(gps.find("OK") != -1): os.system("sudo cgps -s") exit() else: i = i + 1 print("En attente d'activation du GPS, si le temps est trop long, veuillez tester à l'extérieur:" + str(i)) ser.flushInput() time.sleep(1) sauf KeyboardInterrupt: ser.flushInput() ser.close()
Enregistrez-le et exécutez-le:
python3 GPS.py
Étape 11: Comment utiliser le module GPS avec C (Raspberry Pi)
Installer les outils gpsd
sudo apt-get installer libgps-dev
Créez le code source et nommez-le "gps.c"
#include #include #include
#comprendre
#comprendre
int main()
{ int rc; struct timeval tv; struct gps_data_t gps_data; if ((rc = gps_open("localhost", "2947", &gps_data)) == -1) { printf("code: %d, raison: %s\n", rc, gps_errstr(rc)); renvoie EXIT_FAILURE; } gps_stream(&gps_data, WATCH_ENABLE | WATCH_JSON, NULL);
tandis que (1)
{ /* attendre 2 secondes pour recevoir les données */ if (gps_waiting(&gps_data, 2000000)) { /* lire les données */ if ((rc = gps_read(&gps_data)) == -1) { printf("une erreur s'est produite lors de la lecture données gps. code: %d, raison: %s\n", rc, gps_errstr(rc)); } else { /* Affiche les données du récepteur GPS. */ if ((gps_data.status == STATUS_FIX) && (gps_data.fix.mode == MODE_2D || gps_data.fix.mode == MODE_3D) && !isnan(gps_data.fix.latitude) && !isnan(gps_data.fix.longitude)) { /* gettimeofday(&tv, NULL); EDIT: tv.tv_sec n'est pas réellement l'horodatage ! */
printf("latitude: %f, longitude: %f, vitesse: %f, horodatage: %lf\n", gps_data.fix.latitude, gps_data.fix.longitude, gps_data.fix.speed, gps_data.fix.time);
// EDIT: Remplacé tv.tv_sec par gps_data.fix.time } else { printf("aucune donnée GPS disponible\n"); } } } sommeil(3); } /* Lorsque vous avez terminé… */ gps_stream(&gps_data, WATCH_DISABLE, NULL); gps_close(&gps_data); renvoie EXIT_SUCCESS; }
Étape 12: Compilez-le
Compiler!
gcc gps.c -lm -lgps -o gps
Exécutez-le !
./GPS
Étape 13: Comment utiliser le module GPS avec Python (Raspberry Pi)
Il est recommandé d'exécuter le code suivant à l'aide de Python 3 et d'installer la bibliothèque gpsd-py3 et GPS 2D/3D Fix:
importer gpsd
# Se connecter au gpsd local
gpsd.connect()
# Obtenir la position GPS
paquet = gpsd.get_current()
# Voir les documents en ligne pour GpsResponse pour les données disponibles
print(paquet.position())
Étape 14: Comment utiliser le module GSM avec PPPd (Raspberry Pi)
A) Tout d'abord, remplacez le fichier /boot/overlays/sc16is752-i2c.dtbo et assurez-vous que I2C fonctionne correctement.
- Remplacer sc16is752-i2c.dtbo
- Configuration d'I2C
B)Entrez la commande i2cset -y 1 0x16 0x23 0x40 pour réinitialiser le module GPRS.
Après avoir exécuté la commande, vous devez attendre un peu, environ 10 secondes
Vous pouvez également utiliser la méthode suivante pour réinitialiser.
C) Entrer la commande
sudo apt installer ppp
pour installer des outils ppp.
D) Copiez /etc/ppp/peers/provider dans /etc/ppp/peers/gprs
E) Modifier /etc/ppp/peers/gprs
- Ligne 10: Veuillez consulter votre fournisseur de services pour l'utilisateur (Exemple: cmnet).
- Ligne 15: Veuillez consulter votre fournisseur de services pour l'apn (Exemple: cmnet).
- Ligne 18 - Ligne 24: Paramètre recommandé
F)Modifiez /etc/chatscripts/gprs (changez la ligne 34 en ligne 35, le numéro d'appel peut être PAS *99#)
G) Entrez la commande sudo pppd call gprs pour vous connecter.
H) Vérifiez votre configuration PPP auprès de votre FAI.
I)Entrez la commande ping -I ppp0 8.8.8.8 testez votre réseau (si Internet est disponible et la table de routage est correcte)
J) Veuillez garder le signal GSM bon, sinon ce qui suit se produira.
Étape 15: Comment diagnostiquer mon module GSM (Raspberry Pi)
Il est recommandé d'exécuter le code suivant à l'aide de Python 3 et d'installer la bibliothèque smbus:
import serialimport time import smbus import operator import os
print("En attente d'initialisation…")
bus = smbus. SMbus(1)
bus.write_byte_data (0x16, 0x23, 0x40)
ser = série. Série('/dev/ttySC0', 115200)
si ser.isOpen == False:
ser.open() essayez: print('-'*60) print("Initialisation du module GPRS A9G.") print("Connexion GSM…") time.sleep(3) i = 0 tant que True: ser.write(str.encode("AT+CCID\r")) size = ser.inWaiting() if size != 0: ticks = time.time() response = ser.read(size) ccid = str(response, encoding="utf -8") print(ccid) else: i = i + 1 ser.flushInput() time.sleep(1) sauf KeyboardInterrupt: ser.close()
Exécutez le script de test, en fonction des résultats de l'implémentation, nous pouvons diagnostiquer le module GSM. Par exemple, le retour suivant, l'erreur CME ERROR 53 nous indique que la puissance n'est pas bonne. Code CME = Erreurs liées à l'équipement GSM
Bien entendu, le script a également une fonction de réinitialisation. Si vous pouvez afficher correctement le CCID, la réinitialisation est terminée.
Étape 16: Comment utiliser Lora TX & RX avec C (Raspberry Pi)
Il est recommandé d'exécuter le code suivant à l'aide de Python 3 et d'installer la bibliothèque smbus.
Il doit être transféré entre les deux nœuds IOT (A). Le contenu envoyé par lui-même ne peut pas être reçu par lui-même. Veuillez l'enregistrer en tant que script py pour l'exécution.
Comment envoyer: après avoir rempli les données dans le registre 0x01 - 0x10, définissez le bit L_TX pour commencer à envoyer des données.
import timeimport smbus import os import sys
bus = smbus. SMbus(1)
essayer:
data_list = [170, 85, 165, 90] # écrire les données dans le registre, puis les données seront envoyées. pour l'index dans la plage (1, len(data_list) + 1): bus.write_byte_data (0x16, index, data_list[index - 1]) print("LORA envoie les données au %d registre %d données" %(index, data_list[index - 1])) bus.write_byte_data(0x16, 0x23, 0x01) sauf KeyboardInterrupt: sys.exit()
Comment envoyer la réception: vérifiez le bit L_RXNE. Si défini, de nouvelles données sont arrivées, cet indicateur doit être supprimé manuellement
import timeimport smbus import os import sys
bus = smbus. SMbus(1)
données_recv =
essayer:
if bus.read_byte_data (0x16, 0x23) & 0x02: # effacer manuellement L_RXNE bus.write_byte_data (0x16, 0x23, 0x00) register_list = [0x11, 0x12, 0x13, 0x14] # lire les données pour l'index dans la plage (0x11, len(register_list) + 0x11): recv_data.append(bus.read_byte_data(0x16, register_list[index - 0x11]))
print("Données reçues:")
print(recv_data) else: print("Aucune donnée reçue pour le moment~") sauf KeyboardInterrupt: sys.exit()
Étape 17: Description spéciale de la bande passante I2C
La limite de la vitesse I2C est de 400 kHz, en raison du protocole I2C, de sorte que la bande passante effective d'un seul appareil est inférieure à 320 kbps, la bande passante effective de plusieurs appareils est inférieure à 160 kbps. La limite de la vitesse du pont I2C UART est de 115 200 bps. Lorsque GPS et GSM fonctionnent en même temps, la bande passante I2C est insuffisante, car 115,2 kbps * 2 = 230,4 kbps, donc certaines données déborderont. La réduction du débit en bauds des communications GPS et GSM peut améliorer le manque de bande passante de communication. L'empilement d'autres modules DockerPi peut prendre du temps bande passante I2C supplémentaire. En général, la vitesse des données du réseau est lente, donc la bande passante GSM n'est pas pleine, il n'y a donc pas de problème de débordement.
Étape 18: Terminé
J'espère que vous l'aimerez et que vous le ferez.
Vous pouvez le trouver ici:
Amazone
Veilleuse:https://www.amazon.com/GeeekPi-Night-Light-WS2812-Raspberry/dp/B07LCG2S5S Carte relais 4 canaux: https://www.amazon.co.uk/dp/B07MV1TJGR?ref=myi_title_dp Carte d'alimentation :https://www.amazon.co.uk/dp/B07TD595VS?ref=myi_title_dp IoT Node(A):https://www.amazon.co.uk/dp/B07TY15M1C Sensor HUB: https://www. amazon.co.uk/dp/B07TZD8B61 tour de glace:
Conseillé:
Comment utiliser Autoland sur le X-Plane 11 737 par défaut : 10 étapes
Comment utiliser l'atterrissage automatique sur le 737 X-Plane 11 par défaut : Je pilotais le 737 par défaut sur X-Plane 11 et je voulais faire un atterrissage automatique. Je suis allé sur Internet et j'ai cherché "comment atterrir automatiquement le 737 par défaut" mais tous les résultats que j'ai obtenus concernaient le 737 modifié par Zibo. J'ai compris comment obtenir le
Comment utiliser un débogueur sur un ESP32 : 11 étapes (avec photos)
Comment utiliser un débogueur sur un ESP32 : Avez-vous déjà voulu jeter un œil à l'intérieur de votre code pour voir pourquoi il se comporte ainsi ? Traditionnellement dans les projets ESP32, vous auriez dû ajouter une instruction d'impression sans fin pour essayer de comprendre ce qui se passait, mais il existe un meilleur moyen! Un débogueur
Clignotement LED avec Raspberry Pi - Comment utiliser les broches GPIO sur Raspberry Pi : 4 étapes
Clignotement LED avec Raspberry Pi | Comment utiliser les broches GPIO sur Raspberry Pi : Salut les gars dans cette instructables, nous allons apprendre à utiliser les GPIO de Raspberry pi. Si vous avez déjà utilisé Arduino, vous savez probablement que nous pouvons connecter un commutateur LED, etc. à ses broches et le faire fonctionner comme. faire clignoter la LED ou obtenir l'entrée du commutateur donc
Comment utiliser le terminal Mac et comment utiliser les fonctions clés : 4 étapes
Comment utiliser le terminal Mac et comment utiliser les fonctions clés : Nous allons vous montrer comment ouvrir le terminal MAC. Nous vous montrerons également quelques fonctionnalités du terminal, telles que ifconfig, le changement de répertoire, l'accès aux fichiers et arp. Ifconfig vous permettra de vérifier votre adresse IP, et votre annonce MAC
Comment utiliser SpamAssassin complet sur les comptes hébergés sur Pair.com : 9 étapes
Comment utiliser SpamAssassin complet sur les comptes hébergés sur Pair.com : J'héberge un ou deux domaines sur pair.com. Ils ont d'excellentes fonctionnalités d'hébergement telles qu'un shell SSH, mysql, la prise en charge de php et plus encore. Ils n'ont cependant pas d'installation complète de SpamAssassin. Ils ont une version dépouillée étrange qui vous permet seulement d'ajouter du noir