جدول المحتويات:

مستشعر الأشعة تحت الحمراء مع ESP8266: 6 خطوات
مستشعر الأشعة تحت الحمراء مع ESP8266: 6 خطوات

فيديو: مستشعر الأشعة تحت الحمراء مع ESP8266: 6 خطوات

فيديو: مستشعر الأشعة تحت الحمراء مع ESP8266: 6 خطوات
فيديو: ☑️ أردوينو للمبتدئين - حساس الاشعة ما تحت الحمراء لتجنب العقبات 2024, يوليو
Anonim
Image
Image
واي فاي ESP8266 NodeMcu ESP-12E
واي فاي ESP8266 NodeMcu ESP-12E

هدفنا هذه المرة هو إنشاء برنامج يقرأ درجة الحرارة المحيطة لأي جسم يشير إلى جهاز الاستشعار الخاص بنا. للقيام بذلك ، سنستخدم في هذا المشروع عقدة ESP8266MCU ، ومستشعر الأشعة تحت الحمراء MLX90614 ، وشاشة OLED 96 بوصة ، والتي ستعرض بيانات درجة الحرارة.

الخطوة 1: WiFi ESP8266 NodeMcu ESP-12E

الخطوة الثانية: مستشعر الأشعة تحت الحمراء

حساس الأشعة تحت الحمراء
حساس الأشعة تحت الحمراء

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

الخطوة 3: عرض OLED

عرض OLED
عرض OLED

الخطوة 4: التجميع

المجسم
المجسم

هذا مخطط بسيط للغاية. لدي جدول هنا يسمح بالتخيل السهل.

ESP8266 - OLEDD5 - SCL

D7 - SDA

D3 - الدقة

D4 - DC

D8 - CS

3 ، 3 فولت - VCC

GND - GND

ام ال اكس 90614

D1 - SCL

D2 - SDA

3 ، 3 فولت - VCC

GND - GND

الخطوة 5: المكتبات

مكتبات
مكتبات
مكتبات
مكتبات

لاستخدام شاشة OLED ، أضف مكتبة "Adafruit-GFX-Library-master" التالية.

ما عليك سوى الوصول إلى "Sketch >> Include Libraries >> Manage Libraries…"

أضف أيضًا مكتبة "Adafruit Unified Sensor" التالية.

روابط التنزيل الخاصة بالمكتبات موجودة في ملف PDF ، المتاح أدناه مباشرة.

الخطوة 6: كود المصدر

سنبدأ بتعريف المكتبات والثوابت التي سنستخدمها خلال الكود الخاص بنا.

# تتضمن // Biblioteca para I2C # include // Biblioteca para comunicação com o sensor #include // Biblioteca para propriedades gráficas #include // Biblioteca para comunicação com dipsplay OLED // pinagem para o NodeMCU ESP8266 # D5 #define cs D8 #define rst D3 #define dc D4 // definição das cores que serão utilizadas #define BLACK 0x0000 #define WHITE 0xFFFF // definição da socenada onde escreveremos cada um dos dados #define POS_X_AMBOSE 2 #define POS_Y_OBJETO 55 #define POS_X_TITULO 10 #define POS_Y_TITULO 4 // construtor do objeto para comunicar com o display OLED Adafruit_SSD1331 display = Adafruit_SSD1331 (cs، dc، mosi، sclk، rst) ؛ // objeto responsável pela comunicação com o sensor infravermelho IRTherm sensor؛ // variáveis que armazenarão o valor das temperature lidas float tempAmbiente؛ تعويم درجة الحرارة

اقامة

في وظيفة الإعداد () ، سنقوم بتهيئة هدف الاتصال الخاص بنا مع المستشعر ، وكذلك موضوع الاتصال بالشاشة. فيما يلي بعض الإعدادات لكل منهم.

إعداد باطل () {// Inicializa sensor de temperature infravermelho sensor.begin () ؛ // سيليسيونا درجة الحرارة em Celsius sensor.setUnit (TEMP_C) ؛ // podemos ainda utilizar TEMP_F para Fahrenheit // ou TEMP_K para Kelvin // inicializa o objeto para comunicarmos com o display OLED display.begin () ؛ // pinta a tela toda de preto display.fillScreen (أسود) ؛ // configura o tamnaho do texto que escreveremos em tela display.setTextSize (0) ؛ // configura a cor branca para o texto display.setTextColor (WHITE) ؛ // os comandos abaixo posicionam o cursor no (x، y) desejado para a seguir escrevermos em tela display.setCursor (POS_X_TITULO، POS_Y_TITULO) ؛ display.print ("TEMPERATURA") ؛ display.setCursor (POS_X_TITULO + 20، POS_Y_TITULO + 15) ؛ display.print ("(") ؛ display.print ((char) 247) ؛ // símbolo de graus display.print ("C)") ؛ display.setCursor (POS_X_AMBIENTE، POS_Y_AMBIENTE) ؛ display.print ("AMB:") ؛ // AMBIENTE display.setCursor (POS_X_OBJETO، POS_Y_OBJETO) ؛ display.print ("OBJ:") ؛ // OBJETO}

حلقة

في وظيفة الحلقة () ، دعنا نقرأ بيانات المستشعر ، ثم نعرضها على شاشة OLED.

// chamamos o método "read" do sensor para realizar a leitura da tempAmbiente // read retornará 1 caso consiga realizar a leitura، ou 0 caso contário if (sensor.read ()) {// recupera a leitura da Temperatura do ambiente tempAmbiente = sensor.ambient () ؛ // recupera a leitura da tematura do objeto apontado pelo sensor tempObjeto = sensor.object () ؛ // limpa a área onde colocamos o valor da temperatura do ambiente e do objeto display.fillRect (POS_X_AMBIENTE + 35، POS_Y_AMBIENTE، 35، 10، BLACK) ؛ display.fillRect (POS_X_OBJETO + 35، POS_Y_OBJETO، 35، 10، BLACK) ؛ // posiciona o cursor e escreve عرض درجة حرارة محيطة. setCursor (POS_X_AMBIENTE + 35، POS_Y_AMBIENTE) ؛ display.print (tempAmbiente) ؛ display.print ((char) 247) ؛ // simbolo de graus // posiciona o cursor e escreve a temperature objeto que o sensor está apontando display.setCursor (POS_X_OBJETO + 35، POS_Y_OBJETO) ؛ display.print (tempObjeto) ؛ display.print ((char) 247) ؛ // simbolo de graus} تأخير (1000) ؛ // interalo de 1 segundo para a próxima leitura}

موصى به: