วันเสาร์ที่ 17 ธันวาคม พ.ศ. 2559



Arduino วัดอุณหภูมิและความชื้น ด้วยเซนเซอร์ 

Arduino สามารถใช้งานเป็นอุปกรณ์เซนเซอร์ ความชื้นและอุณหภูมิ สำหรับประยุกต์ใช้กับงานตามต้องการได้ เช่น ระบบควบคุมอุณหภูมิความชื้นในโรงเพาะเห็น ระบบควบคุมอัตโนมัติ หรือจะใช้ทำเป็นเซนเซอร์เล็ก ๆ สำหรับมอนิเตอร์อุณหภูมิความชื้นในสถานที่ต่าง ๆ การใช้งานเซนเซอร์อุณหภูมิและความชื้นร่วมกับ Arduino สามารถทำได้โดยง่าย เพราะมีไลบารีมาให้พร้อมใช้งาน เพียงแค่ก็อปไปวางก็สามารถดึงค่าอุณหภูมิและความชื้นออกมาได้แล้ว



การต่อวงจร DHT11 / DHT22 กับ Arduino ต่อตามรูปนี้
สำหรับการต่อวงจร DHT21 กับ Arduino ต่อตามนี้
  • สายสีดำ -> Gnd
  • สายสีแดง -> 5 Vcc
  • สายสีเหลือง -> 2 (สาย ข้อมูล)
  • ต่อ R 4.7K คร่อมสายสีแดงกับสายสีเหลือง
การเขียนโคด Arduino เพื่ออ่านค่าความชื้นและอุณหภูมิจากเซนเซอร์ DHT22

1. ดาวน์โหลดไลบารี DHT22/11 คลิกที่นี่
2.เขียนโคดโปรแกรมตามนี้

#include "DHT.h"

DHT dht;

void setup()
{
  Serial.begin(9600);
  Serial.println();
  Serial.println("Status\tHumidity (%)\tTemperature (C)\t(F)");

  dht.setup(2); // data pin 2
}

void loop()
{
  delay(dht.getMinimumSamplingPeriod());

  float humidity = dht.getHumidity(); // ดึงค่าความชื้น
  float temperature = dht.getTemperature(); // ดึงค่าอุณหภูมิ

  Serial.print(dht.getStatusString());
  Serial.print("\t");
  Serial.print(humidity, 1);
  Serial.print("\t\t");
  Serial.print(temperature, 1);
  Serial.print("\t\t");
  Serial.println(dht.toFahrenheit(temperature), 1);
}

เปิดดูผลลัพธ์ที่หน้าจอ Serial Monitor ก็จะพบว่าเราสามารถดึงค่าอุณหภูมิ ความชื้น
จากเซนเซอร์ DHT22 / DHT21 / DHT11 โดยใช้ Arduino ออกมาใช้งานได้แล้ว


นาย สุธรรม แสงทรง ปวส.2 เทคโนโลยีคอมพิวเตอร์ เลขที่ 12

อ้างอิง

https://www.arduinoall.com/article/18/สอน-วิธี-ใช้งาน-arduino-วัดอุณหภูมิและความชื้น-ด้วยเซนเซอร์-dht22-dth21-dht11-ใช้ได้ภายใน-3-นาที

วันพฤหัสบดีที่ 17 พฤศจิกายน พ.ศ. 2559


การ Interface กับ Serial Port (Part I)



Introduction


การ Interface กับ Serial Port จะยากกว่าการ Interface กับ Parallel Port การสื่อสารของอุปกรณ์ที่ต่อกับ Serial Port จะถูกเปลี่ยน (Convert) เป็น สัญญาณแบบ Parallel แล้วจึงนำไป Process ต่อ ซึ่งจะใช้ Universal Asynchronous Receiver / Transmitter (UART) เป็นตัวทำหน้าที่นี้ ส่วนทางด้าน Software ก็มี Register ที่ต้องจัดการมากกว่า Standard Parallel Port (SPP) อีกหลายตัว



ถ้าเช่นนั้น Serial Port มีข้อดีกว่า Parallel Port อย่างไรบ้าง?


