Mục lục:

Cảm biến nhiệt độ và độ ẩm Arduino: 7 bước
Cảm biến nhiệt độ và độ ẩm Arduino: 7 bước

Video: Cảm biến nhiệt độ và độ ẩm Arduino: 7 bước

Video: Cảm biến nhiệt độ và độ ẩm Arduino: 7 bước
Video: [Arduino basic #18] Cảm biến độ ẩm, nhiệt độ DHT11 2024, Tháng bảy
Anonim

Theo Thundertronics

Bộ chuyển đổi tương tự sang kỹ thuật số PIC16F877A (ADC)
Bộ chuyển đổi tương tự sang kỹ thuật số PIC16F877A (ADC)
Bộ chuyển đổi tương tự sang kỹ thuật số PIC16F877A (ADC)
Bộ chuyển đổi tương tự sang kỹ thuật số PIC16F877A (ADC)
Giao diện LCD với vi điều khiển PIC16F877A
Giao diện LCD với vi điều khiển PIC16F877A
Giao diện LCD với vi điều khiển PIC16F877A
Giao diện LCD với vi điều khiển PIC16F877A
Nguồn cung cấp điện cho băng ghế dự bị mô-đun DIY
Nguồn cung cấp điện cho băng ghế dự bị mô-đun DIY
Nguồn cung cấp điện cho băng ghế dự bị mô-đun DIY
Nguồn cung cấp điện cho băng ghế dự bị mô-đun DIY

Trong hướng dẫn này, tôi sẽ giải thích việc chế tạo cảm biến nhiệt độ và độ ẩm bằng cách sử dụng bo mạch mini Arduino pro với cảm biến DHT11 (hoặc DHT22).

Bước 1: Xem Video

Điều quan trọng là phải xem video trước trước khi chuyển sang bước tiếp theo. Video giải thích mọi thứ và minh họa cách nó được thực hiện. Tuy nhiên, trong bài đăng này, tôi sẽ viết nhiều dữ liệu kỹ thuật và chi tiết hơn.

www.youtube.com/watch?v=56LKl7Xd770

Bước 2: Các bộ phận cần thiết

Các phần cần thiết cho dự án này là:

1- Bảng Arduino pro mini (hoặc bất kỳ Arduino nào).

2- Cảm biến nhiệt độ và độ ẩm DHT11 (hoặc DHT22).

3- Màn hình LCD 16x2.

4- Một bao vây mà bạn chọn, tốt nhất là giống như bao vây được sử dụng trong video.

Chiết áp 5- 10K.

6- Các thiết bị đầu cuối trục vít.

7- Các điện trở có giá trị khác nhau.

8- Pin 9v.

trong khi các công cụ cần thiết là:

1- máy khoan cầm tay như Dremil.

2- các mũi khoan khác nhau, vì chúng ta sẽ sử dụng các mũi làm nhẵn và các mũi cắt.

3- bàn tay giúp đỡ.

cộng với các công cụ điện tử thông thường như đồng hồ vạn năng, v.v.

Bước 3: Thiết kế sơ đồ

Thiết kế sơ đồ
Thiết kế sơ đồ

Trong dự án này, tôi đã chọn làm một PCB cho nó thay vì tự đấu dây cho nó. Vì vậy, tôi đã sử dụng công cụ trực tuyến EasyEDA cho công việc đó là một trải nghiệm tuyệt vời.

Đây là trang của dự án tại trang web easyEDA:

Giải thích của schematic như sau:

1- Tôi đã sử dụng bộ chuyển đổi ICSP 6 chân để lập trình Arduino pro mini vì nó không đi kèm với bộ điều hợp trên bo mạch. nó là J2 ở sơ đồ.

2- R2 là 100 Ohms và nó đặt độ sáng của màn hình LCD. Về cơ bản, bạn có thể đặt nhiều điện trở hơn 100R nếu bạn muốn đèn nền LCD mờ hơn. Hoặc tốt hơn, hãy lấy một chiết áp để hoạt động như một điện trở nối tiếp biến đổi.

3- JP1 chỉ là một đầu nối có PCB đẹp. Tôi không bao giờ đặt một thiết bị đầu cuối thực tế mà thay vào đó hàn các dây. Làm như bạn muốn.

4- U2 là các cực kết nối của pin. Ở đây, tôi thích một thiết bị đầu cuối vít đẹp để có được kết nối chắc chắn. Bạn có thể hàn dây, nhưng hãy đảm bảo đặt đủ chất hàn để làm cho kết nối đủ chắc chắn để chịu được bất kỳ rung lắc nào.

5- LCD1 là thành phần LCD trong easyEDA. Nó có kết nối cơ bản với Arduino pro mini. Đảm bảo rằng các chân ở đây giống với các chân trong phần mềm.

6- RV1 là một chiết áp 10K để đặt độ tương phản của màn hình LCD. Nó chỉ nên được sử dụng một lần và đó là khi bạn cấp nguồn cho màn hình LCD lần đầu tiên.

Bước 4: Thiết kế PCB

Thiết kế PCB
Thiết kế PCB
Thiết kế PCB
Thiết kế PCB

Sau khi hoàn thành thiết kế sơ đồ và hiểu mọi thứ có nghĩa là gì, bây giờ là lúc để tạo ra một PCB cho nó.

Bạn nên nhấn "Chuyển đổi sang PCB" trong EasyEDA để tạo PCB trong trình chỉnh sửa PCB. Sau đó, bắt đầu đặt các bộ phận và thực hiện định tuyến như bình thường. Tôi đề nghị không bao giờ sử dụng bộ định tuyến tự động.

Tôi đã sử dụng rất nhiều vias để di chuyển từ lớp trên xuống lớp dưới cùng vì không gian rất ít.

Bước 5: Chế tạo PCB

Bây giờ, thiết kế PCB đã hoàn thành. Chúng tôi đã kiểm tra mọi thứ và không tìm thấy vấn đề gì. Chúng tôi cần gửi các tập tin thiết kế (phần mềm) cho công ty chế tạo PCB mà chúng tôi lựa chọn để họ có thể làm việc đó cho chúng tôi.

Công ty tôi chọn là JLCPCB. Họ là tốt nhất cho các dự án và tạo mẫu như vậy và họ chỉ cung cấp mức giá 2 đô la cho toàn bộ 10 mẫu thiết kế của bạn!

Vì vậy, bây giờ chúng ta nhấp vào (….) Và chọn JLCPCB. Chúng tôi được chuyển hướng đến trang web của JLCPCB vì họ là đối tác với EasyEDA. Bây giờ điền vào tất cả mọi thứ và đặt hàng. Bây giờ chỉ cần đợi cho đến khi PCB đến.

Điều đáng nói là JLCPCB không chỉ có EasyEDA liên kết với họ, mà họ còn có một cửa hàng linh kiện lớn! Lợi ích ở đây là nhận được cả đơn đặt hàng PCB và đơn đặt hàng linh kiện được vận chuyển cùng nhau! Có, không cần đợi 2 gói hàng đến riêng lẻ mà thay vào đó chúng được kết hợp thành một gói. Tôi thực sự khuyên bạn nên sử dụng cái này.

Bước 6: Lắp ráp

Bây giờ chúng ta có PCB một mình với mọi thứ. Đó là thời gian để lắp ráp mọi thứ lại với nhau.

Đầu tiên, chúng ta cần hàn các thiết bị điện tử theo sơ đồ. Đó là một nhiệm vụ dễ dàng cho dự án này.

Sau khi hàn xong, bây giờ hãy cắt các lỗ cần thiết trên vỏ nhựa sau đó cố định PCB với các thành phần khác bên trong bằng súng bắn keo nóng.

Bây giờ bạn nên sử dụng chiết áp để điều chỉnh độ tương phản của màn hình LCD, trong khi chọn van điện trở cần thiết cho độ sáng, tôi đã chọn 100R.

Bước 7: Mã

Mã cho dự án này được đính kèm với bước này và giải thích như sau:

// bao gồm mã thư viện: #include #include "DHT.h" // đặt DHT Pin #define DHTPIN 2

Bao gồm các thư viện cần thiết và xác định chân 2 của Arduino pro mini làm chân dữ liệu cho cảm biến. Đảm bảo cài đặt các thư viện này nếu bạn chưa có.

// khởi tạo thư viện với số lượng các chân giao diện LiquidCrystal lcd (9, 8, 7, 6, 5, 4); #define DHTTYPE DHT11 DHT dht (DHTPIN, DHTTYPE);

Bây giờ khởi tạo thư viện LCD với các chân này theo sơ đồ của chính nó. Cũng sử dụng thư viện DHT và chọn DHT11 làm cảm biến để sử dụng, vì vậy nếu bạn có DHT22 thì bạn nên thay đổi nó.

Dòng cuối cho biết chúng ta có cảm biến DHT11 và chân dữ liệu của nó ở chân "DHTPIN", là chân 2 như chúng tôi đã xác định trước đó.

void setup () {// thiết lập số cột và số hàng của màn hình LCD: lcd.begin (16, 2); dht.begin (); lcd.setCursor (0, 0); lcd.print ("Nhiệt độ và"); lcd.setCursor (0, 1); lcd.print ("cảm biến độ ẩm"); chậm trễ (3000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("THUNDERTRONICS"); lcd.setCursor (0, 1); lcd.print ("Hossam Moghrabi"); chậm trễ (3000); }

Bây giờ là thời gian thiết lập! và đây là những gì đang diễn ra:

LCD là 16 x 2 loại.

Khởi động lệnh DHT để nhận các giá trị.

In "Cảm biến nhiệt độ và độ ẩm" trên 2 dòng.

Trì hoãn 3 giây.

Hiển thị rõ ràng

In "THUNDERTRONICS" ở dòng đầu tiên rồi in "Hossam Moghrabi" ở dòng thứ 2.

Trì hoãn 3 giây.

^ Tôi đã thực hiện điều này dưới dạng màn hình chào mừng kéo dài khoảng 6 giây hoặc lâu hơn trước khi các giá trị được hiển thị.

void loop () {// đọc độ ẩm int h = dht.readHumidity (); // đọc nhiệt độ trong c int t = dht.readTempeosystem (); if (isnan (h) || isnan (t)) {lcd.print ("LỖI"); trở lại; }

Bây giờ chúng ta đang ở bên trong vòng lặp vĩnh cửu của chúng ta, vòng lặp này sẽ tiếp tục lặp lại chính nó.

Lưu trữ giá trị độ ẩm bên trong biến "h" và đọc nhiệt độ bên trong biến "t".

Tiếp theo, chúng ta có một câu lệnh if. Về cơ bản, điều này sẽ trả về một thông báo lỗi khi có lỗi. Để lại nó mà không cần thay đổi nó.

Bây giờ chúng tôi có tất cả các giá trị mà chúng tôi cần.

lcd.setCursor (0, 0); lcd.print ("Nhiệt độ ="); lcd.print (t); lcd.print (""); lcd.print ((char) 223); lcd.print ("C"); lcd.setCursor (0, 1); lcd.print ("Độ ẩm ="); lcd.print (h); lcd.print ("%"); // lcd.print ("Hossam Moghrabi"); chậm trễ (2000);

Cuối cùng, chúng tôi hiển thị các giá trị này trên màn hình LCD. Bạn có thể thay đổi nó theo cách bạn muốn vì nó chỉ đơn giản là in các giá trị bên trong các biến "h" và "t". Đặt độ trễ 2 giây là tùy chọn nhưng bạn sẽ không được lợi gì nhiều khi làm điều đó nhanh hơn vì bản thân cảm biến không nhanh như vậy và ngay cả khi có, các giá trị vật lý vẫn không bao giờ thay đổi nhanh như vậy. Vì vậy, 2 giây là rất nhanh cho công việc!

Đó là nó!

Đề xuất: