Earth Analyzer : Kit de capteurs IoT avancé pour la surveillance environnementale
Composants et fournitures
| Composant | Quantité |
|---|---|
| Module WiFi Bolt IoT Bolt | 1 |
| Arduino UNO | 1 |
| Arduino Nano R3 | 1 |
| nRF24l01 | 2 |
| Moteur CC 12V | 2 |
| Gestionnaire d'alimentation solaire DFRobot pour batterie plomb-acide 12V | 1 |
| Pilotes de moteur double pont en H SparkFun L298 | 1 |
| Fils de connexion (génériques) | 1 |
| LM35 | 1 |
| Capteur d'humidité de sol capacitif DFRobot Gravity - Résistant à la corrosion | 1 |
| Micro-servomoteur SG90 | 1 |
| Joystick 10 kohm | 1 |
Outils et machines nécessaires
- Fer à souder (générique)
- Fil à souder sans plomb
- Flux à souder
- Multitool, tournevis
Applications et services en ligne
- Arduino IDE
- Bolt IoT Bolt Cloud
- Integromat
- Twilio SMS Messaging API
- Mailgun
- Bolt IoT Android App
- Bolt IoT iOS App
À propos du projet
BONJOUR TOUT LE MONDE
Ce projet concerne principalement un rover pour la terre qui peut aider les agriculteurs. Ce projet contient principalement trois modules.
MODULE 1 :
Connexions matérielles pour la configuration complète, considérons maintenant les moteurs CC.
Cela nécessite deux moteurs CC et un pilote de moteur. Le pilote de moteur contient :

Ici, vous devez connecter V+, EN1, EN2, à un point unique sur la plaque d'essai et les quatre fils du moteur aux quatre entrées sur les broches 1 ma 2. Ensuite, les broches de sortie du pilote de moteur sont connectées à l'Arduino et la batterie doit être connectée comme le montre le diagramme.

Maintenant, nous devons les connecter au Bolt. Les mêmes quatre broches doivent être connectées aux broches numériques du Bolt (0, 1, 2, 3).

Maintenant, le capteur de sol doit être connecté au Bolt en plaçant la broche numérique sur le Bolt (broche numérique 4). Enfin, il est temps de connecter le capteur de température à la broche analogique du Bolt (A0).

