Hình 3.8. Hiển thị lên web kết quả nồng độ cồn lần thứ nhất
b. Tiến hành đo nồng độ cồn lần thứ hai
Hình 3.10. Kết quả đo nồng độ cồn lần thứ hai trên sản phẩm
c. Tiến hành đo nồng độ cồn lần thứ ba
Hình 3.12. Kết quả đo nồng độ cồn lần thứ ba trên sản phẩm
Hình 3.14. Hiển thị lên web kết quả số người say lần thứ ba
d. Tiến hành đo nồng độ cồn lần thứ tư
Hình 3.16. Hiển thị lên web kết quả nồng độ cồn lần thứ tư
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
Báo cáo Thiết kế hệ thống giám sát nồng độ cồn từ xa về cơ bản đã giải quyết được vấn đề đo và cảnh báo nồng độ cồn qua hơi thở, nồng độ cồn nhanh chóng được xác định là ở ngưỡng nào có vượt quá mức cho phép.
Hệ thống có thể phát triển thêm nhiều tính năng như:
Ta cịn có thể phát triển khi hiển thị trên Thingspeak, ngoài hiển thị được số người say trong ngày thì có thể hiện thị thêm ảnh biển số phương tiện của người lái có nồng độ cồn vượt quá mức quy định tại các trạm thu phí. Thậm chí có thể thực hiện việc đóng tiền phạt ngay tại các trạm thu phí và lưu thơng tin lại trên web tại mỗi trạm thu phí. Mục tiêu là tạo ra những sản phẩm có khả năng ứng dụng vào c ̣c sống, chất lượng nhưng giá thành rẻ, giúp cho cảnh sát giao thơng có thể theo dõi và hạn chế được việc phải trực tiếp đo nồng độ cồn của những người tham gia giao thông.
TÀI LIỆU THAM KHẢO [1]. https://dammedientu.vn/nodemcu-ket-noi-voi-lcd-su-dung-giao-tiep-i2c/ [2]. http://ai2.appinventor.mit.edu [3]. http://www.dientuvietnam.net [4]. http://www.banlinhkien.vn [5]. http://arduino.vn/
[6]. Nguyễn Ngọc Cương, Nguyễn Đình Nghĩa, Đỗ Quốc Huy, Trần Nghi Phú và Phạm Thành Công, 2011. Giáo trình Ngơn ngữ lâ ̣p trình C/C++. Nhà xuất bản Thơng Tin Và Truyền Thông. Hà Nô ̣i. 191 trang.
[7]. Curtis, Thomas Stanley (1916). High Frequency Apparatus: Its Construction and Practical Application.
PHỤ LỤC
#include <LiquidCrystal_I2C.h> #include <ESP8266WiFi.h>
LiquidCrystal_I2C lcd(0x27,16,2); int mq3 = A0; //A0
int button = 2;//D4 int sound = 14; //D5
String apiKey = "27BUKID9RLWLE7YH"; const char* ssid = "D@vid";
const char* password = "DTC155D5103020005@@"; const char* server = "api.thingspeak.com";
WiFiClient client; void setup() {
lcd.begin(); lcd.backlight();
lcd.print("KIEM TRA COL"); delay(5000); lcd.clear(); pinMode(button, INPUT); pinMode(mq3, INPUT); pinMode(sound, INPUT); pinMode(12, OUTPUT);//D6 WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) { delay(500);
}}
void loop() {
int trangthai_sound = digitalRead(sound); int trangthai_mq3 = analogRead(mq3); int trangthai_button = digitalRead(button); if (client.connect(server, 80)) {
if ((trangthai_button == HIGH ) && (trangthai_mq3 > 500 ) && (trangthai_sound == 0))
{
digitalWrite(12, HIGH); lcd.clear();
lcd.setCursor(0,0);
lcd.print("BAN SAY ROI!"); String postStr = apiKey; postStr += "&field1="; postStr += String(trangthai_mq3); postStr += "\r\n\r\n"; client.print("POST /update HTTP/1.1\n"); client.print("Host: api.thingspeak.com\n"); client.print("Connection: close\n"); client.print("X-THINGSPEAKAPIKEY: " + apiKey + "\n"); client.print("Content-Type: application/27BUKID9RLWLE7YH\n"); client.print("Content-Length: "); client.print(postStr.length()); client.print("\n\n"); client.print(postStr);
delay(5000); lcd.clear(); lcd.setCursor(0,1); lcd.print("BAM VA THOI"); digitalWrite(12, LOW); }
if ((trangthai_button == HIGH ) && (trangthai_mq3 < 500 ) && (trangthai_sound == 0))
{
digitalWrite(12, LOW); lcd.clear();
lcd.setCursor(0,0);
lcd.print("BAN TINH TAO!"); delay(5000); lcd.clear(); lcd.setCursor(0,1); lcd.print("BAM VA THOI"); digitalWrite(12, LOW); } else { digitalWrite(12, LOW); lcd.clear(); lcd.setCursor(0,1); lcd.print("BAM VA THOI"); delay( 200); } }}