الأربعاء، 14 مارس 2018

قراءة مقاييس الحرارة والرطوبة باستخدام اردوينو وعرضها على شاشة OLED

المواد المطلوبة 

اردوينو اونو
شاشة 128X64 OLED
حساس DHT22 للحرارة والرطوبة
اسلاك التوصيل - لوحة الربط

في هذا المشروع ، سنقوم بعمل ميزان حرارة و مقياس رطوبة OLED من اردوينو. سوف نقرأ درجة الحرارة والرطوبة من مستشعر DHT22 ثم نعرض البيانات على شاشة OLED.





كود اردوينو

#include   
#include "DHT.h"
#define DHTPIN 7 
#define DHTTYPE DHT22 
DHT sensor(DHTPIN, DHTTYPE);

U8GLIB_SH1106_128X64 oled (13, 11, 10, 9, 8);  

void setup() 
{
sensor.begin(); 
oled.firstPage();  
do 
{
oled.setFont(u8g_font_fur14);    //setting the font size
//Printing the data on the OLED   
oled.drawStr(20, 15, "Welcome"); 
oled.drawStr(40, 40, "To");
oled.drawStr(5, 60, "DIYHACKING");  
}  while( oled.nextPage() );
delay(5000);
}

void loop()
{
float h = sensor.readHumidity();   //Reading the humidity value
float t = sensor.readTemperature();   //Reading the temperature value
float fah = sensor.readTemperature(true); //Reading the temperature in Fahrenheit
if (isnan(h) || isnan(t) || isnan(fah)) {  //Checking if we are receiving the values or not
Serial.println("Failed to read from DHT sensor!");
return;
}
float heat_index = sensor.computeHeatIndex(fah, h); //Calculating the heat index in Fahrenheit
float heat_indexC = sensor.convertFtoC(heat_index);    //Calculating the heat index in Celsius

oled.firstPage();  
do 
{
oled.setFont(u8g_font_fub11);    //setting the font size
//Printing the data on the OLED
oled.drawStr(0, 15, "Temp: ");
oled.drawStr(0, 40, "Hum: ");
oled.drawStr(0, 60, "Hi: ");
oled.setPrintPos(72, 15);       //setting the dimensions to print the temperature
oled.print(t, 0);
oled.println("C"); 
oled.setPrintPos(72, 40);  //setting the dimensions to print the humidity
oled.print(h, 0);     
oled.println("%");
oled.setPrintPos(72, 60);  //setting the dimensions to print the heat index
oled.print(heat_indexC, 0);
oled.println("%");
}  
while( oled.nextPage() );
delay(2000);  
}

ليست هناك تعليقات:

إرسال تعليق