Maintenant, cette fois, toutes les masses et V+ (capteur de température, capteur d'humidité), EN1, EN2 au 5V de l'Arduino et enfin toutes ces broches doivent être alimentées avec la tension requise des batteries.

MODULE 2 :
CONNEXIONS NRF :

Le diagramme ci-dessus est appelé module NRF qui est utilisé pour la communication radio. Le diagramme ci-dessus doit également être inclus dans notre circuit pour contrôler la voiture dans les zones proches.

CONNEXION FINALE DU NRF AVEC L'ARDUINO

MAINTENANT, CONNECTONS LES JOYSTICKS :
Deux joysticks sont utilisés :
- Pour contrôler la direction de la voiture.
- Pour contrôler le servo.

MODULE 3 :
CODAGE FINAL
1) CODAGE ARDUINO :
Émetteur :
#include <SPI.h>
#include <nRF24L01.h>
#include <printf.h>
#include <RF24.h>
#include <RF24_config.h>
RF24 radio(7, 8); // CSN, CE
const byte address[6] = "00001";
int x_key = A1;
int y_key = A0;
int p_key = A3;
int q_key = A2;
int x_pos;
int y_pos;
int p_pos;
int q_pos;
void setup() {
radio.begin();
radio.openWritingPipe(address);
radio.setPALevel(RF24_PA_MIN);
radio.setChannel(87);
radio.setDataRate(RF24_250KBPS);
radio.stopListening();
Serial.begin(9600);
pinMode(x_key, INPUT);
pinMode(y_key, INPUT);
pinMode(p_key, INPUT);
pinMode(q_key, INPUT);
}
int pos;
void loop() {
x_pos = analogRead(x_key);
y_pos = analogRead(y_key);
p_pos = analogRead(p_key);
q_pos = analogRead(q_key);
Serial.println(x_pos);
Serial.println(y_pos);
Serial.println(p_pos);
Serial.println(q_pos);
if (p_pos > 400 && p_pos < 600 && q_pos > 400 && q_pos < 600) {
if (x_pos > 400 && x_pos < 600 && y_pos > 400 && y_pos < 600) {
pos = 100;
radio.write(&pos, sizeof(pos));
}
if (x_pos > 400 && x_pos < 600 && y_pos < 400) {
pos = 200;
radio.write(&pos, sizeof(pos));
}
if (x_pos > 400 && x_pos < 600 && y_pos > 600) {
pos = 300;
radio.write(&pos, sizeof(pos));
}
if (y_pos > 400 && y_pos < 600 && x_pos < 400) {
pos = 400;
radio.write(&pos, sizeof(pos));
}
if (y_pos > 400 && y_pos < 600 && x_pos > 600) {
pos = 500;
radio.write(&pos, sizeof(pos));
}
Serial.println(pos);
delay(100);
}
else if (p_pos < 400 || p_pos > 600) {
if (p_pos < 400) {
pos = 600;
radio.write(&pos, sizeof(pos));
}
if (p_pos > 600) {
pos = 700;
radio.write(&pos, sizeof(pos));
}
delay(100);
}
}
Récepteur :
#include <SPI.h>
#include <nRF24L01.h>
#include <printf.h>
#include <RF24.h>
#include <RF24_config.h>
#include <Servo.h>
Servo servo;
RF24 radio(7, 8); // CSN, CE
const byte address[6] = "00001";
int servo_pin = 9;
int sensor_pin = A0;
int output_value;
void setup() {
Serial.begin(9600);
radio.begin();
servo.attach(servo_pin);
radio.openReadingPipe(0, address);
radio.setPALevel(RF24_PA_MIN);
radio.setChannel(87);
radio.setDataRate(RF24_250KBPS);
radio.startListening();
}
int pos;
void loop() {
if (radio.available()) {
radio.read(&pos, sizeof(pos));
Serial.println(pos);
if (pos == 100) {
digitalWrite(6, LOW);
digitalWrite(5, LOW);
digitalWrite(4, LOW);
digitalWrite(3, LOW);
}
else if (pos == 200) {
digitalWrite(6, HIGH);
digitalWrite(5, LOW);
digitalWrite(4, HIGH);
digitalWrite(3, LOW);
delay(10);
}
else if (pos == 300) {
digitalWrite(6, LOW);
digitalWrite(5, HIGH);
digitalWrite(4, LOW);
digitalWrite(3, HIGH);
delay(10);
}
else if (pos == 400) {
digitalWrite(6, LOW);
digitalWrite(5, HIGH);
digitalWrite(4, HIGH);
digitalWrite(3, LOW);
delay(10);
}
else if (pos == 500) {
digitalWrite(6, HIGH);
digitalWrite(5, LOW);
digitalWrite(4, LOW);
digitalWrite(3, HIGH);
delay(10);
}
else if (pos == 600) {
servo.write(90);
delay(10);
}
else if (pos == 700) {
servo.write(180);
delay(10);
}
}
else {
Serial.println("connection lost");
}
}
Maintenant pour recevoir un message Telegram : (code serveur)
Connectez-vous à l'un des serveurs comme repl.it et téléversez les codes
main.py :
import requests
import json
import time
from boltiot import Bolt
import conf
mybolt = Bolt(conf.bolt_api_key, conf.device_id)
def get_sensor_value_from_pin(pin):
try:
response = mybolt.digitalRead(pin)
data = json.loads(response)
if data["success"] != 1:
print("Request not successful")
print("This is the response->", data)
return -999
sensor_value = int(data["value"])
return sensor_value
except Exception as e:
print("Something went wrong when returning the sensor value")
print(e)
return -999
def send_telegram_message(message):
"""Envoie un message via Telegram"""
url = "https://api.telegram.org/" + conf.telegram_bot_id + "/sendMessage"
data = {
"chat_id": conf.telegram_chat_id,
"text": message
}
try:
response = requests.request("GET", url, params=data)
print("This is the Telegram response")
print(response.text)
telegram_data = json.loads(response.text)
return telegram_data["ok"]
except Exception as e:
print("An error occurred in sending the alert message via Telegram")
print(e)
return False
while True:
# Étape 1
sensor_value = get_sensor_value_from_pin("4")
print("The current sensor value is:", sensor_value)
# Étape 2
if sensor_value == -999:
print("Request was unsuccessful. Skipping.")
time.sleep(10)
continue
# Étape 3
if sensor_value >= conf.threshold:
print("The current temperature value is")
message = "The moisture value is just greater than threshold "
telegram_status = send_telegram_message(message)
print("This is the Telegram status:", telegram_status)
# Étape 4
time.sleep(100)
conf.py :
"""Configurations pour telegram_alert.py"""
bolt_api_key = "XXXX" # Votre clé API Bolt Cloud
device_id = "XXXX" # ID du dispositif, similaire à BOLTXXXX
telegram_chat_id = "@XXXX" # ID du canal Telegram créé. Collez après @
telegram_bot_id = "botXXXX" # ID du bot Telegram créé. Collez après bot
threshold = 0 # Seuil au-delà duquel l'alerte doit être envoyée
Entrez vos valeurs de bot et API
Messagerie d'alerte utilisant Telegram
Qu'est-ce que Telegram ?
Telegram est une application de messagerie similaire à Whatsapp. Vous pouvez envoyer et recevoir des messages ainsi que des fichiers. C'est GRATUIT à utiliser. Vous pouvez accéder à la plateforme via votre téléphone Android/iOS/Windows et aussi votre PC ou Mac.

Quelques terminologies Telegram -
Qu'est-ce qu'un canal Telegram ?
Un canal est pour Telegram ce que les Groupes sont pour Whatsapp. Les canaux sont un outil pour diffuser vos messages à de larges audiences. Ils peuvent avoir un nombre illimité d'abonnés, ils peuvent être publics avec une URL permanente et chaque publication dans un canal a son propre compteur de vues.
Qu'est-ce qu'un Bot ?
Les bots sont des applications tierces qui s'exécutent à l'intérieur de Telegram. Les utilisateurs peuvent interagir avec les bots en leur envoyant des messages, des commandes et des requêtes.
Nous utiliserons des bots pour envoyer des alertes sur notre canal.
Qu'allons-nous apprendre dans ce projet ?
Dans ce projet, vous pourrez envoyer des alertes via Telegram sur votre téléphone lorsque la valeur du capteur dépasse votre seuil défini.
De quoi ai-je besoin pour ce projet ?
Pour envoyer des alertes et des messages via Telegram, vous aurez besoin de :
- Un téléphone Android/iOS/Windows avec connectivité Internet.
- Un compte Telegram. Vous aurez besoin d'un numéro de mobile pour cela.
- Accès à votre OS Ubuntu via puTTY ou Machine Virtuelle.
Configuration de Telegram
Étapes pour s'inscrire/se connecter à Telegram
- Allez sur le Playstore ou App Store sur votre téléphone et recherchez Telegram.
- Téléchargez et installez la dernière version de l'application Telegram.
- Inscrivez-vous pour un nouveau compte ou connectez-vous à Telegram en fournissant votre numéro de mobile.
- Telegram vous appellera OU vous enverra un SMS pour vérifier votre numéro de mobile.
- Faites vérifier votre compte et approuvez les permissions si nécessaire.
- Vous serez connecté à Telegram et verrez un écran similaire à celui ci-dessous. (C'est OK si cela diffère de la capture d'écran ci-dessous)

Vous avez installé Telegram avec succès et configuré votre compte. Dans les prochaines leçons, nous apprendrons davantage sur les Canaux et les Bots.
Création d'un canal
Qu'est-ce qu'un canal Telegram ?
Un canal est pour Telegram ce que les Groupes sont pour Whatsapp. Les canaux sont un outil pour diffuser vos messages à de larges audiences. Ils peuvent avoir un nombre illimité d'abonnés, ils peuvent être publics avec une URL permanente et chaque publication dans un canal a son propre compteur de vues.
Étapes pour créer un canal
- Allez sur l'écran d'accueil de l'application Telegram.
- Balayez depuis la gauche pour révéler le menu.
- Cliquez sur "Nouveau Canal".

- Il vous demandera un Nom et une Description pour votre canal. Donnez un nom et une description appropriés. L'ajout d'une photo est optionnel.

- À l'écran suivant, définissez le canal comme Public.
- Sur le même écran, il vous demandera d'entrer un lien permanent pour votre canal. Vous pouvez utiliser des lettres minuscules et des chiffres 0-9 pour créer le lien du canal.
- Veuillez noter que le nom du lien du canal est global et vous ne pourrez créer un lien de canal que si le nom du lien est disponible. Le nom du lien du canal est quelque chose de similaire à une adresse e-mail, c'est-à-dire qu'un seul ID e-mail unique peut exister à la fois.
- Vous pouvez garder le nom du lien du canal comme temperature_alert_ suivi de votre ID e-mail. Exemple, si mon ID e-mail est developer@boltiot.com, je peux garder le nom du lien du canal comme temperature_alert_developer_boltiot_com (j'ai supprimé le @ et le . car ils n'étaient pas autorisés et les ai remplacés par un underscore _). Ceci n'est qu'une suggestion. Vous pouvez garder le nom du lien du canal comme vous le souhaitez tant qu'il est valide.
- Gardez une trace de ce nom de lien permanent du canal. Il sera requis plus tard pour envoyer des messages à ce canal. Par exemple, le nom du lien du canal dans la capture d'écran ci-dessous est "temperature_alert".

- Félicitations ! Vous avez créé un nouveau canal. Vous pouvez également voir ce canal depuis l'écran d'accueil de votre application.

- Vous pouvez cliquer sur le nom du canal en haut pour voir plus de détails à son sujet.

- Ensuite, nous devrons créer et ajouter un Bot au canal pour qu'il puisse poster des alertes pour nous dans ce canal.
Créer un Bot
Qu'est-ce qu'un Bot ?
Les bots sont des applications tierces qui s'exécutent à l'intérieur de Telegram. Les utilisateurs peuvent interagir avec les bots en leur envoyant des messages, des commandes et des requêtes.
Nous utiliserons des bots pour envoyer des alertes sur notre canal.
Créer un nouveau Bot
Telegram nous permet de créer un nouveau bot avec l'aide d'un bot appelé "BotFather". C'est un bot unique pour créer et gérer d'autres bots.
- Sur l'écran d'accueil de l'application, cliquez sur l'icône de recherche en haut à droite et tapez "botfather".

- Dans les résultats de recherche, cliquez sur le résultat correct pour "BotFather" comme indiqué ci-dessous. Le bon "BotFather" aura une coche bleue à côté de son nom. Cela vous mènera à une fenêtre de discussion avec "BotFather".

- Le chat aura déjà quelques éléments et vous affichera une liste de commandes pour commencer.

- Puisque nous devons créer un nouveau Bot, allez-y et tapez "/newbot" dans la fenêtre.
- Il vous demandera de taper quelques détails supplémentaires comme le nom du bot et le nom d'utilisateur du bot.
- Lorsque votre bot est créé avec succès, vous verrez un écran similaire à celui ci-dessous et il contiendra le Token du Bot. Ce token est utilisé pour contrôler votre Bot ainsi que pour envoyer des messages en son nom. Veuillez garder ce token sécurisé car il permettra à quiconque d'accéder à votre Bot.

- Dans la capture d'écran ci-dessus, le token du bot est "894346529:AAhuJ2XJQy5dlEtLYF0sc0Z_qu0fSqihSSc". Veuillez l'enregistrer en tant que telegram_bot_id. Le telegram_bot_id est enregistré comme "bot" suivi du token du bot. Donc, dans cet exemple, le telegram_bot_id sera "bot894346529:AAhuJ2XJQy5dlEtLYF0sc0Z_qu0fSqihSSc".
- Le telegram_bot_id sera utilisé dans le code Python pour envoyer des messages. Le code Python sera enseigné dans les leçons ultérieures.
- De plus, soyez prudent lors de l'enregistrement de l'ID du Bot. Vous pouvez confondre 0 et O, I et 1 etc. car ils se ressemblent.
- Félicitations, vous avez créé un nouveau Bot. Maintenant, nous devrons l'ajouter au canal que nous avons créé précédemment pour pouvoir envoyer des alertes.
Ajouter le bot au canal
- Depuis l'écran d'accueil de l'application, ouvrez le canal que nous avons créé précédemment.
- Dans l'écran, cliquez sur le nom du canal en haut pour ouvrir les informations du canal.

