
CÁC VÍ DỤ LẬP TRÌNH RASPBERRY PI PICO WIRELESS VỚI MICROPYTHON
Xem thêm...
Time: 15:15 17/03/2024 | Cao Văn Vinh
---------------------------------
Xin chào mọi người, hôm nay mình sẽ giới thiệu một project nho nhỏ về hệ thống cảnh báo rò rỉ khí GAS sử dụng Raspberry Pi 3B và giao tiếp với Blynk
Đồ án này sử dụng Raspberry Pi 3 Model B+ là sản phẩm trong gia đình Raspberry Pi, nổi bật với chip 4 nhân 64-bit có tốc độ 1.4GHz – nhanh nhất từ trước đến nay! Phiên bản mới còn hỗ trợ Wifi Dual-band 2.4GHz và 5GHz, Bluetooth 4.2/Bluetooth Low Energy, cổng Ethernet tốc độ cao (300Mbps) và Power over Ethernet (PoE) thông qua PoE HAT.
Sơ đồ kết nối chân như sau:
DATA (DHT11) -> GPIO17
Digital (MQ2) -> GPIO18
Buzzer -> 14
Sau khi đấu nối phần cứng như hình, ta tiến hành cài thư viện cần thiết
Cài thư viện DHT11
Vào terminal và nhập câu lệnh sau để cài thư viện cho DTH11
git clone https://github.com/adafruit/Adafruit_Python_DHT.git
Sau khi download thư viện về được, ta trỏ tới thư viện với dòng lệnh:
cd Adafruit_Python_DHT
Tiến hành cài thư viện:
sudo apt-get install build-essential python-dev python-openssl
sudo python setup.py install
sudo pip3 install Adafruit_Python_DHT
Như vậy ta đã cài đặt thành công thư viện.
Cài thư viện Blynk
Tiếp tục ở terminal ta gõ:
git clone https://github.com/vshymanskyy/blynk-library-python.git
Như vậy, ta đã cài 2 thư viện là DHT11 và Blynk thành công!
Ở bước tiếp theo, ta sẽ tiến hành đăng ký Blynk Server. Nếu các bạn đã xài Blynk rồi thì rất dễ để thực hiện, còn chưa xài bao giờ thì bạn mò xíu cũng làm được luôn kkk.
Đầu tiên, ta truy cập https://blynk.io và tiến hành tạo tài khoản.
Ta tiến hành tạo thiết bị mới với nút New Device. Tiếp theo ta tạo các thông số về cảm biến với Datastream.
Tạo giao diện web với web dashboard.
Ta vào Device Info và lấy AUTH_TOKEN.
Lưu lại mã AUTH_TOKEN này để tái sử dụng trong chương trình giao tiếp. Trên AppStore/GooglePlay, bạn cũng có thể tải phần mềm Blynk IoT và tiến hành đăng nhập với tài khoản vừa đăng kí. Bạn có thể tạo giao diện trên mobile dễ dàng như trên web
Bây giờ, mọi thứ đã sẵn sàng! Ta tiến hành lập trình
ta truy cập vào Thonny Python IDE. Tạo một project, lưu ý nơi lưu project phải nằm ở thư viện của Blynk. Mặc định sẽ là:
/home/pi/blynk-library-python
Đoạn code ở project này cụ thể như sau:
import BlynkLib
import RPi.GPIO as GPIO
from BlynkTimer import BlynkTimer
import Adafruit_DHT
import time
DHT_SENSOR = Adafruit_DHT.DHT11
DHT_PIN = 17
GPIO.setmode(GPIO.BCM)
buzzer_pin = 14
gas_sensor_pin = 18
GPIO.setup(buzzer_pin, GPIO.OUT)
GPIO.setup(gas_sensor_pin, GPIO.IN)
BLYNK_AUTH_TOKEN = 'lidtlbN3Hn9Kg9RrvLTGrIFyFBUImlHM'
# Initialize Blynk
blynk = BlynkLib.Blynk(BLYNK_AUTH_TOKEN)
timer = BlynkTimer()
@blynk.on("connected")
def blynk_connected():
print("KET NOI THANH CONG TOI BLYNK SERVER")
print(".......................................................")
print("................... NHOM 3 ...................")
time.sleep(2);
def myData():
humidity, temperature = Adafruit_DHT.read(DHT_SENSOR, DHT_PIN)
if humidity is not None and temperature is not None:
print("Temp={0:0.1f}C Humidity={1:0.1f}%".format(temperature, humidity))
else:
print("Sensor failure. Check wiring.");
blynk.virtual_write(0, humidity,)
blynk.virtual_write(1, temperature)
blynk.virtual_write(2, gas)
print("Values sent to New Blynk Server!")
timer.set_interval(2, myData)
while True:
blynk.run()
timer.run()
if GPIO.input(gas_sensor_pin) == GPIO.LOW: # Nếu cảm biến phát hiện khí gas
print("Gas detected!")
gas = 1
# Phát ra âm thanh cảnh báo bằng buzzer
GPIO.output(buzzer_pin, GPIO.HIGH)
time.sleep(0.5) # Thời gian cảnh báo
GPIO.output(buzzer_pin, GPIO.LOW)
time.sleep(0.5) # Thời gian nghỉ
else:
print("No gas detected")
time.sleep(1) # Thời gian kiểm tra cảm biến
gas = 0
Lưu ý rằng, code python bạn cần TAB đúng. Ở Website này mình để code thẳng vậy vì hiện tại mình không tab vào trong được, hihi!
Bạn click vào link bên dưới để tải full code, không nên copy code từ web dễ bị lỗi nhé!
CLICK VÀO ĐÂY ĐỂ TẢI NÈ!Sau khi lập trình, ta tiến hành biên dịch và chạy chương trình. Có thể chạy trên terminal hoặc chạy trực tiếp bằng Thonny Python IDE. Chạy thành công chương trình sẽ có giao diện sau:
Kiểm tra cảm biến khí GAS. Tiến hành xì hơi Gas vào cảm biến. Đèn nhận được khí Gas của cảm biến sáng màu xanh. Đồng thời trên Terminal hiển thị có khí Gas. Đèn (Buzzer) nhấp nháy liên tục.
Bạn cũng quan sát xem trên Blynk, dữ liệu đã thay đổi chưa bằng cách xem ở dashboard!
Như vậy, đồ án về cảnh báo khí gas, đọc nhiệt độ độ ẩm DHT11 gửi lên Blynk bằng Rapsberry Pi đã hoàn thành! Nếu trong quá trình thực hiện có gặp vấn đề, thắc mắc gì hãy liên hệ mình qua Facebook, Email hoặc trực tiếp tại Web!
Và đừng quên, mình có hỗ trợ code đồ án thuê với các dự án liên quan tới vi xử lý (PIC, Arduino, Rapsberry Pi, ESP32/ESP8266). Hỗ trợ giao tiếp webserver, database. Hỗ trợ truyền dữ liệu không dây như Lora, RF.... Đặc biệt nhận thiết kế xe điều khiển, xe tự hành, xe tránh vật cản,... với giá hạt dẻ. Chi tiết liên hệ 0865700435 hoặc bất kỳ phương tiện nào nha!