الجمعة، 20 مارس، 2015

قياس درجة الحرارة والتحكم بعرضها بواسطة #C

قياس درجة الحرارة والتحكم بعرضها  بواسطة #C




تتضمن هذه المقال عرض تجربة عملية لقياس درجة حرارة الجو و من ثم طباعة حاله الطقس على الشاشة الكريستالية .

سيتم استخدام برمجية C# " تقرأ سي شارب " لتحديد نوع البيانات التي ستعرض على الشاشة الكريستاليه .

سيقسم الشرح للمشروع لجزئين : الأردوينو و ال #C

أ) الأردوينو  : 

سنحتاج لهذه التجربة : 

1- بطاقة اردوينو
2- أسلاك توصيل
3- الشاشة الكريستالية LCD 16*2
4- LM35 حساس للحرارة
5- Potentiometer
6- Bread board




خطوات المشروع: 

اولا : نقوم بالتحقق من حساس الحرارة و يمكنك الاستعانه بمقاله (حساس الحرارة lm35 )  .
ثانياً : التحقق من الشاشة الكريستالية و يمكنك الاستعانة بمقاله (الشاشة الكريستالية 1602 liquid Crystal ) .


ثالثاً :نقوم بتوصيل الشاشة و حساس الحرارة مع الاردوينو  كالتالي :







البرنامج :
/*
Arduino simple Tempreture  system 
using Arduino And ultrasonic and Servo 
Code written By : 
RAZAN BARHAM  - Jordan
http://www.genotronex.com/
*/
#include <LiquidCrystal.h>
int sensorValue=0;
byte num[2]={0,0};
int cel =0;
LiquidCrystal lcd(12, 11,5,4,3,2);
void setup() {
  lcd.begin(16, 2);
  Serial.begin(9600);
  //clearScreen();
  lcd.setCursor(0,1);
    
  // put your setup code here, to run once:

}

void loop() {
   
  gettemp();
  Serial.println(cel);
  /*while(Serial.available()>0)
  {
    Serial.readBytes(num,Serial.available());
    Serial.write(cel);

  }
    
  */
  
 
// delay(1000);
//clearScreen();
   
  
  while(Serial.available()>0)
  {
    //clearScreen();
 lcd.print(char(Serial.read()));
 //delay(1000);
  }
  //lcd.print("hello:");
  //clearScreen();
  
  //delay(1000);
  // put your main code here, to run repeatedly:

}
void gettemp()
{
 sensorValue =analogRead(A0);
cel=(sensorValue*0.0049)*100; 
}
void clearScreen()
{
  lcd.setCursor(0,0);
  lcd.print("                    ");
  lcd.setCursor(0,1);
  lcd.print("                    ");
 
}// end clear code




ثم قم بتحميل الكود على بطاقة الاردوينو و ابق الوصلة USB موصوله بالجهاز .

ب) برمجية #C 

الان سننتقل الي العمل في بيئة Visual studio 2010  
في البداية نقوم  باختيار عمل مشروع جديد
ثم نختار اللغه Visual C#
بعد ذلك نختار  Windows form application 
في النهاية نختار اسم للمشروع و مكان حفظه .

الان حان وقت رسم Form
 لنحصل على هذا الشكل :tool box سنرسمه من خلال


ملاحظة : كل مربع يجب علينا تغيير اسمه الى الاسماء التي اخترتها بالكود  و ذلك من خلال الضغط بالزر اليمين على احد (button) و اختيار proparties,سيظهر مربع على اليمين 
قم باختيار (name) ثم غير الاسم , وهكذا لكل الازرار(button) و صناديق الكتابة(textbox).هذه الاسماء:

Show temperature à show
Write to LCD à lcd
Exitàex
Text box above show temperatureàsh
Text box above write à lc

للانتقال الى الكود فقط قم بالضغط مرتين متتاليتين  على احد الازرار  لينتقل مباشرة الى الكود , في النهاية نضع هذا الكود

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO.Ports;

namespace temp
{
   
    public partial class Form1 : Form
    {
         int temperature=0;
        string status="";
        private SerialPort myport;
        public Form1()
        {
            InitializeComponent();
            init();
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }

       

        private void lcd_Click(object sender, EventArgs e)
        {
            try
            {
           
                status = lc.Text;
                 myport.WriteLine(status);
            show.Enabled = true;
            lcd.Enabled = false;
            }
            catch(Exception )
            {
                MessageBox.Show("not work probably ");
            }
            }
     
        private void show_Click(object sender, EventArgs e)
        {
            try{

            if(myport.IsOpen)
            {
                 temperature = (int)(Math.Round(Convert.ToDecimal(
                          myport.ReadLine()), 0));
                sh.Text = temperature.ToString();
        show.Enabled = false;
            lcd.Enabled = true;
            }
            }
            catch(Exception ex)
            {
                MessageBox.Show(ex.Message);

            }
        }

        private void init()
        {
            try
            {
                myport = new SerialPort();
                myport.BaudRate = 9600;
                myport.PortName = "COM3";
                myport.Open();
            }
            catch (Exception)
            {
                MessageBox.Show("error");
            }
            //
            show.Enabled = true;
           lcd.Enabled = false;
        }

        private void ex_Click(object sender, EventArgs e)
        {
            this.Hide();
        }

       
    }
    }


ملاحظه : في  Init function  قم بتغير رقم Com المناسب لبطاقة الاردوينو الخاصة بك .

في النهاية قم بعمل  Cntrl +F5 

ضمن الملحقات التالية يوجد البرنامج جاهزاً للتشغيل على نظام تشغيل ويندوز بصيغة exe  و تشغيل المشروع مباشرة .



الكاتبة : رزان برهم - الأردن  


1 التعليقات :

 
Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.