Bonjour à tous,
aujourd'hui je voudrais Vous montrer comment notre GY-906-Module, un Nano V3 et d'un écran OLED avec quelques Lignes de Code d'un Thermomètre IR capable. La Structure est bien adaptée au contact de surveiller les Températures, par exemple, les Machines, etc.
, Nous avons besoin d':
1x Nano V3
1x OLED 0.96"
1x GY-906
1x Mini-platine d'essai m de Jumper Wire
1x 9V-support de batterie
en Option, Vous pouvez le Projet volontiers pour une Diode laser ou un Bouton-Module étendre.
Le Câblage:
Nano | GY-906 | Oled | fermoir en place |
VIN | + | ||
GND | GND | GND | - |
5V | VCC | ||
3.3 V | VCC | ||
A5 | SCL | SCL | |
A4 | SDA | SDA |
nécessaires Bibliothèques:
Installez les deux Bibliothèques utilisées, comme d'habitude, via Votre gestionnaire de Bibliothèques dans l'Arduino IDE. Voulez-Vous la dernière Version, Vous pouvez utiliser GitHub pour obtenir et comme *.zip et de l'intégrer, ce qui a pour Inconvénient de nouvelle Version de lui-même soigner.
Utilisez le gestionnaire de Bibliothèques, d'Installation Vous guide à travers les IDE averti dès qu'une nouvelle Version est Disponible et vous pouvez par un simple Clic de mise à jour. Dans la Capture ci-dessous, les deux Bibliothèques ci-dessous:
- GY-906 -sur Github
Pour la Sortie des Valeurs sur l'Écran, nous utilisons aujourd'hui, la Bibliothèque de Adafruit:
Voici le Code:
#include <Wire.h> #include <Adafruit_MLX90614.h> #include <Adafruit_SSD1306.h> #define SCREEN_WIDTH 128 // ecran OLED largeur, en pixels #define SCREEN_HEIGHT 64 // ecran OLED height, dans pixel Adafruit_SSD1306 écran(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1); Adafruit_MLX90614 mlx = Adafruit_MLX90614(); void setup() { Serial.begin(9600); Serial.println("Adafruit MLX90614 test"); if(!écran.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { Serial.println(F("SSD1306 init failed")); for(;;); } display.clearDisplay(); écran.setRotation(0); écran.setTextSize(1); écran.setTextColor(WHITE); écran.setCursor(0, 35); écran.println("Init..."); écran.d'affichage(); delay(500); écran.clearDisplay(); mlx.begin(); } void loop() { écran.clearDisplay(); écran.setTextSize(2); écran.setCursor(25, 10); écran.print(mlx.readAmbientTempC()); //la température Ambiante affichage.setCursor(95, 10); écran.print("C"); écran.setTextSize(2); écran.setCursor(25, 36); écran.print(mlx.readObjectTempC()); //IR-Température d'affichage.setCursor(95, 36); écran.print("C"); écran.display(); Serial.println(); delay(1000); }
Après l'Initialisation du Matériel dans le void setup, est dans la boucle de l'environnement et à la suite de l'IR Température s'affiche.
Jusqu'à la prochaine fois :)
2 commentaires
Peter Mauß
Verwende dieses Setup allerdings mit einem 1.3"OLed mit der U8G2 Lib. Als Temparatur wird mir allerdings 1037.55 °C ausgegeben. Wenn ich die U8G2 auskommentiere und über Serial ausgebe, scheint alles zu passen (23,93 und 27,23).
Mit der U8G2 funktionierts dann, wenn ich am Beginn des loop einen mlx.begin() setze und dann die Temperaturen auslese.
Wer pfuscht da wem in den Registern herum?
Achim Pellmann
Der Upload wird abgebrochen mit der Fehlermeldung:
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0×0f
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0×0f
avrdude: stk500_recv(): programmer is not responding
usw.
Ich bin begeistert von Ihren Beispielvorstellungen und habe auch schon einiges nach gebaut. Daher wäre es schön, wenn Sie mir weiterhelfen könnten.
MfG Achhim Pellmann