جهاز مستقل على اردوينو ، مما يشير إلى زيادة (نقصان) في درجة الحرارة

مقدمة


تم تصميم هذا الجهاز لتحديد درجة الحرارة على مسافة. نظرًا لأنني لم أجد الإرشادات الجاهزة لتجميع هذا الجهاز الذي أحتاجه ، ولم أكن أرغب حقًا في شراء أكثر من ألفين ، فقد تقرر أن أفعل كل شيء على اردوينو (ليست باهظة الثمن وليست صعبة للغاية).

تعليمات التجميع


لبناء المشروع نحتاج:

  • 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 درجة مئوية).

صور المنتج النهائي:

صورة

Source: https://habr.com/ru/post/ar476900/


All Articles