- Cliquez sur le bouton Administrateurs pour que nous puissions ajouter le bot nouvellement créé au canal.

- Recherchez le bot que nous avons créé en utilisant le nom d'utilisateur du bot. Une fois que vous avez trouvé le bon bot, cliquez dessus pour l'ajouter au canal. Assurez-vous d'avoir cliqué sur le bouton Administrateurs à l'étape précédente car cela permettra à notre bot de poster sur le canal.

- On vous demandera de confirmer les droits pour le bot. Appuyez sur la coche en haut à droite pour continuer d'ajouter le bot au canal. Assurez-vous que le bot a le droit de "Poster des messages".

- Vous verrez maintenant le bot nouvellement créé dans la liste des administrateurs du canal.

- Maintenant, nous coderons pour envoyer des messages au canal via le Bot.
MAINTENANT, CONFIGURATION DU RÉSEAU POUR TWILIO ET MAILGUN
Recevez les valeurs du capteur de température LM35 par SMS et Email à tout moment sur votre téléphone mobile en utilisant Google Assistant.

Que faites-vous quand vous avez besoin de vérifier les valeurs des capteurs de votre projet IoT à tout moment ? Vous vous connectez simplement à votre cloud pour le vérifier. Cela semble simple, non ? Mais que se passe-t-il si vous deviez vérifier les valeurs une fois par heure ou une fois toutes les quelques minutes et cela plusieurs fois par jour. Ce serait un peu (très) fastidieux, non ? Maintenant, imaginez un monde où vous pourriez obtenir les valeurs des capteurs par SMS et Email en disant simplement "Envoie-moi les valeurs des capteurs" à votre Google Assistant. Attendez, attendez, attendez. Cette situation n'est plus imaginaire car vous pourriez le faire vous-même en quelques étapes. Lisez la suite pour découvrir comment.
Dans ce projet, nous recevrons les valeurs du capteur de température du capteur LM35 via SMS et Email par une commande à Google Assistant.
Étape 1 : Configuration matérielle
Tenez le capteur LM35 dans votre main de manière que le nom soit visible pour vous. Les trois broches, de gauche à droite, sont VCC, sortie et GND. Connectez les trois broches à des fils femelle-mâle. Connectez les trois fils, correspondant aux trois broches de gauche à droite, aux broches 5V, A0 et GND sur le module WiFi Bolt. Connectez le module WiFi à une source d'alimentation 5V. Assurez-vous qu'il est connecté à une connexion Internet active.
Étape 2 : Création d'un module IFTTT dans Integromat
Connectez-vous à votre compte Integromat. Si vous ne vous êtes pas inscrit sur Integromat, vous pouvez créer un compte en cliquant ici. Après la connexion, cliquez sur "Créer un nouveau scénario" en haut à droite de l'écran. Sélectionnez IFTTT, HTTP, Mailgun et Twilio dans l'écran pour sélectionner les outils requis et cliquez sur "Continuer". Ensuite, cliquez sur le cercle blanc et sélectionnez IFTTT dans la liste, puis sélectionnez "Recevoir des données" dans le menu. Ce module est essentiel pour le connecter à l'Applet sur IFTTT qui sera discuté plus tard. Cliquez sur "Ajouter" pour ajouter un nouveau Webhook suivi d'un nom approprié et cliquez sur "Sauvegarder". Maintenant, vous obtiendrez une URL ou un lien. Sauvegardez-le pour une utilisation ultérieure.

Étape 3 : Création d'un module HTTP dans Integromat
Ensuite, cliquez sur le symbole "+" attaché au module pour ajouter un nouveau module. Sélectionnez "HTTP" suivi de "Faire une requête". Cela est nécessaire pour recevoir les valeurs des capteurs depuis le Bolt IoT Cloud. Dans l'URL, collez le lien https://cloud.boltiot.com/remote/votre-cle-api-bolt-iot/analogRead?pin=A0&deviceName=BOLTXXXXXXX. Remplacez "votre-cle-api-bolt-iot" et "BOLTXXXXXXX" par vos identifiants respectifs que vous pouvez facilement trouver dans votre Bolt IoT Cloud. Laissez la méthode sur "GET" et cliquez sur "OK".
Le lien ci-dessus est utilisé pour récupérer les valeurs des capteurs depuis Bolt IoT Cloud. La sortie du lien ci-dessus sera sous la forme {"value": "XXX", "success": "1"} où XXX sont les valeurs des capteurs.

