Présentation
Cet appareil est conçu pour déterminer la température à distance. Comme je n'ai pas trouvé les instructions prêtes à l'emploi pour assembler cet appareil dont j'avais besoin, et que je ne voulais pas vraiment acheter pour plus de 2 000, il a été décidé de tout faire sur Arduino (pas cher et pas très difficile).
Instruction de montage
Pour construire le projet, nous avons besoin de:
- Capteur de température DS18B20 1 mètre. (Scellé)
- Écran 0.96 128x64 OLED
- Planche à pain
- Daddy Daddy Wire Set
- Microcontrôleur Arduino Uno
- Résistance
Pour mettre en œuvre le projet, nous devons installer l'IDE arduino et plusieurs bibliothèques à la fois:
- Bibliothèque Arduino OneWire
- OLED I2C_OLED_I2C avec prise en charge des langues russe et ukrainienne.
- Température de Dallas
Parlons un peu de la planche à pain. Cette planche à pain est utilisée pour l'assemblage rapide de circuits sans soudure ni radioéléments et un fil de connexion. Les cartes de développement sont disponibles en différentes tailles, mais dans la plupart des cas, elles se composent de ces blocs identiques:

Le schéma de connexion électrique des prises est illustré dans la figure de droite: cinq trous de chaque côté, dans chacune des rangées (dans ce cas 30) sont connectés électriquement les uns aux autres. A gauche et à droite il y a deux lignes électriques: ici tous les trous de la colonne sont interconnectés. La fente au milieu est conçue pour l'installation et l'extraction pratique des microcircuits dans les boîtiers. Pour assembler le circuit, des composants radio et des cavaliers sont insérés dans les trous.
Après avoir compris la maquette, nous pouvons maintenant passer à la connexion des modules. Tout d'abord, connectez l'écran comme suit:


Dans ce cas, nous avons connecté 5V à "+" sur la planche à pain (fil jaune) et GND à "-" (fil blanc), de sorte que plus tard toute l'alimentation des modules devrait être connectée à "+" et "-" sur la planche à pain.
Ensuite, connectez le capteur de température DS18B20 à l'aide d'une résistance comme indiqué sur la photo ci-dessous:


Dans notre cas, pour plus de commodité, nous avons connecté tous les fils du capteur à la carte d'expérimentation et connecté le câble orange «Papa à Papa» à la broche 10.
La moitié du travail est fait, il ne reste plus qu'à connecter des dispositifs de signalisation, à savoir: LED x2 (rouge pour haute température, bleu pour basse) et un émetteur piézo conventionnel (chez les gens du commun «tweeter»). La LED est connectée très simplement, «+» est une tige longue et moins est une tige courte. Nous l'insérons dans la carte, assurez-vous d'y connecter une résistance et utilisez les fils «papa-papa» pour connecter la tige courte de la LED bleue à 5 broches et la tige courte de la LED rouge à 12 broches.
Le squeaker suffit de connecter le fil noir à «-», le fil rouge à 13 broches.
Voici comment cela devrait fonctionner:

La chose la plus importante (croquis)
#include <Wire.h> #include <Wire.h> #include <OneWire.h> #include <DallasTemperature.h> // DS18B20 #define ONE_WIRE_BUS 10 // pin DS18B20 OneWire oneWire(ONE_WIRE_BUS); DallasTemperature sensors(&oneWire); #include <OLED_I2C.h> OLED myOLED(8, 9, 8); // , 8 pin-SDA, 9pin-SCL extern uint8_t RusFont[]; // extern uint8_t BigNumbers[]; // extern uint8_t SmallFont[]; // void setup() { pinMode(13, OUTPUT); // pin 13 pinMode(12, OUTPUT);// pin 12 pinMode(5, OUTPUT); // pin 5 sensors.begin();// myOLED.begin();// myOLED.setFont(RusFont); } void loop() { if (sensors.getTempCByIndex(0)>70){ // ( >70 ) digitalWrite(5,255);// tone(13, 2500); // 2500 delay(400);// 0.4 digitalWrite(5,LOW);// } else{ digitalWrite(5,LOW); } if (sensors.getTempCByIndex(0)<25){ // ( <45 ) digitalWrite(12,255); // tone(13, 2500); // 2500 delay(400); // 0.4 digitalWrite(12,LOW); // } else{ digitalWrite(12,LOW); } if ((sensors.getTempCByIndex(0)<70) and (sensors.getTempCByIndex(0)>45)){ noTone(13); // } sensors.requestTemperatures(); myOLED.clrScr(); // myOLED.setFont(RusFont); myOLED.print("Ntvgthfnehf", CENTER, 0); // myOLED.setFont(SmallFont); myOLED.print("vk.com/tupo_izi123", CENTER, 55); // myOLED.setFont(BigNumbers); myOLED.print(String(sensors.getTempCByIndex(0) , 1), CENTER, 10); // , myOLED.update(); delay(100); }
Dans cette esquisse, j'ai réglé la température au-dessus de 70 et en dessous de 45 degrés, mais vous pouvez régler n'importe quelle autre (de -55 à +125 ° C).
Photos du produit final:
