Étape 4: Téléchargez la programmation
Vous devrez télécharger et installer la bibliothèque RF24
https://github.com/maniacbug/RF24
(Cliquez sur « Télécharger le ZIP » en bas à droite de la page)
Une fois que vous avez téléchargé le fichier ZIP, vous devriez voir un dossier appelé RF24-master.ZIP. Remplacez le nom de ce fichier juste RF24. FERMETURE PAR ZIP. Double-cliquez sur le fichier ZIP et vous devriez voir un dossier non-ZIP également appelé
RF24-master. Renommez ce juste RF24 ainsi.
Ensuite, copiez et collez les programmes dans l’IDE Arduino et téléchargez-les sur les dispositifs correspondants.
Ressources :
Comment faire pour installer les bibliothèques
http://Arduino-info.wikispaces.com/Arduino-Libraries
Comment utiliser Arduino
http://Arduino.cc/en/Guide/Homepage
Programme de récepteur :
--------------------------------------------------------------------------------------------------------------------------
/ * Infra rouge périmètre détection périphérique récepteur
Ce qu’il fait :
Reçoit un signal de l’émetteur
Proposition d’affiche sur un écran LCD
Flashs LCD rétro-éclairage et indicateur LED
S’il vous plaît utiliser et améliorer cette programmation en quelque sorte
Profitez !
*/
#include < LiquidCrystal.h >
#include < SPI.h >
#include < nRF24L01.h >
#include < RF24.h >
/ *---(Déclarer les constantes et Pin Numbers)---* /
#define CE_PIN 9
#define CSN_PIN 10
NOTE : le « LL » à la fin de la constante est « Pauline » type
const uint64_t tuyau = 0xE8E8F0F0E1LL ; Définir le tube de transmission
/ *---(Déclarer des objets)---* /
RF24 radio (CE_PIN, CSN_PIN) ; Créer une Radio
/ *---(Déclarer des Variables)---* /
capteur int [2] ; Tableau de 2 éléments tenant lectures Joystick
initialiser la bibliothèque avec les numéros des broches interface
Innovente lcd (7, 6, 5, 4, 3, 2) ;
le temps de nous donner le capteur à étalonner (10 à 60 secondes selon la fiche technique)
int calibrationTime = 10 ;
le temps quand le capteur génère une impulsion faible
unsigned long int lowIn ;
la durée en millisecondes, que le capteur doit être faible
avant que nous supposons que tout mouvement a cessé
unsigned long int pause = 1000 ;
Boolean lockLow = true ;
Boolean takeLowTime ;
int ledPin = 8 ;
/////////////////////////////
PROGRAMME D’INSTALLATION
void setup() {}
Serial.Begin(9600) ;
pinMode (ledPin, sortie) ;
mis en place nombre de l’écran LCD de colonnes et de lignes :
LCD.Begin (16, 2) ;
Imprimer un message à l’écran LCD.
LCD.Print ("périmètre Detection") ;
radio.Begin() ;
radio.openReadingPipe(1,pipe) ;
radio.startListening() ;
donner le capteur quelque temps à étalonner
Serial.Print ("calibrage capteur") ;
régler le curseur sur la colonne 0, ligne 1
(Remarque : la ligne 1 est la seconde ligne, puisque le décompte commence par 0) :
lcd.setCursor (0, 1) ;
imprimer le nombre de secondes depuis le reset :
LCD.Print("Calibrating") ;
pour (int i = 0; i < calibrationTime; i ++) {}
Serial.Print(".") ;
Delay(1000) ;
}
Serial.println ("terminé") ;
Serial.println ("capteur actif") ;
lcd.setCursor (0, 1) ;
LCD.Print ("Active") ;
Delay(50) ;
}
////////////////////////////
BOUCLE
void loop() {}
Si (radio.available())
{
Lire la charge utile de données jusqu'à ce que nous avons reçu tout
bool = false ;
tandis que (! fait)
{
Aller chercher la charge utile de données
fait = radio.read (capteur, sizeof(sensor)) ;
Serial.println(Sensor[0]) ;
}
Si (capteur [0] == 1) {}
digitalWrite (ledPin, HIGH) ; le voyant lumineux visualise l’état de broche de sortie de capteurs
{if(lockLow)}
fait en sorte de que nous attendre pour une transition vers le bas avant n’importe quelle autre sortie est faite :
lockLow = false ;
Serial.println("---") ;
Serial.Print ("mouvement détecté à") ;
lcd.setCursor (0, 1) ;
LCD.Print (la « requête ») ;
Serial.Print(Millis()/1000) ;
Serial.println (« sec ») ;
Delay(500) ;
digitalWrite (ledPin, basse) ;
Delay(500) ;
digitalWrite (ledPin, HIGH) ;
Delay(500) ;
digitalWrite (ledPin, basse) ;
Delay(500) ;
digitalWrite (ledPin, HIGH) ;
Delay(500) ;
digitalWrite (ledPin, basse) ;
}
takeLowTime = true ;
}
Si (capteur [0] == 0) {}
digitalWrite (ledPin, basse) ; le voyant lumineux visualise l’état de broche de sortie de capteurs
{if(takeLowTime)}
lowIn = millis() ; économiser le temps de la transition entre la haute et basse
takeLowTime = false ; Veillez à ce que cela se fait uniquement au début d’une phase de faible
}
Si le capteur est faible plus la pause donnée,
Nous partons du principe qu’aucun mouvement plus ne va se passer
Si (! lockLow & & millis() - lowIn > pause) {}
fait bien sûr ce bloc de code est exécuté uniquement après
une nouvelle séquence de mouvement a été détectée
lockLow = true ;
Serial.Print ("requête s’est terminée à ») ; sortie
lcd.setCursor (0, 1) ;
LCD.Print ("Active") ;
Serial.Print((Millis() - pause) / 1000) ;
Serial.println (« sec ») ;
Delay(50) ;
}
}
}
}
------------------------------------------------------------------------------------------------------------------------
Programme de l’émetteur
------------------------------------------------------------------------------------------------------------------------
/ * Infra rouge périmètre détection périphérique émetteur
Ce qu’il fait :
Utilise un capteur PIR pour détecter le mouvement
Clignote une lumière infrarouge lorsqu’un mouvement est détecté
Envoie un signal radio au récepteur
S’il vous plaît utiliser et améliorer cette programmation en quelque sorte
Profitez !
/
/ *---(Importation préalable bibliothèques)---* /
#include < SPI.h >
#include < nRF24L01.h >
#include < RF24.h >
#include < RF24_config.h >
/ *---(Déclarer les constantes et Pin Numbers)---* /
#define CE_PIN 9
#define CSN_PIN 10
#define capteur 8
NOTE : le « LL » à la fin de la constante est « Pauline » type
const uint64_t tuyau = 0xE8E8F0F0E1LL ; Définir le tube de transmission
/ *---(Déclarer des objets)---* /
RF24 radio (CE_PIN, CSN_PIN) ; Créer une Radio
/ *---(Déclarer des Variables)---* /
capteur int [2] ; Tableau de 2 éléments tenant lectures du capteur
int ledPin = 7 ;
void setup() / *** SETUP : s’exécute une fois *** /
{
Serial.Begin(9600) ;
radio.Begin() ;
pinMode (ledPin, sortie) ;
radio.openWritingPipe(pipe) ;
digitalWrite (ledPin, basse) ;
} //--(end setup)---
void loop() / *** boucle : fonctionne constamment *** /
{
capteur [0] = digitalRead(SENSOR) ;
radio.Write (capteur, sizeof(sensor)) ;
Serial.Print (capteur [0]) ;
Si (capteur [0] == 1) {}
digitalWrite (ledPin, HIGH) ;
Delay(500) ;
digitalWrite (ledPin, basse) ;
Delay(500) ;
digitalWrite (ledPin, HIGH) ;
Delay(500) ;
digitalWrite (ledPin, basse) ;
Delay(500) ;
digitalWrite (ledPin, HIGH) ;
Delay(500) ;
digitalWrite (ledPin, basse) ;
}
} //--(end boucle principale)---
------------------------------------------------------------------------------------------------------------------------