Raspberry PI with temperature and humidity sensor
Tags: raspberrypi, dht11
Published: 2021-08-01 08:47:25

 ယခုပြောပြသွားမှာကတော့ Raspberry PI ကနေ DHT-11 (temperature and humidity sensor) ကို ဘယ်လိုအသုံးပြု့ရမလဲဆိုတာပြောပြပေးသွားမှာ ဖြစ်ပါတယ်။

DHT-11 sensor ကိုအသုံးပြု့ဖို့ဆိုရင် Raspberry PI အတွက်လုပ်ထားတဲ့
python libraries တွေ node js packages တွေအများကြီးရှိပါတယ်။

1. [DHT11 Python](https://pypi.org/project/dht11/)
2. [DHT11 Node JS](https://www.npmjs.com/package/node-dht-sensor)

ယခု turorial မှာတော့ [DHT11 Python](https://pypi.org/project/dht11/) ကိုအသုံးပြု့တဲ့နည်း ပြောပြသွားမှာဖြစ်ပါတယ်။

### အသုံးပြု့ပုံ အဆင့်ဆင့်
1. Run the standard updates
2. Install [DHT11 Python](https://pypi.org/project/dht11/)
3. Connect DHT11 sensor with Raspberry Pi board
4. Write python code to read data

### 1. Run the standard updates
ဒါကတော့ ထုံးစံအတိုင်း linux based OS တွေဖြစ်တဲ့အတွက် libraries တွေကို update/upgrade လုပ်ပေးရမယ်။ Raspberry PI OS က Debian-based ဖြစ်နေတာကြောင့်ပါ။

Raspberry PI ကို Terminal ကနေ
`sudo apt-get update`
`sudo apt-get upgrade`
တို့ကို run ပေးပါ။

### 2. Install [DHT11 Python](https://pypi.org/project/dht11/)
ဒုတိယ အဆင့်အနေနဲ့ [DHT11 Python](https://pypi.org/project/dht11/) library ကို install လုပ်ပေးပါမယ်။

`python3 -m pip install dht11` ကို အသုံးပြု့ပြီး အလွယ်တကူ install လုပ်နိုင်ပါတယ်။

![Screen Shot 2021-08-01 at 3.09.16 PM](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8qhl5vuqulnhflffb4p1.png)
 

### 3. Connect DHT11 sensor with Raspberry Pi board 
တတိယ အဆင့်အနေနဲ့ကတော့ DHT11 sensor ကို Raspberry Pi board ရဲ့
pins တွေနဲ့ ဘယ်လိုချိတ်ဆက်ရမလဲသိ့ဖို့လိုပါတယ်။

အရင်ဆုံး DHT11 sensor မှာ pin ဘယ်နှချောင်းပါလဲ အရင်ကြည့်ရအောင်ပါ။

![dht11 sensor](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bjnm56d2p72dnnf3u6uw.jpeg)
 
| Symbol       | Description                    |
| -----------  | -----------                    |
| G            | Ground Pin ကို ဆိုလိုပါတယ်        |
| V            | Voltage Pin ကိုဆိုလိုပါတယ်        |
| S            | Signal/Data ကိုဆိုလိုပါတယ်        |

နောက်ထပ်သိ့ရမှာက မိ့မိ PI ရဲ့ Pins တွေကို နားလည်ဖို့လိုပါမယ်။
ဒါကတော့ Raspberry PI ရဲ့ GPIO Pin dragram ပါ။

![GPIO-Pinout-Diagram-2 (1)](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mxdv3qmci2v9rp9ehmd3.png)

ဒါကိုပဲ မိ့မိ့ PI ရဲ့ gpio pins တွေအသေးစိတ်သိ့ချင်တယ်ဆိုရင်
Terminal ကနေပဲ
`pinout` လို့ရိုက်ပြီး ကြည့်ရှုနိုင်ပါသေးတယ်။


![Screen Shot 2021-08-01 at 2.28.48 PM](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gsididhxbmz498w7x8qa.png)
 
ကျနော့်ရဲ့ Raspberry PI 4 Model B မှာတော့
1. 3 Voltage (2 pins)
2. 5 Voltage (2 pins)
3. Ground Pin (8 pins)
4. GPIO Pin (28 pins) ပါပါတယ်.

အသေးစိတ်ထပ်ဖတ်ချင်တယ်ဆိုရင်တော့ [GPIO Pin docs](https://www.raspberrypi.org/documentation/usage/gpio/README.md) မှာဖတ်လို့ရပါတယ်။

အဲတော့ sensor ရဲ့
`G` pin ကို Ground pin
`V` pin ကို 3 V/ 5 V pin
`S` pin ကို any GPIO pin
တွေမှာချိတ်ဆက်ပေးရပါမယ်။

![Screen Shot 2021-08-01 at 2.44.10 PM](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2fnyz484wj4t7yw027gh.png)
 
အထက်ပါအတိုင်းချိတ်ဆက်လိုက်တဲ့ အတွက်
`G` pin က pin 6
`V` pin က pin 2
`S` pin က pin 10 (GPIO 15)
မှာ ရှိနေမှာပါ။

### 4. Write python code to read data
ဒါကတော့ အထက်အဆင်မှာ installed လုပ်ခဲ့တဲ့ dht11 library ကို အသုံးပြု့ထားတဲ့ code ဖြစ်ပါတယ်။

```
import RPi.GPIO as GPIO
import dht11

# initialize GPIO
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
GPIO.cleanup()

# read data using pin 15
instance = dht11.DHT11(pin = 15)
result = instance.read()

if result.is_valid():
    print("Temperature: %-3.1f C" % result.temperature)
    print("Humidity: %-3.1f %%" % result.humidity)
else:
    print("Error: %d" % result.error_code)
```

Desktop ပေါမှာ `dht11_example.py` ဆိုတဲ့ဖိုင်လေးဆောက်ပါ။
ပြီးတော့ အထက်က code ကို ကူးထည့်လိုက်ပါ။

![Screen Shot 2021-08-01 at 3.06.58 PM](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/eecdfonnpq80heo8ejxn.png)
 

ပြီးရင်တော့ Terminal ကနေ 
```
pi@raspberrypi:~/Desktop phthon3 dht11_example.py
```
လို့ run ပေးရပါမယ်။
သတိ့ထားရမှာ က code ထဲမှာ gpio pin no ကို မှန်မှန်ကန်ကန်ထည့်ပေးရပါမယ်။
ချိတ်ဆက်တုန်းက `S` pin က pin 10 (GPIO 15) gpio 15 pin ကို အသုံးပြု့ထားတာဖြစ်ထဲ့အတွက် 15 လို့ထည့်ထားတာပါ။

![Screen Shot 2021-08-01 at 3.05.25 PM](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1jpk3i6cfv4se9rjaeme.png)
 

အားလုံးပဲအဆင်ပြေကြပါစေ။ 

<a href="https://ko-fi.com/ayarhlaine">
<img height="12" width="30%" src="https://res.cloudinary.com/practicaldev/image/fetch/s--KS7c42cU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.ko-fi.com/cdn/kofi1.png%3Fv%3D2" alt="Buy Me a Coffee at ko-fi.com" loading="lazy">
</a>

အားလုံးကိုကျေးဇူးတင်ပါတယ်။
ဆက်လက်ကြိုးစားပါအုံးမည်။

Ayar Hlaine