1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Mô-Hình-Điều-Khiển tự động arduino.docx

24 2 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nội dung

Mô Hình Điều Khiển tự động bằng arduino hệ thống điện thân xe Toyota

Mơ hình điều khiển tự động I Tổng quan dự án: Điều khiển chế độ: - Chế độ Man: Điều khiển trực tiếp công tắc - Chế độ Remote: Điều khiển từ xa thông qua wifi,bluetooth sử dụng điện thoại giọng nói - Chế độ Auto: Điều khiển tự động thông qua cảm biến Chế độ Man: Chế độ Remote: Hình: Giao diện điều khiển điện thoại 3 Chế độ Auto - Điều khiển thông qua cảm biến ánh sáng, mưa, nhiệt độ, độ ẩm Hình: Giao diện đọc giá trị thể điện thoại Ở chế độ thiết lập: II Khi ánh sáng môi trường bé 20% giá trị cảm biến đọc xuất tín hiệu logic đến Relay bật đèn sáng, ngược lại Khi ánh sáng môi trường lớn 20% giá trị cảm biến đọc xuất tín hiệu logic đến Relay bật gạt mưa, ngược lại Giao diện lập trình cho vi điều khiển: Hình: Giao diện sử dụng app Blynk 2.0 Blynk tảng với ứng dụng iOS Android để điều khiển Arduino, Raspberry Pi ứng dụng tương tự qua Internet Nó bảng điều khiển kỹ thuật số nhờ bạn xây dựng giao diện đồ họa cho dự án cách kéo thả widget Việc thiết lập thứ đơn giản bạn bắt đầu sau chưa đầy phút Blynk không bị ràng buộc với số bo shield cụ thể Thay vào đó, hỗ trợ phần cứng mà bạn lựa chọn Cho dù Arduino Raspberry Pi bạn liên kết với Internet qua Wi-Fi, Ethernet chip ESP8266, Blynk giúp bạn online sẵn sàng cho IoT Vi điều khiển sử dụng Esp32: Hình Chip ESP32 Tính Cốt lõi mơ-đun NodeMCU-32S ESP32 chip ESP32, có khả mở rộng thích ứng Hai lõi CPU điều khiển riêng, tần số xung nhịp điều chỉnh từ 80 MHz đến 240 MHz hỗ trợ RTOS Đây mô-đun Wi-Fi + BT + BLE MCU có mục đích chung ESP-WROOM-32s Mơ-đun tích hợp Bluetooth truyền thống, Bluetooth lượng thấp Wi-Fi Phạm vi sử dụng rộng rãi: Wi-Fi hỗ trợ nhiều loại kết nối giao tiếp, kết nối trực tiếp với Internet thông qua định tuyến Bluetooth cho phép người dùng kết nối với điện thoại di động phát BLE Beacon để phát tín hiệu Mơ-đun hỗ trợ tốc độ liệu lên đến 150 Mbps công suất đầu ăng ten 20dBm cho giao tiếp không dây tối đa Do đó, mơ-đun có thơng số kỹ thuật hàng đầu ngành hoạt động tốt khả tích hợp cao, khoảng cách truyền khơng dây, tiêu thụ điện kết nối mạng Thông số kỹ thuật: Module model: ESP-WROOM-32S Kích thước: 25.4 x 48.2 x 3mm Thạch anh: 40Mhz Số lượng cổng IO: 38 Ăng ten: bo mạch Nguồn chip 3~ 3.6V, 3.3V, dòng điện >500mA SPI Flash: 32Mbit (mặc định) 802.11b/g/n (802.11n, tốc độ lên đến 150Mbps) Dải tần số WIFI 2.4GHz ~ 2.5GHz Phạm vi điều chỉnh tần số clock từ 80 MHz đến 240 MHz, hỗ trợ RTOS Tích hợp ADC kênh 12-bit độ xác cao với tối đa 18 kênh Hỗ trợ giao tiếp UART / GPIO / ADC / DAC / SDIO / SD card / PWM / I2C             / I2S      Hỗ trợ nhiều chế độ ngủ, dòng điện ngủ chip ESP32 nhỏ μAA Hỗ trợ chế độ hoạt động STA / AP / STA + AP Hỗ trợ nâng cấp chương trình sở từ xa (FOTA) Các lệnh AT chung sử dụng nhanh chóng Hỗ trợ phát triển thứ cấp, phát triển Windows, Linux tích hợp Cảm biến: Hình: Cảm biến ánh sáng LDR THÔNG SỐ KỸ THUẬT - Điện áp làm việc: 3V – 5V - Kích thước module: 32mm x 11mm x 20mm - 3(hoặc 4) chân : VCC- D0(I/O)- GND - IC so sánh áp (comparator) LM393 NGUYÊN LÝ HOẠT ĐỘNG - Theo sơ đồ mạch nguyên lý dưới: Khi module cảm biến rung kích hoạt, có thay đổi điện áp đầu vào Ic LM393 Ic nhận biết có thay đổi đưa tín hiệu thấp để báo hiệu có rung động Chi tiết bạn tham khảo datasheet Ic LM393 Hình: Cảm biến mưa Điện áp hoạt động: 5V Có LED báo trạng thái Hoạt động dựa nguyên lý: Nước rơi vào board tạo mơi trường dẫn điện Có dạng tín hiệu: Analog( AO) Digital (DO) Dạng tín hiệu: TTL, đầu 100mA Điều chỉnh độ nhạy biến trở Sử dụng LM358 LM393 để chuyển AO –> DO Kích thước cảm biến: 5.4*4.0mm Kích thước Module: 30 x 16mm Hình: Cảm biến nhiệt độ, độ ẩm Thông số kỹ thuật DHT11 - Điện áp hoạt động: 3V - 5V DC - Dòng điện tiêu thụ: 2.5mA - Phạm vi cảm biến độ ẩm: 20% - 90% RH, sai số ±5%RH - Phạm vi cảm biến nhiệt độ: 0°C ~ 50°C, sai số ±2°C - Tần số lấy mẫu tối đa: 1Hz (1 giây lần) - Kích thước: 23 * 12 * mm Tính - Cảm Biến Nhiệt Độ Và Độ Ẩm DHT11 cảm biến thơng dụng chi phí rẻ dễ lấy liệu thơng qua giao tiếp wire (giao tiếp digital dây truyền liệu nhất) Bộ tiền xử lý tín hiệu tích hợp cảm biến giúp bạn có liệu xác mà khơng phải qua tính toán So với cảm biến đời DHT22 DHT11 cho khoảng đo độ xác nhiều - Relay kênh Hình: Relay kênh Thông số kỹ thuật       Điện áp hoạt động: 5V/12VDC Dòng tiêu thụ: 200mA/1Relay Tín hiệu kích: High (5V/12V) Low (0V) chọn Jumper Relay mạch: Nguồn nuôi: 5V/12VDC Tiếp điểm đóng ngắt max: 250VAC-10A 30VDC-10A Sơ đồ nối dây: SƠ ĐỒ NỐI DÂY HỆ THỐNG ĐIỀU KHIỂN THÔNG QUA KÍP ESP32 DEUKIT V1 Chân data từ cảm biến nhiệt độ độ ẩm vào Nguồn 5V DC Relay điều khiển nâng hạ kính Relay điều khiển nâng hạ kính Nguồn 3.3V DC cấp cho Module cảm biến Relay điều khiển gạt mưa (-) Nguồn (+) nguồn (+) nguồn Relay điều khiển còi Relay điều khiển đèn pha Các tín hiệu đầu điều khiển mức (+) cho relay Các chân nhận tín hiêu analog từ cảm biến vào esp32 (-) Nguồn Relay điều khiển đèn cốt Relay điều khiển xi nhan phải Relay điều khiển xi nhan trái (+) rơ le nháy ĐỌC TÍN HIỆU TỪ CÁC CHÂN CẢM BIẾN Đọc giá trị độ ẩm nhiệt độ từ chân data cảm biến nhiệt độ độ ẩm kết nối với chân TX2 esp32 Đọc tín hiệu analog từ cảm biến ánh sáng kết nối với D35 esp32 Phần code chương trình: Phần kết nối khai báo biến: #define BLYNK_PRINT Serial #define BLYNK_TEMPLATE_ID "TMPLKq3B9T6A" #define BLYNK_DEVICE_NAME "Smart car" #define BLYNK_AUTH_TOKEN KsqG8yyTrE" "hFc5EvMVYdUH1yUMFveJW- #include #include #include #include #define DHTTYPE DHT11 // DHT 11 char auth[] = "hFc5EvMVYdUH1yUMFveJW-KsqG8yyTrE";// Token tên&mật wifi kết nối char ssid[] = "Smart car"; char pass[] = "12345678"; #define DHTPIN #define analogPIN1 39 #define analogPIN2 34 #define analogPIN3 35 17//khai báo chân tín hiệu NodeMCU #define RelayPin1 13 #define RelayPin2 12 #define RelayPin3 14 #define RelayPin4 27 #define RelayPin5 26 #define RelayPin6 25 #define RelayPin7 33 #define RelayPin8 32 #define VPIN_TEMPERATURE V25 #define VPIN_HUMIDITY V26 int value1; int value2; int value3; float temperature1 = 0; float humidity1 = 0; int phantram1; int phantram2; int phantram3; int button1,button2,button3,button4,button5,button6,button7,button8,button11,b utton12,button13; WidgetLED appled1(V17);// led ảo app blynk WidgetLED appled2(V18); WidgetLED appled3(V19); WidgetLED appled4(V20); WidgetLED appled5(V21); WidgetLED appled6(V22); WidgetLED appled7(V23); WidgetLED appled8(V24); WidgetLED ledConnect(V0); unsigned long timesBlinkLed=millis(); BlynkTimer timer2; DHT dht(DHTPIN, DHTTYPE); Phần thiết lập điều khiển giao tiếp app blynk với nodeMCU: Phần thiết lập đo đọc nhiệt độ độ ấm lên app blynk void readSensor(){ float h = dht.readHumidity(); float t = dht.readTemperature(); // or dht.readTemperature(true) for Fahrenheit if (isnan(h) || isnan(t)) { Serial.println("Failed to read from DHT sensor!"); return; } else { humidity1 = h; temperature1 = t; Serial.println(temperature1); delay(500); // Serial.println(ldrVal); } } void sendSensor() { readSensor(); Blynk.virtualWrite(VPIN_HUMIDITY, humidity1); Blynk.virtualWrite(VPIN_TEMPERATURE, temperature1);// Truyền liệu từ NodeMCU lên app Blynk } Phần thiết lập nút nhấn điều khiển app với nodeMCU void setup() { // Debug console Serial.begin(9600); dht.begin(); timer2.setInterval(2000L, sendSensor); Blynk.begin(auth, ssid, pass); pinMode(RelayPin1, OUTPUT); pinMode(RelayPin2, OUTPUT); pinMode(RelayPin3, OUTPUT); pinMode(RelayPin4, OUTPUT); pinMode(RelayPin5, OUTPUT); pinMode(RelayPin6, OUTPUT); pinMode(RelayPin7, OUTPUT); pinMode(RelayPin8, OUTPUT); } BLYNK_WRITE(V1) { button1 = param.asInt(); if(button1 == 1){ digitalWrite(RelayPin1, HIGH); appled1.on(); } else { digitalWrite(RelayPin1, LOW); appled1.off(); } } BLYNK_WRITE(V2) { button2 = param.asInt(); if(button2 == 1){ digitalWrite(RelayPin2, HIGH); appled2.on(); } else { digitalWrite(RelayPin2, LOW); appled2.off(); } } BLYNK_WRITE(V3) { button3 = param.asInt(); if(button3 == 1){ digitalWrite(RelayPin3, HIGH); appled3.on(); } else { digitalWrite(RelayPin3, LOW); appled3.off(); } } BLYNK_WRITE(V4) { button4 = param.asInt(); if(button4 == 1){ digitalWrite(RelayPin4, HIGH); appled4.on(); } else { digitalWrite(RelayPin4, LOW); appled4.off(); } } BLYNK_WRITE(V5) { button5 = param.asInt(); if(button5 == 1){ digitalWrite(RelayPin5, HIGH); appled5.on(); } else { digitalWrite(RelayPin5, LOW); appled5.off(); } } BLYNK_WRITE(V6) { button6 = param.asInt(); if(button6 == 1){ digitalWrite(RelayPin6, HIGH); appled6.on(); } else { digitalWrite(RelayPin6, LOW); appled6.off(); } } BLYNK_WRITE(V7) { button7 = param.asInt(); if(button7 == 1){ digitalWrite(RelayPin7, HIGH); appled7.on(); } else { digitalWrite(RelayPin7, LOW); appled7.off(); } } BLYNK_WRITE(V8) { button8 = param.asInt(); if(button8 == 1){ digitalWrite(RelayPin8, HIGH); appled8.on(); } else { digitalWrite(RelayPin8, LOW); appled8.off(); } } BLYNK_WRITE(V11) { button11 = param.asInt();// Nút nhấn tắt tất if(button11 == 1){ digitalWrite(RelayPin1, LOW); digitalWrite(RelayPin2, LOW); digitalWrite(RelayPin3, LOW); digitalWrite(RelayPin4, LOW); digitalWrite(RelayPin5, LOW); digitalWrite(RelayPin6, LOW); digitalWrite(RelayPin7, LOW); digitalWrite(RelayPin8, LOW); appled1.off(); appled2.off(); appled3.off(); appled4.off(); appled5.off(); appled6.off(); appled7.off(); appled8.off(); } } BLYNK_WRITE(V12) { button12 = param.asInt();// Nút nhấn bật tất if(button12 == 1){ digitalWrite(RelayPin1, HIGH); digitalWrite(RelayPin2, HIGH); digitalWrite(RelayPin3, HIGH);

Ngày đăng: 27/05/2023, 20:37

w