Étape 4 : Création d'un module Mailgun dans Integromat
Maintenant, cliquez à nouveau sur "+" et tapez "Flow Control" dans la boîte de recherche et sélectionnez-le suivi de "Router". Deux cercles blancs doivent être créés. Cliquez sur le premier cercle blanc et sélectionnez "Mailgun" suivi de "Envoyer un email". Ici, Mailgun est utilisé pour recevoir l'email avec la température. Si vous avez déjà un compte Mailgun, vous devez avoir la clé API et le Nom de domaine qui peuvent être facilement trouvés dans votre compte Mailgun. Si vous n'avez pas de compte Mailgun, vous pouvez suivre l'Étape Alternative donnée ci-dessous. Remplissez les détails requis comme demandé. Tapez l'email du destinataire (qui est votre adresse email). Dans le champ "Expéditeur", tapez "test@votredomaine". Dans la section "Contenu", nous devons écrire la valeur de la température et non la valeur du capteur. Pour convertir la valeur de température en valeur de capteur, nous devons diviser le nombre par 10.24. Pour obtenir la valeur du capteur sous la forme XXX, nous devons éliminer tous les autres caractères pour lesquels nous utilisons la fonction "substring". Cliquez sur le symbole "A" dans la boîte de dialogue à côté et sélectionnez "substring".

Dans le premier espace à l'intérieur des parenthèses, cliquez sur l'option "Data" sous le symbole étoile suivi de "11" et "14" dans le deuxième et troisième espace. Strictement parlant, ce n'est pas la bonne méthode pour récupérer la valeur du capteur, j'utilise donc un hack pour l'obtenir. Si quelqu'un connaît la bonne méthode, il peut la mentionner dans la section commentaires ci-dessous.


Ce dernier est fait pour capturer seulement le "XXX" de la sortie. Ce nombre est ensuite divisé par 10.24

Avant de sauvegarder le scénario, n'oubliez pas d'activer la "Planification" qui est en bas de l'écran et de sélectionner "Exécuter le scénario" comme "Immédiatement". Votre scénario final devrait ressembler à ceci.

Étape 6 : Création d'un nouvel Applet dans IFTTT
Connectez-vous à votre compte IFTTT. Si vous ne vous êtes pas inscrit sur IFTTT, vous pouvez créer un compte en cliquant ici. Après la connexion, cliquez sur "Nouvel Applet" sous la section "Mes Applets". Cliquez sur "+this" suivi de "Google Assistant" après l'avoir recherché dans la boîte de recherche. Cliquez sur "Dire une phrase simple" dans l'écran suivant. Tapez la commande pour laquelle vous voulez déclencher l'action requise.

Cliquez sur "Trigger" suivi de "+that". Recherchez "Webhooks" dans la boîte de recherche et sélectionnez-le suivi de la sélection "Faire une requête web" dans l'écran suivant. Dans le champ URL, collez le lien que nous avons obtenu à l'Étape 2 après la création d'un module IFTTT dans Integromat. Cette étape est très essentielle pour exécuter le scénario dans Integromat quand vous dites la commande à Google Assistant. Ensuite, sélectionnez "POST" dans la méthode et cliquez sur "Créer une action". Écrivez un nom approprié pour l'applet et sélectionnez "Terminer".

C'est tout. Maintenant, voyez la magie quand vous sortez votre téléphone portable et dites "Ok Google, envoie la valeur du capteur de température."
Schéma
Connexion fils femelle-mâle au capteur LM35

Connexion fils femelle-mâle au module WiFi Bolt

Connexion finale

