Étape 6: Installation de Sketch
J’ai utilisé la version 1.0.3 d’Arduino.
Les bibliothèques suivantes doivent être ajoutées. Ils sont dans un fichier zip :
Adafruit_GFX LCD5110
Adafruit_PCD8544 LCD5110
DallasTemperature DS18B20
Un seul fil DS18B20
Narcoleptiques Atmega328 sommeil
RF24Master NRF24L01 +
RF24NetworkMaster NRF24L01 +
Adresse DS18B20
Chaque capteur DS18B20 possède une adresse unique. Vous avez besoin de connaître cette adresse afin que vous pouvez parler à elle.
Je recommanderais que vous testez chaque DS18B20 sur une maquette et obtenez son adresse.
Si vous n’avez pas fait cela ou ne me souviens pas, voici un moyen de le trouver après que qu’il est déjà installé sur l’un de ces BPC.
Branchez le PCB TemperatureLCD5110 ou la RemoteTemperature PCB sur votre PC avec un adaptateur USB. J’utilise un module PL2303 mais vous pouvez également utiliser un USB-BUB.
Avertissement : Étant donné que les PCB de type RemoteTemperature ne vous tension de l’USB, vous devez connecter une batterie 18650 à eux même pour charger une esquisse de l’Arduino.
Dans l’environnement Arduino, assurez-vous que le port série correct est sélectionné. Assurez-vous que le Conseil d’administration correcte est sélectionnée :
TemperatureLCD5110 PCB Arduino UNO
RemoteTemperature PCB Arduino Pro ou Pro Mini (3, 3V, 8 MHz) w / ATmega328
Sous "Fichier" "exemples", faites défiler jusqu'à OneWire, puis sélectionnez
DS18x20_Temperature
Dans le sketch sur huit lignes vers le bas, vous verrez ceci
OneWire ds(10) ; sur la broche 10 (une résistance de 4,7 K est nécessaire)
10 est la broche numérique utilisée dans l’exemple. Changer à :
OneWire ds(4) ; sur la broche 10 (une résistance de 4,7 K est nécessaire)
Télécharger le programme. Ouvrez votre Serial Monitor et définissez pour 9600 bauds. Vous devriez voir quelque chose comme l’image suivante.
La première ligne indique l’adresse : 28 6 b 88 B4 4 0 0 D1
Pour info, c’est au format hexadécimal. Notez-le ou mettez-le dans une base de données.
Lorsque vous quittez l’environnement, vous n’avez pas besoin enregistrer les modifications.
NRF24L01 adresse :
Les modules NRF24L01 + ont aussi une adresse mais à la différence du DS18B20, ils ne sont pas uniques pour le module physique. L’adressage se fait dans le logiciel.
J’utilise maintenant, réseau de ManiacBug s’adressant, RF24NetworkMaster qui est une extension de sa bibliothèque RF24.
Pour cette version, le canal est 90, nœud 0 est le PCB de TemperatureLCD5110 et les PCB de type RemoteTemperature sont des nœuds 1 – 5. Cette esquisse ne soutiendra pas plus de 5 RemoteTemperature PCB.
PCB TemperatureLCD5110 croquis d’installation :
Le PCB TemperatureLCD5110 croquis doit être configuré pour votre situation particulière. Tout d’abord l’adresse DS18B20 doit correspondre à la sonde.
À l’aide d’un éditeur de texte (j’utilise Notepad ++ mais travaillera le bloc-notes ou Wordpad), ouvrez LCD5110Receive.ino.
Recherchez la ligne semblable à celui-ci :
DeviceAddress Therm1 = {0 x 28, 0x6B, 0x88, 0xB4, 0 x 04, 0 x 00, 0 x 00, 0xD1} ;
Modifiez-la afin que les nombres hexadécimaux correspondent à l’adresse que vous avez trouvé sur vos DS18B20. (NOTE : que chaque nombre est préfixé par 0 x alors qu’il est identifié comme hexadécimal. 0 x 0 ou 0 x 00 devrait fonctionner)
Vous devez ensuite sélectionner le nombre de RemoteTemperature PCB que vous utiliserez :
Nombre de capteurs de température
#define NumNodes 3
Changer ce selon les besoins (maximum de cinq)
Une autre ligne que vous pouvez changer est le contraste de LCD5110 :
display.setContrast(55) ; Choisissez le meilleur contraste
C’est sous {void setup()
Essayez différentes valeurs et définir vos préférences.
Fahrenheit ou en Celsius :
Si vous voulez Centigrade au lieu de Fahrenheit, changer :
bool centigrade = false ;
À:
bool centigrade = true ;
RemoteTemperature PCB croquis d’installation :
Notez sur la photo que j’ai mis un numéro rouge dans le coin inférieur droit. Ceci identifie le PCB de RemoteTemperature.
J’aurait pu être intelligent et élégant et peut-être stocké les informations spécifiques de module dans l’EEPROM, mais je suis paresseux, donc j’ai juste écrit esquisses individuelles pour chaque module. Ce que je dirais est copie le répertoire de TempTransmit1 à TempTransmit2 et modifiez le fichier .ino à TempTransmit2 et apportez les modifications suivantes à tous. Répéter pour les autres modules.
Un, vous devez mettre à la bonne adresse DS18B20 comme ci-dessus :
DeviceAddress Therm1 = {0 x 28, 0x6B, 0x88, 0xB4, 0 x 04, 0 x 00, 0 x 00, 0xD1} ;
La valeur 0 x comverts préfixe il hexadécimal.
Deux, vous devez mettre l’adresse de nœud correct
Adresse de notre noeud
const uint16_t this_node = 1 ;
Changer pour le numéro que vous avez marqué sur le circuit imprimé. Démarrer avec 1 et séquence.
Vous pouvez également modifier le sleepDelay.
int sleepDelay = 10000 ; en millisecondes
Il s’agit de la longueur de temps (10 secondes), l’AtMega dort entre l’envoi des échantillons. Je suis assez certain que c’est limité à un maximum d’environ 32 secondes. Si vous augmentez la sleepDelay, cela signifie que la batterie durera un peu plus longtemps entre les charges.