IR-Thermometer - AZ-Delivery

Ciao a tutti

Oggi vorrei mostrarvi come implementare un termometro a iR con il nostro modulo GY-906, un Nano V3 e un OLED con poche righe di codice. Il design è adatto per il monitoraggio senza contatto delle temperature, ad esempio su macchine o simili.

Quindi abbiamo bisogno di:

1x (in modo non il Nano V3
1x (in modo non il OLED 0,96"
1x (in modo non il GIRO 906
1x Mini-Breadboard m. Jumper-Wire
1x (in modo non il Supporto batteria 9V

Facoltativamente, è possibile aggiungere un numero di Diodo laser o un Modulo pulsante Espandere.

Il cablaggio:

Nano GIRO 906 Oled Clip della batteria
Vin +
Gnd Gnd Gnd -
5v Vcc
3.3V Vcc
A5 Scl Scl
A4 Sda Sda

 

Le librerie necessarie:

Installare entrambe le librerie come di consueto tramite il gestore di librerie nell'IDE di Arduino. Se si desidera utilizzare la versione più recente, è possibile ottenerla tramite GitHub e includerla come .zip, ma questo ha lo svantaggio di dover mantenere una nuova versione da soli.

Utilizzare Gestione librerie per l'installazione per inviare una notifica all'IDE quando viene resa disponibile una nuova versione e può aggiornarla facendo clic. La schermata seguente mostra le due librerie:The following screenshot shows the two libraries:

- GY-906 - su Github

Per emettere i valori sul display, usiamo oggi la libreria Adafruit:

Ecco il codice:

 

#include <Filo.H>
#include <Adafruit_MLX90614.H>
#include <Adafruit_SSD1306.H>

# define SCREEN_WIDTH 128 Larghezza di visualizzazione OLED, in pixel
# define SCREEN_HEIGHT 64 Altezza di visualizzazione OLED, in pixel


Adafruit_SSD1306 Visualizzazione(SCREEN_WIDTH, SCREEN_HEIGHT, &Filo, -1);
Adafruit_MLX90614 Mlx = Adafruit_MLX90614();

Vuoto Installazione() {      Seriale.Iniziare(9600);   Seriale.println("Test di Adafruit MLX90614");    Se(!Visualizzazione.Iniziare(SSD1306_SWITCHCAPVCC, 0x3C (in formato 0x3C))) {     Seriale.println(D("SSD1306 init non riuscita"));     Per(;;);   }      Visualizzazione.clearVisualizzazione();   Visualizzazione.setRotazione(0);   Visualizzazione.setTextSize (informazioni in base alla proprietà setText(1);   Visualizzazione.setTextColor (colore setText)(Bianco);   Visualizzazione.Setcursor(0, 35);   Visualizzazione.println("Init...");   Visualizzazione.Visualizzazione();   Ritardo(500);   Visualizzazione.clearVisualizzazione();   Mlx.Iniziare();     }

Vuoto Ciclo() {     Visualizzazione.clearVisualizzazione();     Visualizzazione.setTextSize (informazioni in base alla proprietà setText(2);     Visualizzazione.Setcursor(25, 10);     Visualizzazione.Stampare(Mlx.readAmbientTempC()); Temperatura     Visualizzazione.Setcursor(95, 10);     Visualizzazione.Stampare("C");     Visualizzazione.setTextSize (informazioni in base alla proprietà setText(2);     Visualizzazione.Setcursor(25, 36);     Visualizzazione.Stampare(Mlx.readObjectTempC (informazioni in base ai nomi()); Temperatura IR     Visualizzazione.Setcursor(95, 36);     Visualizzazione.Stampare("C");     Visualizzazione.Visualizzazione();   Seriale.println();   Ritardo(1000);
}

Dopo l'inizializzazione dell'hardware nella configurazione nulla, la temperatura dell'ambiente viene visualizzata nel ciclo e quindi la temperatura IR. 

Fino alla prossima volta :)

DisplaysFür arduinoProjekte für anfänger

2 commenti

Peter Mauß

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

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

Lascia un commento

Tutti i commenti vengono moderati prima della pubblicazione