ทำหน้าที่เป็นทั้งตัววัดความชื้นและอุณหภูมิภายในตัวถังเดียวกัน
สามารถกำหนดความละเอียดของย่านการวัดได้
มีขนาดเล็กและกินพลังงานต่ำ ทำงานในย่านแรงดัน +2.4V ถึง+5.5V
เสถียรภาพในการทำงานสูง
ขาสัญญาณสำหรับสื่อสารข้อมูลของโมดูล SHT11
PIN 1 : DATA หรือ Serial Data (SDA)
PIN 2 : NC (No connect)
PIN 3 : CLOCK หรือ Serial Clock (SCK)
PIN 4 : GND
PIN 5 : NC (No connect)
PIN 6 : NC (No connect)
PIN 7 : NC (No connect)
PIN 8 : +5V
ทดลองต่อวังจร SHT11 กับ PIC18F2550 เลยคะ
ทำการต่อวงจรตามรูปข้างล่างเลยค่า โดยการทำงานของวงจรที่เราทำขึ้นเราจะทำการอ่านค่าจากเซนเซอร์ จากนั้นนำมาแสดงที่ serial port ทางคอมพิวเตอร์คะ ซึ่งโปรแกรมที่เราเขียนจะทำการอ่านค่าวนซ้ำทุก 1 วินาที
ขึ้นตอนต่อไป คือการเขียนโปรแกรม ผู้เขียนจะใช้ CCS C คอมไพเลอร์ร่วมกับ MPLAB IDE ซึ่งในโค้ดข้างล่างเราต้องทำการ add library "sht1x.c" ซึ่ง library นี้ผู้เขียนได้ทำการแก้ไขจากไลบราลี่เดิมที่มีอยู่แล้ว โดยเพื่อนๆ สามารถดาวน์โหลดไลบราลี่ได้จากลิ้งนี้คะ (link here) เมื่อดาวน์โหลดมาแล้วให้เอาไปแทนไลบราลี่ตัวเดิมซึ่งอยูใน " C:\Program Files (x86)\PICC\Drivers" จากนั้นเขียนโปรแกรมตามโค้ดข้างล่างเลยคะ
//******************************************************
//Project : SHT11 Example
//Purpose : Test SHT11
//Auther : JUMP start innovation
//Email : jumpstartinnovation@gmail.com
//Complier : CCS.PCWH.v4.134
//Hardware : PIC18F2550
//**********************************************************
#include <18f2550.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
// *** Device Specification ***
#fuses HS // use Oscillator mode HS
#fuses NOWDT // doesn't use watch dog
#fuses NOLVP // doesn't use Low Voltage for program
#fuses NOPROTECT // No program detect
#use delay (clock=20M, crystal)
// use built-in function: delay_ms() & delay_us() by crytal 20MHz
#use rs232(baud=9600,xmit=pin_c6,rcv=pin_c7,stream=HOSTPC,errors)
// Assign pin for sht1x
#define sht_data_pin PIN_B0
#define sht_clk_pin PIN_B1
#include<sht1x.c>
/*******************************************************************************
* Function prototypes
********************************************************************************/
void headle(void);
/***********************************************************************
* FUNCTION: headle
* DESCRIPTION: Show headle title though rs232
* PARAMETERS: nothing
* RETURNED: nothing
***********************************************************************/
void headle(void){
fprintf(HOSTPC,"\n\r******************************************************\n\r");
fprintf(HOSTPC,"Project : SHT11 Example\n\r");
fprintf(HOSTPC,"Purpose : Test SHT11\n\r");
fprintf(HOSTPC,"Auther : JUMP start innovation\n\r");
fprintf(HOSTPC,"Email : jumpstartinnovation@gmail.com\n\r");
fprintf(HOSTPC,"Complier : CCS.PCWH.v4.134\n\r");
fprintf(HOSTPC,"Hardware : PIC18F2550\n\r");
fprintf(HOSTPC,"**********************************************************\n\r");
}
/***********************************************************************
* FUNCTION: main
* DESCRIPTION: main function
* PARAMETERS: nothing
* RETURNED: nothing
***********************************************************************/
void main(void){
float truehumid;
float restemp;
headle(); //show message output to serial port
sht_init(); //Initial SHT11
fprintf(HOSTPC,">> Initial SHT11 ... DONE\n\r");
while(true){
sht_rd (restemp, truehumid);
fprintf(HOSTPC,"Temperature :%2.1f\n\r",restemp);
fprintf(HOSTPC,"Humidity :%2.1f\n\r", truehumid);
fprintf(HOSTPC,"------------------\n\r\n\r");
delay_ms(1000);
}
}
เมื่อทำการคอมไพล์เสร็จเรียบร้อยแล้ว ทดลองรันดูเลยคะ จะได้ผลตาม Video ข้างล่างคะ
VIDEO
เราสามารถนำไปประยุกต์ใช้ได้อย่างหลากหลายเช่น
ระบบ เปิด-ปิด สปริงเกอร์ ที่ใช้สำหรับควบคุมความชื้นโรงเพาะเห็ด
ใช้ความคุมการ เปิด-ปิด ฮิตเตอร์สำหรับห้องปิดเช่น ห้องซาวน่า เป็นต้น
คลิปวีดีโอข้างล่างเป็นการประยุกต์โดยจะทำการเตือนเมื่ออุณหภูมิและความชื้นเกินกว่าค่าที่ตั้งเอาไว้ โดยวงจรนี้จะต่อตัวเซนเซอร์สองตัว ซึ่งแยกทำงานกันแบบอิสระ