• Première étape
  • Matériel et accessoires ; GPIO
  • Projets
  • Logiciel
    • Serveur Web
  • Arduino & ESP8266
  • Automatisation de la maison
  • Sonstiges
    • News
Facebook Twitter YouTube
Tutorials for Raspberry Pi Tutorials for Raspberry Pi
  • Matériel et accessoires ; GPIO
  • Projets
  • Logiciel
  • Serveur Web
  • Première étape
  • Automatisation de la maison
  • Anglais
  • Allemand
Tutorials for Raspberry Pi Tutorials for Raspberry Pi
Home»Logiciel»Communication sans fil entre les Raspberry Pi via le courtier/client MQTT

Communication sans fil entre les Raspberry Pi via le courtier/client MQTT

Facebook Twitter LinkedIn Tumblr Email Reddit
Funkkommunikation zwischen Raspberry Pi's mittels MQTT Broker/Client
Share
Facebook Twitter LinkedIn Email Tumblr Reddit Telegram WhatsApp

Le MQTT est un protocole qui envoie spécifiquement des données à partir de dispositifs de l’Internet des objets et est pris en charge par la plupart des microcontrôleurs et des systèmes. Pour utiliser la communication MQTT Raspberry Pi, peu de choses sont nécessaires, c’est pourquoi ce type de transmission est très intéressant. De plus, il est très facile à utiliser.

Dans ce tutoriel, nous installons un courtier Raspberry Pi MQTT, à la suite duquel nous recevons et envoyons des données. Nous pouvons soit utiliser plusieurs Raspberry Pi pour les tests, soit utiliser un seul appareil.

 

Accessoire

Ce tutoriel fonctionne sans beaucoup de matériel supplémentaire. Cependant, vous devez soit avoir au moins un Raspberry Pi (alternativement un Modèle Zéro W), soit connecter une clé wifi à votre Raspberry Pi pour utiliser MQTT.

D’autres appareils tels qu’un ESP8266 peuvent également communiquer en utilisant le MQTT. Cela est possible avec les Raspberry Pi ainsi qu’avec d’autres appareils. Il existe également des paquets prêts à l’emploi pour le NodeMCU.

 

Qu’est-ce que MQTT ?

Certains peuvent se demander ce que devrait être le MQTT. Pour citer la page officielle du MQTT :

MQTT is a machine-to-machine (M2M)/“Internet of Things“ connectivity protocol. It was designed as an extremely lightweight publish/subscribe messaging transport. It is useful for connections with remote locations where a small code footprint is required and/or network bandwidth is at a premium.

Il s’agit donc d’un protocole de réseau standardisé avec lequel des messages/commandes courts peuvent être transmis. Le grand avantage est que les adaptateurs wifi intégrés (par exemple dans le Raspberry Pi ou dans le ESP8266) sont utilisés pour la connexion internet. Plus d’accessoires et de câblage complexes ne sont pas nécessaires ! Il est ainsi possible d’envoyer les données via le réseau local ou l’internet.

En détail, le transfert se compose de trois éléments différents:

  • L’éditeur : envoie des messages.
  • Courtier : Transmet les messages aux abonnés enregistrés.
  • Abonné : Reçoit les messages par l’intermédiaire du courtier.

 

Serveur MQTT Raspberry Pi – Installez et testez Mosquitto

Il existe plusieurs applications qui peuvent être utilisées pour envoyer et recevoir par le biais du MQTT, mais la plus simple sur le Raspberry Pi est probablement Mosquitto. Nous allons d’abord l’installer sur le Raspberry Pi :

sudo apt-get install -y mosquitto mosquitto-clients

Après l’installation, un serveur Mosquitto est lancé automatiquement. On ouvre un abonné dans le canal « test_channel » qui attend des messages:

mosquitto_sub -h localhost -v -t test_channel

Le canal est ici comme une fréquence, sur laquelle on écoute. Par exemple, différentes données peuvent être envoyées sur différents canaux (par exemple, la température, l’humidité, la luminosité, etc.).

Afin de transférer simplement les données, on peut soit utiliser le même Raspberry Pi (ouvrir un nouveau terminal / connexion SSH), soit envoyer les données à partir d’un autre Pi. Si nous utilisons le même Raspberry Pi, l’utilisation est facilement possible. Pour cela, nous envoyons simplement un message test (en tant qu’éditeur) dans le même canal:

mosquitto_pub -h localhost -t test_channel -m "Hello Raspberry Pi"

Sinon, vous devez spécifier l’adresse IP interne (par exemple 192.168.1.5) du destinataire au lieu de « localhost ». Du côté du destinataire, le message doit apparaître soforn.

 

Raspberry Pi MQTT échange de données avec Python

La communication est super facile, comme nous l’avons vu. Pour que nous puissions utiliser le tout à partir de scripts, nous voulons le mettre à la disposition de Python. Pour cela, nous installons d’abord une bibliothèque via le gestionnaire de paquets Python (pour Python3, utilisez également pip3) :

sudo pip install paho-mqtt

Sinon (par exemple, si le paquet n’a pas pu être correctement installé), vous pouvez également l’installer manuellement :

git clone https://github.com/eclipse/paho.mqtt.python.git
cd paho.mqtt.python
python setup.py install

 

Nous commençons par le récepteur. Pour cela, nous créons un nouveau fichier avec le contenu :

sudo nano mqtt_subscriber.py

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import paho.mqtt.client as mqtt
 
MQTT_SERVER = "localhost"
MQTT_PATH = "test_channel"
 
# The callback for when the client receives a CONNACK response from the server.
def on_connect(client, userdata, flags, rc):
    print("Connected with result code "+str(rc))
 
    # Subscribing in on_connect() means that if we lose the connection and
    # reconnect then subscriptions will be renewed.
    client.subscribe(MQTT_PATH)
 
# The callback for when a PUBLISH message is received from the server.
def on_message(client, userdata, msg):
    print(msg.topic+" "+str(msg.payload))
    # more callbacks, etc
 
client = mqtt.Client()
client.on_connect = on_connect
client.on_message = on_message
 
client.connect(MQTT_SERVER, 1883, 60)
 
# Blocking call that processes network traffic, dispatches callbacks and
# handles reconnecting.
# Other loop*() functions are available that give a threaded interface and a
# manual interface.
client.loop_forever()

Après avoir enregistré et fermé (CTRL + O, CTRL + X), nous exécutons le fichier :

sudo python mqtt_subscriber.py

Soit vous envoyez une commande comme d’habitude par Shell Command, soit nous créons également un expéditeur / éditeur Python.

 

Le code de l’éditeur ressemble à ceci (créer un nouveau fichier et l’exécuter, en gardant à l’esprit l’adresse IP correcte) :

Python
1
2
3
4
5
6
7
import paho.mqtt.publish as publish
 
MQTT_SERVER = "192.168.1.5"
MQTT_PATH = "test_channel"
 
publish.single(MQTT_PATH, "Hello World!", hostname=MQTT_SERVER)
 

C’est tout ! Vous pouvez maintenant inclure les parties appropriées dans vos scripts et recevoir ou envoyer des messages MQTT d’autres Raspberry Pi. Bien sûr, cela ne se limite pas aux Raspberry Pi car les messages peuvent également provenir d’autres appareils ou être adressés à ceux-ci.

 

Autres moyens de communiquer avec les Raspberry Pi

Bien sûr, le MQTT est loin d’être le seul moyen d’échanger des données. Si vous avez un système avec son propre système d’exploitation, c’est le cas. Raspbian peut être établi en utilisant des connexions SSH et, par exemple, envoyer via des fichiers SCP. Cependant, les appareils doivent disposer d’une connexion réseau.

Une autre possibilité sans connexion à Internet sont les émetteurs et récepteurs radio normaux. Voici par exemple la transmission radio 433 MHz qui est très populaire car les modules sont très peu coûteux et de nombreux appareils tels que les prises radio ou les portes de garage sont compatibles avec elle. Toutefois, ce transfert est limité à 24 bits, ce qui est peu.

Il est possible de transmettre davantage de données par message via la transmission radio 2,4 GHz. Ce transfert diffère du MQTT car des modules supplémentaires sont utilisés. Cependant, il est également possible d’envoyer des commandes ou des messages à Arduinos.

2.4 GHz 433 mhz adaptateur wlan arduino baguette wlan Broker Emetteur radiophonique ESP8266 module radiophonique Moustique MQTT Prise radio python récepteur radiophonique Transfert de données
Share. Facebook Twitter Pinterest LinkedIn Tumblr Email
Previous ArticleESP32 Cam Livestream Tutorial – Kamera Modul für den ESP8266
Next Article Construire une balance numérique Raspberry Pi (avec capteur de poids HX711)

Related Posts

Enregistrer les données des capteurs Raspberry Pi avec ThingSpeak et les analyser

MCP3008 : Lire des signaux analogiques sur le Raspberry Pi

Contrôler le module RTC de Raspberry Pi – Horloge temps réel I2C

Transfert de données Bluetooth de Raspberry Pi vers le Smartphone

Leave A Reply Cancel Reply

Raspberry Pi : Commutateur de relais de commande via GPIO

Comment établir une connexion Raspberry Pi à distance de bureau

Création d’un certificat SSL Raspberry Pi gratuit avec Let’s Encrypt

7 segments d’affichage (anode) avec MAX7219 / MAX7221 et Raspberry Pi

Utilisez C# et .NET pour développer vos propres applications GUI pour le Raspberry Pi

Utiliser un joystick sur le Raspberry Pi (avec MCP3008)

ABONNEZ-VOUS MAINTENANT
Et recevez de nouveaux tutoriels dans votre boîte de réception.
Cliquez ici pour soumettre!

Merci!

Nous vous contacterons bientôt.

Tutorials for Raspberry Pi
Facebook Twitter YouTube
  • Politique de confidentialité
  • Conditions de service & Politique sur les cookies

Type above and press Enter to search. Press Esc to cancel.