- Thành phần bắt buộc
- Liên kết API để nhận dữ liệu trực tiếp Corona
- Sơ đồ mạch
- Lập trình ESP32 cho Covid19 Tracker
- Thử nghiệm Máy rửa tay tự động với Covid19 Tracker
Virus Corona (Covid19) đang tàn phá thế giới. Hầu hết mọi quốc gia đều đang bị virus Corona. WHO đã thông báo đây là một bệnh Đại dịch và nhiều thành phố đang trong tình trạng đóng cửa, người dân không thể bước ra khỏi nhà và hàng nghìn người đã mất mạng. Nhiều trang web đang cung cấp các bản cập nhật trực tiếp về các trường hợp coronavirus như Tracker của Microsoft, Covid19 Tracker của Esri, v.v.
Trong dự án này, chúng tôi sẽ chế tạo Máy rửa tay tự động với màn hình LCD hiển thị số lượng trực tiếp các trường hợp Coronavirus. Dự án này sẽ sử dụng ESP32, Cảm biến siêu âm, Mô-đun LCD 16x2, Máy bơm nước và Dụng cụ rửa tay. Chúng tôi đang sử dụng API Explorer của Esri để lấy dữ liệu trực tiếp của những người bị nhiễm Covid19. Cảm biến siêu âm được sử dụng để kiểm tra sự hiện diện của bàn tay bên dưới ổ cắm của máy khử trùng. Nó sẽ liên tục tính toán khoảng cách giữa đầu ra chất vệ sinh và chính nó và yêu cầu ESP bật máy bơm bất cứ khi nào khoảng cách nhỏ hơn 15cm để đẩy chất vệ sinh ra ngoài.
ESP32 được sử dụng làm bộ điều khiển chính, nó là một mô-đun Wi-Fi có thể dễ dàng kết nối với internet. Trước đây chúng tôi đã sử dụng nó để xây dựng nhiều dự án dựa trên IoT bằng cách sử dụng ESP32.
Thành phần bắt buộc
- Mô-đun nhà phát triển ESP32
- Thiết bị cảm biến sóng siêu âm
- Màn hình LCD 16 * 2
- Mô-đun chuyển tiếp
- Bơm chìm mini DC
- Nước rửa tay sát khuẩn
Liên kết API để nhận dữ liệu trực tiếp Corona
Ở đây chúng ta cần lấy dữ liệu từ internet rồi gửi đến ESP32 để hiển thị trên LCD 16x2. Do đó, một yêu cầu nhận HTTP được gọi để đọc tệp JSON từ internet. Ở đây chúng tôi đang sử dụng API do Trung tâm GIS Bệnh Coronavirus cung cấp. Bạn có thể dễ dàng biên dịch URL truy vấn chính xác để có được tổng số trường hợp Đã xác nhận và phục hồi cho Ấn Độ và cũng có thể thay đổi quốc gia / Khu vực nếu bạn muốn sử dụng URL này cho một quốc gia khác.
Bây giờ hãy nhấp vào “Thử ngay bây giờ” hoặc dán URL truy vấn vào một trình duyệt mới, kết quả của truy vấn đó sẽ giống như sau:
{"objectIdFieldName": "OBJECTID", "uniqueIdField": {"name": "OBJECTID", "isSystemMaintained": true}, "globalIdFieldName": "", "nticryType ":" esriGeometryPoint "," spatialReference ": {" wkid ": 4326," newWkid ": 4326}," fields ":," features ":}
Sau khi nhận được dữ liệu JSON, bây giờ hãy tạo mã để đọc dữ liệu JSON và diễn đạt theo nhu cầu của chúng ta. Để làm điều đó, hãy chuyển đến Trợ lý ArduinoJson và dán dữ liệu JSON vào phần Đầu vào.
Bây giờ, cuộn xuống chương trình phân tích cú pháp và sao chép phần mã hữu ích cho bạn. Tôi đã sao chép các biến dưới đây vì tôi chỉ cần các trường hợp đã được xác nhận và phục hồi ở Ấn Độ.
Sơ đồ mạch
Sơ đồ mạch hoàn chỉnh cho máy phân phối nước rửa tay tự động & Covid19 Tracker này được đưa ra dưới đây
Máy bơm nước được kết nối với ESP32 thông qua một mô-đun rơ le. Chân Vcc và GND của rơ le được nối với chân Vin và GND của ESP32 trong khi chân đầu vào của rơ le được nối với chân D19 của ESP32. Chân Trig và Echo của cảm biến siêu âm được kết nối với Chân D5 và D18 của Arduino.
Các kết nối hoàn chỉnh được đưa ra trong bảng dưới đây.
LCD | ESP32 |
VSS | GND |
VDD | 5V |
VO | Chiết áp |
RS | D22 |
RW | GND |
E | D4 |
D4 | D15 |
D5 | D13 |
D6 | D26 |
D7 | D21 |
A | 5V |
K | GND |
Thiết bị cảm biến sóng siêu âm | ESP32 |
Vcc | Vin |
GND | GND |
Trig | D5 |
ECHO | D18 |
Phần cứng của Máy rửa tay cảm biến chuyển động này sẽ trông như thế này
Lập trình ESP32 cho Covid19 Tracker
Bạn có thể tìm thấy mã hoàn chỉnh cho Nước rửa tay tự động và Bộ theo dõi CORONA19 ở cuối trang. Ở đây các phần quan trọng của chương trình được giải thích.
Bắt đầu mã bằng cách bao gồm tất cả các tệp thư viện được yêu cầu. Thư viện HTTPClient được sử dụng để lấy dữ liệu từ máy chủ HTTP. Thư viện ArduinoJson được sử dụng để cụm từ các mảng dữ liệu. Ở đây thư viện ArduinoJson được sử dụng để lọc các trường hợp Đã xác nhận và Đã khôi phục từ mảng dữ liệu mà chúng ta đang nhận được từ máy chủ. Thư viện LiquidCrystal được sử dụng cho Mô-đun màn hình LCD.
#include
Để lấy dữ liệu từ máy chủ, NodeMCU ESP32 phải kết nối với internet. Để làm được điều đó, hãy nhập SSID và Mật khẩu Wi-Fi của bạn vào các dòng bên dưới.
const char * ssid = "Galaxy-M20"; const char * pass = "ac312124";
Sau đó, xác định các chân mà bạn đã kết nối mô-đun LCD, cảm biến siêu âm và mô-đun Rơle.
const int rs = 22, en = 4, d4 = 15, d5 = 13, d6 = 26, d7 = 21; LiquidCrystal lcd (rs, en, d4, d5, d6, d7); const int trigPin = 5; const int echoPin = 18; const int bơm = 19;
Bây giờ chúng ta nhập liên kết API được tạo trước đó. Sử dụng liên kết này, chúng tôi sẽ nhận được tổng số các trường hợp được xác nhận và các trường hợp đã được phục hồi ở Ấn Độ. Bạn có thể thay đổi tên quốc gia trong URL theo ý mình.
constchar * url = "https://services1.arcgis.com/0MSEUqKaxRlEPj5g/arcgis/rest/services/ncov_case/FeatureServer/1/query?f=json&where=(Country_Region=%27India%27)&returnGeometry=false&on_Region=Count "Đã phục hồi";
Bây giờ bên trong void setup () , xác định chân Trig và Echo của cảm biến siêu âm làm chân đầu vào và chân Rơ le làm đầu ra.
pinMode (trigPin, OUTPUT); pinMode (echoPin, INPUT); pinMode (bơm, OUTPUT);
Để tìm hiểu thêm về cách hoạt động của cảm biến siêu âm, hãy kiểm tra giao diện của nó với Arduino, nơi chúng tôi đã giải thích chức năng của chân TRIG và ECHO cùng với cách nó được sử dụng để tính khoảng cách giữa bất kỳ đối tượng nào. Ngoài ra, hãy kiểm tra các dự án dựa trên siêu âm khác.
Sau đó, kiểm tra xem ESP có được kết nối với Wi-Fi hay không, nếu không, nó sẽ đợi ESP kết nối bằng cách in “…..” trên màn hình nối tiếp.
WiFi.begin (ssid, pass); while (WiFi.status ()! = WL_CONNECTED) {delay (500); Serial.print ("."); // in… cho đến khi không kết nối} Serial.println ("Đã kết nối WiFi");
Bên trong hàm void ultra (), chúng tôi sẽ liên tục tính toán khoảng cách bằng cảm biến siêu âm và nếu khoảng cách nhỏ hơn hoặc bằng 15 cm thì nó sẽ bật máy bơm trong 2 giây để đẩy chất vệ sinh ra bên ngoài qua đường ống. Rõ ràng khi ai đó đặt tay xuống dưới đường ống thoát nước, khoảng cách sẽ giảm và nó sẽ kích hoạt máy bơm bật.
void ultra () {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,0340 / 2; Serial.println ("Khoảng cách"); Serial.println (khoảng cách); if (khoảng cách <= 15) {Serial.print ("Mở Bơm"); digitalWrite (máy bơm, CAO); chậm trễ (2000); digitalWrite (máy bơm, THẤP); ESP.restart (); }}
Bây giờ bên trong hàm void loop () , hãy kiểm tra xem tệp JSON được ESP32 nhận hay không bằng cách đọc nó và in dữ liệu JSON trên màn hình nối tiếp bằng cách sử dụng các dòng sau
int httpCode = https.GET (); if (httpCode> 0) {// Kiểm tra mã trả về String payload = https.getString ();
Sau đó, sử dụng chương trình phrasing được tạo từ ArduinoJson Assistant. Chương trình phrasing này sẽ cung cấp cho chúng tôi tổng số trường hợp được xác nhận và phục hồi ở Ấn Độ.
Các trường JsonArray = doc; JsonObject features_0_attributes = doc; long features_0_attributes_Last_Update = features_0_attributes; int features_0_attributes_Confhentic = features_0_attributes; // int features_0_attributes_Deaths = features_0_attributes; int features_0_attributes_Recovered = features_0_attributes;
Thử nghiệm Máy rửa tay tự động với Covid19 Tracker
Vì vậy, cuối cùng máy phân phối nước rửa tay hoạt động bằng pin của chúng tôi đã sẵn sàng để thử nghiệm. Chỉ cần kết nối phần cứng theo sơ đồ mạch và tải chương trình lên ESP32, khi bắt đầu, bạn sẽ thấy thông báo “Covid19 Tracker” & “Hand Sanitizer” trên màn hình LCD và sau đó vài giây, nó sẽ hiển thị các trường hợp đã xác nhận và các trường hợp đã khôi phục trong Màn hình LCD như hình bên dưới.
Tương tự như vậy, bạn có thể lấy dữ liệu này cho bất kỳ quốc gia nào bằng cách thực hiện một số thay đổi trong liên kết API. Một đoạn video làm việc đầy đủ và mã được đưa vào cuối trang.