C'EST TOUT MAINTENANT TÉLÉVERSEZ TOUT ET PUIS VÉRIFIEZ.
SI QUELQUE DOUTE, CONTACTEZ-MOI PAR LA SECTION COMMENTAIRES.
MERCI....................................
Code
RÉCEPTEUR FINAL
#include <SPI.h> #include <nRF24L01.h> #include <printf.h> #include <RF24.h> #include <RF24_config.h> #include <Servo.h> Servo servo; RF24 radio(7, 8); // CSN, CE const byte address[6] = "00001"; int servo_pin = 9; int sensor_pin=A0; int output_value; void setup() { Serial.begin(9600); radio.begin(); servo.attach(servo_pin); radio.openReadingPipe(0, address); radio.setPALevel(RF24_PA_MIN); radio.setChannel(87); radio.setDataRate(RF24_250KBPS); radio.startListening(); } int pos; void loop() { if (radio.available()) { radio.read(&pos, sizeof(pos)); Serial.println(pos); if(pos==100) { digitalWrite(6,LOW); digitalWrite(5,LOW); digitalWrite(4,LOW); digitalWrite(3,LOW); } else if (pos==200){ digitalWrite(6,HIGH); digitalWrite(5,LOW); digitalWrite(4,HIGH); digitalWrite(3,LOW); delay(10); } else if (pos==300){ digitalWrite(6,LOW); digitalWrite(5,HIGH); digitalWrite(4,LOW); digitalWrite(3,HIGH); delay(10); } else if (pos==400){ digitalWrite(6,LOW); digitalWrite(5,HIGH); digitalWrite(4,HIGH); digitalWrite(3,LOW); delay(10); } else if (pos== 500){ digitalWrite(6,HIGH); digitalWrite(5,LOW); digitalWrite(4,LOW); digitalWrite(3,HIGH); delay(10); } else if (pos== 600){ servo.write(90); delay(10); } else if (pos== 700){ servo.write(180); delay(10); } } else { Serial.println("connection lost"); } }
ÉMETTEUR FINAL
#include <SPI.h> #include <nRF24L01.h> #include <printf.h> #include <RF24.h> #include <RF24_config.h> RF24 radio(7, 8); // CSN, CE const byte address[6] = "00001"; int x_key = A1; int y_key = A0; int p_key = A3; int q_key = A2; int x_pos; int y_pos; int p_pos; int q_pos; void setup() { radio.begin(); radio.openWritingPipe(address); radio.setPALevel(RF24_PA_MIN); radio.setChannel(87); radio.setDataRate(RF24_250KBPS); radio.stopListening(); Serial.begin(9600); pinMode(x_key, INPUT); pinMode(y_key, INPUT); pinMode(p_key, INPUT); pinMode(q_key, INPUT); } int pos; void loop() { x_pos = analogRead(x_key); y_pos = analogRead(y_key); p_pos = analogRead(p_key); q_pos = analogRead(q_key); Serial.println(x_pos); Serial.println(y_pos); Serial.println(p_pos); Serial.println(q_pos); if (p_pos>400 && p_pos<600 && q_pos>400 && q_pos<600) { if(x_pos>400 && x_pos<600 && y_pos>400 && y_pos<600) { pos=100; radio.write(&pos, sizeof(pos)); } if(x_pos>400 && x_pos<600 && y_pos<400) { pos=200; radio.write(&pos, sizeof(pos)); } if(x_pos>400 && x_pos<600 && y_pos>600) { pos=300; radio.write(&pos, sizeof(pos)); } if(y_pos>400 && y_pos<600 && x_pos<400) { pos=400; radio.write(&pos, sizeof(pos)); } if(y_pos>400 && y_pos<600 && x_pos>600) { pos=500; radio.write(&pos, sizeof(pos)); } Serial.println(pos); delay(100); } else if(p_pos<400 || p_pos>600) { if(p_pos<400) { pos=600; radio.write(&pos, sizeof(pos)); } if(p_pos>600) { pos=700; radio.write(&pos, sizeof(pos)); } delay(100); } }
Schéma

Processus de fabrication
- Construire un Spybot Arduino piloté par Bluetooth
- FlickMote : Télécommande IR à gestes pour maison connectée
- TV-B-Gone DIY Arduino : Télécommande universelle pour toutes les TV
- Construire une horloge maître LED personnalisée avec alarme – Visible à 12 mètres
- Find Me : Localisateur d'objets intelligent avec Arduino et Bluetooth
- Solutions d'alimentation optimisées pour projets Arduino
- Morpion sur matrice LED MAX7219 avec boîtier en carton
- Construire un robot quadrupède Arduino intelligent : guide étape par étape
- Contrôle fluide de la luminosité LED avec Bolt IoT et Arduino UNO