مقدمة
تم تصميم هذا الجهاز لتحديد درجة الحرارة على مسافة. نظرًا لأنني لم أجد الإرشادات الجاهزة لتجميع هذا الجهاز الذي أحتاجه ، ولم أكن أرغب حقًا في شراء أكثر من ألفين ، فقد تقرر أن أفعل كل شيء على اردوينو (ليست باهظة الثمن وليست صعبة للغاية).
تعليمات التجميع
لبناء المشروع نحتاج:
- DS18B20 استشعار درجة الحرارة 1 متر. (يختم)
- شاشة 0.96 128x64 OLED
- اللوح
- بابا دادي سلك مجموعة
- متحكم اردوينو اونو
- المقاوم
لتنفيذ المشروع ، نحتاج إلى تثبيت arduino IDE والعديد من المكتبات في وقت واحد:
- مكتبة OneWire اردوينو
- OLED I2C_OLED_I2C مع دعم للغتين الروسية والأوكرانية.
- درجة حرارة دالاس
دعنا نتحدث قليلا عن اللوح. يتم استخدام هذا اللوح للتجميع السريع للدوائر دون لحام وراديو لاسلكي وسلك للاتصال. تأتي لوحات التطوير بأحجام مختلفة ، ولكنها في معظم الحالات تتكون من هذه الكتل المتماثلة:

يظهر مخطط التوصيل الكهربائي للمآخذ في الشكل الصحيح: خمسة ثقوب على كل جانب ، في كل من الصفوف (في هذه الحالة 30) متصلة كهربائياً مع بعضها البعض. يوجد على اليسار وعلى اليمين خطان للطاقة: هنا جميع الثقوب الموجودة في العمود مترابطة. تم تصميم الفتحة الموجودة في الوسط للتركيب والاستخراج المريح للدوائر الدقيقة في هذه الحالات. لتجميع الدائرة ، يتم إدراج مكونات الراديو والصداري في الثقوب.
بعد أن اكتشفنا اللوح ، يمكننا الآن الانتقال إلى توصيل الوحدات. أولاً ، قم بتوصيل الشاشة كما يلي:


في هذه الحالة ، قمنا بتوصيل 5V بـ "+" على اللوح (السلك الأصفر) ، GND بـ "-" (السلك الأبيض) ، بحيث في وقت لاحق يجب أن تكون جميع الطاقة على الوحدات متصلة بـ "+" و "-" على اللوح.
بعد ذلك ، قم بتوصيل جهاز استشعار درجة الحرارة DS18B20 باستخدام المقاوم كما هو موضح في الصورة أدناه:


في حالتنا ، من أجل راحة ، قمنا بتوصيل جميع أسلاك الاستشعار إلى اللوح وقمنا بتوصيل الكبل البرتقالي "Dad to Dad" إلى Pin 10.
يتم إنجاز نصف العمل ، ويظل فقط لتوصيل أجهزة الإشارة ، وهي: x2 LED (أحمر لدرجة حرارة عالية ، أزرق منخفض) وباعث بيزو تقليدي (في حالة عامة الناس "مكبر الصوت"). يتم توصيل LED ببساطة شديدة ، "+" هو قضيب طويل ، وناقص هو قضيب قصير. نقوم بإدخاله في اللوحة ، تأكد من توصيل المقاوم به واستخدام أسلاك "Dad-dad" لتوصيل قضيب قصير من LED الأزرق إلى 5 دبوس ، وقضيب قصير من أحمر LED إلى 12 دبوس.
قم بتوصيل السلك الأسود فقط بـ "-" ، السلك الأحمر إلى 13pin.
هذه هي الطريقة التي يجب أن تعمل بها:

أهم شيء (رسم)
#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); }
في هذا المخطط ، قمت بضبط درجة الحرارة فوق 70 درجة وأقل من 45 درجة ، لكن يمكنك ضبط أي درجة حرارة أخرى (من -55 إلى +125 درجة مئوية).
صور المنتج النهائي:
