1. Résumé:
- Ce blog vous explique comment communiquer un Arduino et un Raspberry Pi avec le module nRF24L01. Pour commencer, Nous allons apprendre quelques bases du Raspberry Pi, puis nous allons jeter un coup d’œil à la configuration du Raspberry Pi sans tête. Pour la mise en œuvre tout d’abord, nous comprendrons la simple communication d’Arduino à Arduino puis nous apprendrons Arduino au raspberry pi.
- J’ai trouvé de nombreux guides pour y parvenir sur Internet, mais aucun d’entre eux n’était complet ou entièrement travaillé pour moi. Ici, nous allons comprendre le guide étape par étape de ce processus. Et à la fin montrera un exemple de travail pour le même
2. Composants Requis:
- Capteur à ultrasons
- 2 Arduino Uno
- Raspberry Pi 3
- 2 Émetteur et récepteur nRF24l01
- Fils de saut
- Câble Arduino
- MINI USB 2.0 pour Pi
- Platine de prototypage
3. Logiciel Requis:
- Raspbian pour pi
- Arduino ID ou Visual Studio
- Putty sur un ordinateur distant pour SSH
- VNC viewer sur un ordinateur distant
4. Introduction au Raspberry Pi 3:
4.1. Spécifications des Composants:
- 1.4 ARM Cortex-A53 quadricœur 64 bits GHz, 1 Go de RAM
- LAN sans fil 802.11ac double bande 2.4 / 5 GHz, Ethernet Bluetooth 10/100/1000 Mbps 4.2
- 4 Ports USB, port HDMI complet, Combiné 3.prise audio 5 mm et port vidéo composite, 40 broches GPIO
- Emplacement pour carte Micro SD, cœur graphique 3D Video Core IV, interface de caméra (CSI), Interface d’affichage (DSI)
4.2 Brochage Raspberry Pi:
4.3. Configuration du Raspberry Pi sans Tête:
- Disons, je viens d’acheter un raspberry pi et je souhaite vérifier comment cela fonctionne. Mais tout ce que j’ai, c’est mon ordinateur portable, le Pi, une carte micro SD et mon réseau Wi-Fi. Comment puis-je connecter et contrôler le Pi?
1) Télécharger Raspbian:
- Votre Pi a besoin d’un système d’exploitation. Télécharger Raspbian depuis Raspberrypi.org section de téléchargement:
- https://www.raspberrypi.org/downloads/raspbian/
2) Télécharger le Formateur de Carte Mémoire SD:
- Il est utilisé pour formater la carte SD car il est nécessaire que la carte SD soit vide avant l’image clignotante que vous avez téléchargée. Vous pouvez le télécharger à partir de https://www.sdcard.org/downloads/formatter/eula_windows/
3) Flashez-le sur une carte SD:
- Vous devez flasher cette image téléchargée sur la carte micro SD. En supposant que votre ordinateur portable dispose d’un emplacement pour carte SD ou d’un lecteur de carte micro Sd, vous avez besoin d’un logiciel clignotant comme etcher. Allez-y et téléchargez à partir de https://etcher.io/
4) Configurer le Wi-Fi:
- Il est plus facile de faire parler deux appareils s’ils sont sur le même réseau. Un câble Ethernet peut facilement mettre le réseau de votre ordinateur portable à la disposition du Pi. Mais nous n’en avons pas. Nous allons donc ajouter un fichier à la carte SD pour que le Pi démarre avec un wifi préconfiguré.
- La carte SD se monte en deux volumes boot et rootfs. Ouvrez le volume de démarrage et créez un fichier nommé wpa_supplicant.conf au démarrage du RPi, ce fichier sera copié dans le répertoire /etc/wpa_supplicant de la partition /rootfs. Le fichier copié indique au Pi les informations de configuration WIFI. Cela écraserait toute configuration WIFI existante, donc si vous aviez déjà configuré le WIFI sur le pi, cela sera écrasé.
- Un composant wpa_supplicant typique.le fichier conf est le suivant:
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdevupdate_config=1country=US network={ ssid=""your_SSID"" psk=""your_PSK"" key_mgmt=WPA-PSK}
REMARQUE: Votre SSID est le nom de votre WIFI. Et psk est le mot de passe du WI-FI.
5) Activer SSH
- Nous accéderons plus tard au Pi en utilisant un shell sécurisé (SSH), SSH est désactivé par défaut dans Raspbian. Pour activer SSH, créez un fichier nommé SSH dans la partition de démarrage. Si vous êtes sous Linux, utilisez la commande touch pour le faire.
6) Trouver l’adresse Ip de Pi:
- Avant d’allumer votre raspberry pi, nous devons connaître les périphériques existants connectés au réseau. Assurez-vous que votre ordinateur portable est connecté au même réseau WIFI que celui que vous avez configuré sur pi ci-dessus.
- Téléchargez le scanner IP avancé pour scanner l’IP de notre raspberry pi. Vous pouvez le télécharger ici https://www.advanced-ip-scanner.com/
7) SSH dans votre Pi:
- Pour créer une connexion shell sécurisée sous Linux, nous pouvons utiliser la commande ssh. Si vous êtes sous Windows, essayez de télécharger Putty depuis https://www.putty.org/
Les informations d’identification par défaut sont:
username: pipassword: raspberry
8) Accéder à Pi à distance:
- Parfois, ça ne va pas si on ne peut pas utiliser la souris. Pour cela, nous devons nous pencher sur le bureau Raspbian.
- Nous devons configurer VNC (Connexion réseau virtuelle) pour voir et contrôler Pi graphiquement. Faisons ça.
- Pour accéder au bureau à distance, vous avez besoin de VNC-viewer (client) pour votre ordinateur portable. Heureusement, RealVNC est disponible pour de nombreux systèmes d’exploitation, choisissez-en un pour votre système d’exploitation parmi https://www.realvnc.com/en/connect/download/viewer/
9) Commandes pour vncserver:
10) Ouvrez maintenant VNC Viewer sur votre ordinateur distant:
5. Mise en œuvre et fonctionnement:
5.1. Communication sans fil d’Arduino à Arduino avec nRF24L01:
- En cela, nous allons apprendre à faire une communication sans fil entre deux cartes Arduino en utilisant le NRF24L01. Et mesurez la distance avec un capteur à ultrasons et transmettez-la à un autre Arduino avec module émetteur-récepteur.
Instructions de câblage:
Pour câbler votre émetteur sans fil NRF24L01+ à votre Arduino, connectez les broches suivantes:
- Connectez la broche VCC à 3.3 Volts
- Connecter la broche GND à la terre (GND)
- Connecter la broche CE à Arduino 9
- Connecter la broche CSN à Arduino 10
- Connecter la broche SCK à Arduino 13
- Connecter la broche MOSI à Arduino 11
- Connecter la broche MISO à Arduino 12
Pour câbler votre capteur à ultrasons à votre Arduino, connectez les broches suivantes:
- Connecter la broche VCC à Arduino 5Volts
- Connecter la broche GND à la masse (GND)
- Connecter la broche Trig à Arduino 4
- Connecter la broche Echo à Arduino 3
Pour câbler votre émetteur sans fil NRF24L01+ à votre Arduino, connectez les broches suivantes:
- Connectez la broche VCC à 3.3 Volts
- Connecter la broche GND à la terre (GND)
- Connecter la broche CE à Arduino 9
- Connecter la broche CSN à Arduino 10
- Connecter la broche SCK à Arduino 13
- Connecter la broche MOSI à Arduino 11
- Connecter la broche MISO à Arduino 12
REMARQUE: Le module RF24 est obligatoire pour que le code s’exécute afin que vous puissiez ajouter la bibliothèque en conséquence
- Démarrez Arduino ID puis ajoutez la bibliothèque téléchargée à partir d’ici :
5.2. Code :
Code côté expéditeur:
Code côté récepteur:
Envoi des Données
Réception des données:
6. Communication sans fil d’Arduino vers Raspberry Pi avec nRF24L01 :
6.1 : Installation du module RF24 sur Raspberry Pi:
- C’est l’étape la plus importante et la plus importante pour toute communication entre Arduino et Raspberry Pi car nous avons utilisé la bibliothèque RF24 dans Arduino pour la communication, de sorte que la même bibliothèque est nécessaire sur Pi.
- En outre sont les étapes auxquelles implique l’installation de la bibliothèque. Il m’a fallu presque une semaine pour l’installer car aucune idée claire à ce sujet n’est présente.
=> Chemin à parcourir:
1. Connectez-vous à Raspberry Pi en utilisant Putty.
2. Accédez au serveur VNC pour l’interface graphique.
3. Dans le type de terminal:
sudo raspi-config
Activer SPI à partir des options d’interfaçage dans la configuration
4. Redémarrez le Pi. Dans le terminal, tapez:
sudo reboot
5. Dans le type de terminal:
sudo apt-get update
6. Télécharger le install.sh fichier à partir de http://tmrh20.github.io/RF24Installer/RPi/install.sh ou Exécutez-le sur le terminal:
wget http://tmrh20.github.io/RF24Installer/RPi/install.sh
7. Rendez-le exécutable:
chmod +x install.sh
8. Exécutez-le et choisissez vos options:
9. Exécutez un exemple à partir de l’une des bibliothèques:
cd rf24libs/RF24/examples_linux make sudo ./gettingstarted
Exécutez les commandes suivantes pour exécuter le programme.
10. De plus, si nous voulons exécuter des programmes Python dans le même but, nous pouvons le faire:
En exécutant l’exemple, Modifiez le pingpair_dyn.py exemple pour configurer les broches appropriées selon la documentation ci-dessus:
nano pingpair_dyn.py
- Configurer un autre périphérique, Arduino ou RPi avec l’exemple pingpair_dyn
- Exécuter l’exemple
sudo python pingpair_dyn.py
6.2. Communication sans fil d’Arduino à Arduino avec nRF24L01:
- En cela, nous allons apprendre à faire une communication sans fil entre Arduino et Raspberry Pi en utilisant le NRF24L01. Et mesurez la distance avec un capteur à ultrasons à l’aide d’Arduino Uno et transmettez-la au Raspberry Pi et les données sont reçues.
Instructions de câblage:
Pour câbler votre émetteur sans fil NRF24L01+ à votre Arduino, connectez les broches suivantes:
- Connectez la broche VCC à 3,3 Volts
- Connectez la broche GND à la masse (GND)
- Connectez la broche CSN à Arduino 10
- Connectez la broche CE à Arduino 9
- Connectez la broche SCK à Arduino 13
- Connectez la broche MISO à Arduino 12
- Connectez la broche MOSI à Arduino 11
Pour câbler votre capteur à ultrasons à votre Arduino, connectez les broches suivantes:
- Connecter la broche VCC à Arduino 5Volts
- Connecter la broche GND à la masse (GND)
- Connecter la broche Trig à Arduino 4
- Connecter la broche Echo à Arduino 3
Schéma de Principe:
Pour câbler votre récepteur sans fil NRF24L01+ à votre Raspberry Pi, connectez les broches suivantes:
- Connectez la broche VCC à 3.3 Volts (Broche 1)
- Connecter la broche GND à la masse (GND) (Broche 6)
- Connecter la broche CE au Raspberry GPIO 22
- Connecter la broche CSN au Raspberry GPIO 8
- Connecter la broche SCK au Raspberry GPIO 11
- Connecter la broche MOSI au Raspberry GPIO 10
- Connectez la broche MISO au Raspberry GPIO 09
Schéma de Principe:
6.3. Code :
Code Côté Expéditeur:
Code Côté Récepteur:
- Il n’est pas obligatoire d’utiliser ce code car il est modifié par moi selon mes besoins.
Pour vérifier le bon fonctionnement de votre connexion et de votre code, vous pouvez exécuter les exemples présents dans la bibliothèque comme pingpair_dyn.ino sur votre Arduino et pingpair_dyn.py sur Raspberry Pi
- L’extrait de ma communication en cours d’exécution:
Conclusion: Ce sera toujours amusant d’expérimenter et de jouer avec les appareils IoT tels que l’apprentissage de la configuration sans tête du Raspberry Pi, de l’Arduino et du Raspberry pi en les faisant communiquer entre eux et en envoyant des données et pour surmonter les erreurs et les défis comme celui que j’ai rencontré lors de l’installation du module RF24. Le but de ce tutoriel est de vous servir avec un processus étape par étape et j’espère qu’il a également été facile à suivre et à apprendre. Merci d’avoir lu! Les suggestions et corrections sont toujours les bienvenues.