ระยะของสาย Serial สามารถมีความยาวได้มากกว่าสายของ Parallel มาก ทั้งนี้เพราะสัญญาณของ Serial Port ซึ่งส่วนใหญ่ใช้มาตรฐาน RS-232C จะมีค่า –3Volt ถึง –15Volt สำหรับ Logic ”1” หรือ “Mark” และมีค่า +3Volt ถึง +15Volt สำหรับ Logic “0” หรือ “Space” (สำหรับช่วง +3Volt ถึงถึง -3Volt เป็นช่วง Undefined) ส่วนสัญญาณของ Parallel นั้น Logic “1” จะมีค่า +5Volt และ logic “0” จะมีค่า 0Volt ทำให้สัญญาณของ Serial สามารถรับการสูญเสียของสาย (Cable loss) ได้มากกว่าสัญญาณของ Parallel ปรกติสาย Parallel Port จะไปได้เพียง 5 ฟุต ส่วนสาย RS-232 จะไปได้ถึง 50 ฟุตที่ speed สูงสุดของมัน


Serial จะใช้จำนวนสายไฟน้อยกว่า Parallel ถ้าต่อในลักษณะ Null Modem จะใช้สายเพียง 3 เส้น ขณะที่แบบ Parallel จะต้องใช้สาย 19 ถึง 25 เส้น


การสื่อสารแบบไร้สายเช่นการใช้ Infra Red การส่งพร้อมกันทีละ 8 Bit แบบ Parallel จะทำให้ไม่สามารถแยกแยะได้ว่า Bit ใดเป็น Bit0 หรือ Bit1 … เป็นต้น ปัจจุบันอุปกรณ์ IrDA มีความเร็วไม่ต่ำกว่า 115.2K Baud แต่มี Pulse length เพียง 3/16 ของ RS-232 เพื่อประหยัดพลังงาน เพราะส่วนมากใช้ในอุปกรณ์แบบพกพาเช่น Laptop หรือ Palmtop


ปัจจุบัน Microcontroller มักมีการผนวก Port การสื่อสารแบบ Serial ไว้ด้วย เพราะใช้จำนวนขาน้อยกว่าแบบ Parallel


Hardware


Hardware Properties


อุปกรณ์สื่อสารจะจำแนกออกเป็น 2 กลุ่มคือ


อุปกรณ์ Data Communication Equipment (DCE)


อุปกรณ์ Data Terminal Equipment (DTE)


DEC คืออุปกรณ์ที่ทำหน้าที่สื่อสารเช่น Modem หรือ โทรศัพท์ หรือ Fax เป็นต้น ส่วน DTE คืออุปกรณ์ ที่ต่อกับ DCE เพื่อใช้รับและ/หรือส่งสาร ซึ่งก็คือเครื่อง Computer หรือ Terminal โดยใช้ UART เป็นตัว Interface นั่นเอง


คุณสมบัติทางไฟฟ้าของ Serial Port ตามมาตรฐาน RS-232C ของ Electronic Industry Association (EIA) พอสรุปได้ดังนี้



1. Logic “0” หรือ “Space” หรือ "On" มีค่า +3Volt ถึง +15Volt


2. Logic “1” หรือ “Mark” หรือ "Off" มีค่า -3Volt ถึง -15Volt


3. ช่วง +3Volt ถึง –3Volt เป็นช่วง Transition หรือ Undefined


4. Open circuit voltage เมื่อเทียบกับ GND ต้องไม่เกิน 25Volt


5. Short circuit current ต้องไม่เกิน 500mA ซึ่ง Driver ต้องสามารถรองรับได้


6. Total loading capacitance รวมทั้งสาย cable แล้วต้องไม่เกิน (CL) 2,500 pF


7. ค่าความต้านทานของ load และสาย cable รวมกัน (RL) ต้องไม่ต่ำกว่า 3k Ohm และไม่สูงกว่า 7k Ohm


8. ค่าแรงดันไฟด้าน Load (EL) ต้องไม่เกิน 2V


หมายเหตุ ในทางปฏิบัติ ด้านส่งจะส่งด้วยสัญญาณ +5V ถึง +15V และ -5V ถึง -15V ส่วนที่ด้านรับจะรับสัญญาณที่ -3V ถึง -15V และ +3V ถึง +15V เพื่อให้สามารถรองรับ Voltage drop และ Noise margin ในสายได้ 2V และจากข้อ 1, 2, 7 และ 8 ก็สามารถคำนวณกระแสในภาวะปรกติได้สูงสุดประมาณ 5.6 mA


RS-232C กำหนด Baud rate ไว้ไม่เกิน 20K Baud ปัจจุบันได้แก้ไขให้รองรับกับ Technology ใหม่ได้ จึงมีการปรับปรุงถึง RS-232E ซึ่งมีรายละเอียดอีกหลายอย่าง ถ้าสนใจขอให้ศึกษาจากเอกสาร RS-232E