- Các thành phần bắt buộc:
- Cảm biến siêu âm HC-SR04:
- Mô-đun Wi-Fi ESP8266:
- Sơ đồ mạch và giải thích:
- Giải thích mã:
- "; if (distance <5) {webpage + =" Thùng rác đầy ";} else {webpage + =" Thùng rác trống ";} webpage + ="
- Kiểm tra và Đầu ra của Dự án:
Trong phần DIY này, chúng tôi sẽ tạo một Hệ thống giám sát thùng rác / thùng rác dựa trên IOT, hệ thống này sẽ cho chúng tôi biết rằng thùng rác trống hay đầy thông qua máy chủ web và bạn có thể biết trạng thái của 'Thùng rác' hoặc 'Thùng rác' mọi nơi trên thế giới qua Internet. Nó sẽ rất hữu ích và có thể được lắp đặt trong các Thùng rác ở những nơi công cộng cũng như ở nhà.
Trong Dự án IOT này, một Cảm biến siêu âm được sử dụng để phát hiện xem thùng rác có đầy rác hay không. Ở đây Cảm biến siêu âm được lắp đặt ở đầu Thùng rác và sẽ đo khoảng cách của rác từ đỉnh của Thùng rác và chúng ta có thể đặt giá trị ngưỡng tùy theo kích thước của thùng rác. Nếu khoảng cách nhỏ hơn giá trị ngưỡng này, nghĩa là Thùng rác đã đầy rác và chúng tôi sẽ in thông báo “Giỏ đã đầy” trên trang web và nếu khoảng cách lớn hơn giá trị ngưỡng này, thì chúng tôi sẽ in thông báo "Giỏ rỗng". Ở đây chúng tôi đã đặt giá trị Ngưỡng là 5cm trong mã Chương trình. Chúng tôi sẽ sử dụng mô-đun Wi-Fi ESP8266để kết nối Arduino với máy chủ web. Ở đây chúng tôi đã sử dụng máy chủ web cục bộ để chứng minh hoạt động của Hệ thống giám sát rác này.
Các thành phần bắt buộc:
- Arduino Uno (bạn có thể sử dụng bất kỳ cái nào khác)
- Mô-đun Wi-Fi ESP8266
- Cảm biến siêu âm HC-SR04
- Điện trở 1K
- Breadboard
- Kết nối dây
Cảm biến siêu âm HC-SR04:
Cảm biến siêu âm được sử dụng để đo khoảng cách với độ chính xác cao và số đọc ổn định. Nó có thể đo khoảng cách từ 2cm đến 400cm hoặc từ 1 inch đến 13 feet. Nó phát ra một sóng siêu âm ở tần số 40KHz trong không khí và nếu vật thể cản đường nó thì nó sẽ phản xạ trở lại cảm biến. Bằng cách sử dụng thời gian cần thiết để tấn công đối tượng và quay lại, bạn có thể tính được khoảng cách.
Cảm biến siêu âm có bốn chân. Hai là VCC và GND sẽ được kết nối với 5V và GND của Arduino trong khi hai chân còn lại là chân Trig và Echo sẽ được kết nối với bất kỳ chân kỹ thuật số nào của Arduino. Chân trig sẽ gửi tín hiệu và chân Echo sẽ được sử dụng để nhận tín hiệu. Để tạo ra tín hiệu siêu âm, bạn sẽ phải làm cho chân Trig cao khoảng 10us. Điều này sẽ gửi một chùm âm thanh 8 chu kỳ với tốc độ âm thanh và sau khi chạm vào vật thể, nó sẽ được nhận bởi chân Echo.
Kiểm tra thêm các dự án dưới đây để hiểu đúng cách hoạt động của cảm biến siêu âm và đo khoảng cách của bất kỳ đối tượng nào sử dụng nó:
- Đo khoảng cách dựa trên Arduino bằng cảm biến siêu âm
- Đo khoảng cách sử dụng HC-SR04 và Vi điều khiển AVR
Mô-đun Wi-Fi ESP8266:
ESP8266 là một mô-đun Wi-Fi sẽ cung cấp cho các dự án của bạn quyền truy cập Wi-Fi hoặc internet. Nó là một thiết bị rất rẻ nhưng nó sẽ làm cho các dự án của bạn trở nên rất mạnh mẽ. Nó có thể giao tiếp với bất kỳ bộ vi điều khiển nào và làm cho các dự án không dây. Nó nằm trong danh sách hầu hết các thiết bị hàng đầu trong nền tảng IOT. Nó chạy trên 3.3V và nếu bạn cung cấp cho nó 5V thì nó sẽ bị hỏng.
ESP8266 có 8 chân; VCC và CH-PD sẽ được kết nối với 3.3V để kích hoạt wifi. Các chân TX và RX sẽ chịu trách nhiệm giao tiếp của ESP8266 với Arduino. Chân RX hoạt động trên 3.3V vì vậy bạn sẽ phải tạo một bộ chia điện áp cho nó như chúng tôi đã thực hiện trong dự án của mình.
Sơ đồ mạch và giải thích:
Trước hết, chúng tôi sẽ kết nối ESP8266 với Arduino. ESP8266 chạy trên 3.3V và nếu bạn cấp nguồn 5V từ Arduino thì nó sẽ không hoạt động bình thường và có thể bị hỏng. Kết nối VCC và CH_PD với chân 3,3V của Arduino. Chân RX của ESP8266 hoạt động trên 3.3V và nó sẽ không giao tiếp với Arduino khi chúng ta kết nối trực tiếp với Arduino. Vì vậy, chúng ta sẽ phải làm một bộ chia điện áp cho nó. Ba điện trở 1k được kết nối trong chuỗi sẽ làm công việc cho chúng tôi. Kết nối RX với chân 11 của Arduino thông qua các điện trở như trong hình bên dưới và cũng là TX của Arduino với chân 10 của Arduino.
Bây giờ là lúc kết nối cảm biến siêu âm HC-SR04 với Arduino. Kết nối của cảm biến siêu âm với Arduino rất đơn giản. Kết nối VCC và mặt đất của cảm biến siêu âm với nguồn 5V và mặt đất của Arduino. Sau đó kết nối chân TRIG và ECHO của cảm biến siêu âm với chân 8 và 9 của Arduino tương ứng.
Giải thích mã:
Trước khi tải mã lên, hãy đảm bảo rằng bạn đã kết nối với Wi-Fi của thiết bị ESP8266 của mình. Bạn có thể kiểm tra mã đầy đủ trong phần Mã bên dưới, mã đã được giải thích rõ bởi các bình luận, hơn nữa chúng tôi cũng giải thích một số chức năng quan trọng bên dưới.
Đầu tiên Arduino sẽ đọc Cảm biến siêu âm. Nó sẽ gửi một tín hiệu siêu âm với tốc độ âm thanh khi chúng ta làm cho chân TRIG cao 10us. Tín hiệu sẽ trở lại sau khi chạm vào đối tượng và chúng tôi sẽ lưu trữ khoảng thời gian di chuyển trong khoảng thời gian có tên biến. Sau đó, chúng tôi sẽ tính toán khoảng cách của đối tượng (trong trường hợp của chúng tôi là rác) bằng cách áp dụng một công thức và sẽ lưu trữ nó trong biến có tên khoảng cách .
digitalWrite (trigPin, LOW); delayMicroseconds (2); digitalWrite (trigPin, HIGH); delayMicroseconds (10); digitalWrite (trigPin, LOW); thời lượng = xungIn (echoPin, CAO); khoảng cách = thời lượng * 0,034 / 2;
Để in đầu ra trên trang web trong trình duyệt web, chúng ta sẽ phải sử dụng lập trình HTML. Vì vậy, chúng tôi đã tạo một trang web có tên chuỗi và lưu trữ kết quả đầu ra trong đó. Để biết thùng rác có trống hay không, chúng tôi đã áp dụng một điều kiện ở đó. Nếu khoảng cách nhỏ hơn 5cm thì nó sẽ hiển thị “Giỏ đã đầy” trên trang web và nếu khoảng cách lớn hơn 5cm thì nó sẽ hiển thị thông báo “Giỏ trống” trên trang web.
if (esp8266.available ()) {if (esp8266.find ("+ IPD,")) {delay (1000); int connectId = esp8266.read () - 48; Chuỗi trang web = "
Hệ thống giám sát rác IOT
"; trang web + =""; if (distance <5) {webpage + =" Thùng rác đầy ";} else {webpage + =" Thùng rác trống ";} webpage + ="
";Đoạn mã sau sẽ gửi và hiển thị dữ liệu trên trang web. Dữ liệu, chúng tôi lưu trữ trong chuỗi có tên 'trang web', sẽ được lưu trong chuỗi có tên 'lệnh' . Sau đó, ESP8266 sẽ đọc từng ký tự một từ 'lệnh' và sẽ in nó trên trang web.
String sendData (String command, const int timeout, boolean debug) {String response = ""; esp8266.print (lệnh); long int time = millis (); while ((time + timeout)> millis ()) {while (esp8266.available ()) {char c = esp8266.read (); phản ứng + = c; }} if (gỡ lỗi) {Serial.print (phản hồi); } trả về phản hồi; }
Kiểm tra và Đầu ra của Dự án:
Sau khi tải mã lên, hãy mở Serial Monitor và nó sẽ hiển thị cho bạn một địa chỉ IP như hình dưới đây.
Gõ địa chỉ IP này vào trình duyệt của bạn, nó sẽ hiển thị cho bạn kết quả như hình bên dưới. Bạn sẽ phải làm mới trang một lần nữa nếu bạn muốn xem lại thùng rác có trống hay không.
Vì vậy, đây là cách Hệ thống Giám sát Rác này hoạt động, dự án này có thể được nâng cao hơn nữa bằng cách thêm một số tính năng khác trong đó như chúng tôi có thể đặt thêm một thông báo khi Thùng rác đầy một nửa hoặc chúng tôi có thể kích hoạt Email / SMS để cảnh báo người dùng khi Thùng rác Rổ đã đầy.