Skip to content

HichamGuessab/MQTT_RaspberryPi_To_ArduinoEthernet

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MQTT_RaspberryPi_To_ArduinoEthernet

Description

Ce projet permet de faire communiquer une Raspberry Pi 4 et une carte Arduino Ethernet.

Le code Arduino permet de contrôler des moteurs à courant continu via une MD25, les moteurs s'arrêtent initialement lorsque la distance envoyé par la Raspberry Pi est inférieure à 15 cm.

Fonctionnement du protocole MQTT

  • Broker : Serveur par lequel les données transites via des topics.

  • Topic : Identifiant d’un type de message (par exemple : “Temperature” ou “Distance”) servant à factoriser l’information reçu sur le serveur.

  • Client : Dispositif se connectant au serveur pour envoyer et / ou recevoir des messages sur un ou plusieurs topics.

Le fonctionnement du protocole MQTT est basé sur les topics présents sur le Broker :

  1. Lancement du broker.
  2. Un client “publisher” se connecte au Broker MQTT, crée un topic pour y publier des informations.
  3. Un client “subscriber” se connecte au Broker MQTT et s’inscrit à un ou plusieurs topics afin d’en recevoir les messages en temps réel.

Pré-requis

Librairies Arduino

Librairie Lien (si disponible) Version Author
Arduino.h https://www.arduino.cc/reference/en/ ——— ——————
PubSubClient.h https://github.com/knolleary/pubsubclient.git 2.8.0 Nick O’Leary
SoftwareSerial.h https://docs.arduino.cc/learn/built-in-libraries/software-serial ——— ——————
avr/sleep.h Included in Arduino IDE ——— ——————
SPI.h https://github.com/bxparks/AceSPI.git 0.3.0 Brian T. Park
Ethernet.h https://github.com/arduino-libraries/Ethernet.git 2.0.2 Various authors

Librairies Python

Librairie Lien Version Author
paho-mqtt https://github.com/eclipse/paho.mqtt.python.git 1.6.1 Eclipse

Installation

Réseau

  1. Brancher le câble ethernet à la Raspberry Pi et l’Arduino Ethernet

  2. Re-configurer l’interface ethernet 0 (eth0) afin de désactiver le DHCP

    sudo vi /etc/dhcpcd.conf
  3. Modifier les lignes associées.

    interface eth0
    static ip_address=192.168.1.2/24
    static routers=#nothing
    static domain_name_servers=#nothing
    noipv6
    static domain_search=#nothing
  4. Redémarrer le réseau

    sudo systemctl restart networking

Arduino

MotorControlTroughRaspi.ino

  • Définir l’adresse mac de l’arduino :

    // A changer selon l'adresse mac de l'arduino
    uint8_t mac[] = {0x90, 0xA2,0xDA, 0x00, 0x72, 0x8E}
    
  • Définir les attributs de la connexion :

    #include <Ethernet.h> //Version 2.0.1 lors des tests
    
    IPAddress ip(192, 168, 1, 3) //Adresse assignée à l'arduino (adresse de la pi+1)
    IPAddress dns(192, 168, 1, 2)
    IPAddress gateway(192, 168, 1, 2)
    IPAddress subnet(255, 255, 255, 0)
    IPAddress mqtt_server(192, 168, 1, 2)
    const int mqtt_port = 1883;
    

Mosquitto

mosquitto.conf

  • Installation & Configuration

    1. Installer Mosquitto

      sudo apt install mosquitto
    2. Modifier le port et l’adresse IP associés au listener dans le fichier mosquitto.conf disponible ci-dessus.

      listener 1883 192.168.1.2
  • Lancer le broker :

    mosquitto -c path/to/mosquitto.conf
    
    # Si ça ne fonctionne pas
    /usr/local/sbin/mosquitto -c path/to/mosquitto.conf
  • Arrêter le broker :

    ctrl+c
      ou
    pkill mosquitto

Publisher & Subscriber

publisher.py

subscriber.py

  1. Modifier les adresses IP et les ports dans chaque fichier

  2. Lancer le publisher

    python3 publisher.py
  3. Lancer le subscriber

    python3 subscriber.py

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors