Điều Chỉnh Nhiệt Độ , độ ẩm máy ấp trứng gà qua phần mềm Blink sử dụng Arduino sim900a dht12 Esp 8286
HỌC VIỆN NÔNG NGHIỆP VIỆT NAM KHOA CƠ ĐIỆN ĐỒ ÁN VI ĐIỀU KHIỂN ĐỀ TÀI : HỆ THỐNG TỰ ĐỘNG ĐIỀU CHỈNH CÁC THÔNG SỐ CỦA MÁY ẤP TRỨNG GÀ TỪ XA GVHD: TS NGUYỄN THÁI HỌC NHÓM 05 Hà Nội, 2021 Bảng thành viên nhóm: STT Họ tên MSV Nguyễn Văn Nam 638149 Nguyễn Quang Vinh 638173 Hoàng Văn Hưng 638131 Nguyễn Đức Chung 638106 Đinh Ngọc Tân 638158 Mục lục Chương I: Giới thiệu chung 1.1 1.2 Giới thiệu đề tài - Máy ấp trứng thiết bị ấp trứng gia cầm chuyên nghiệp đại, áp dụng kỹ thuật điện tử dùng nhiệt độ để ấp trứng thay cho gà mẹ ấp trứng truyền thống Máy ấp trứng cho kết tỷ lệ thành cơng cao hồn tồn tự động Các thao tác bạn thực với máy ấp trứng đơn giản, dễ dàng thao tác, tất bạn cần làm cho trứng vào máy chọn thông số máy tiến hành áp trứng; - Mơi trường sống người ngày bị tác động nhiều lý (nhiệt độ, độ ẩm .), nên hay thay đổi cách bất thường gây nên nhiều hậu không mong muốn cho đời sống người Do mạch cảm biến đời nhằm nắm bắt thay đổi môi trường từ đưa giải pháp hợp lý Hiện công nghệ ngày phát triển, vấn đề tự động hóa, dám sát điều khiển từ xa hướng tới ưu tiên Mạch tự động điều chỉnh giám sát thông số máy ấp trứng thơng qua internet đáp ứng yêu cầu trên; - Trong đề tài áp dụng vào kiểm tra điều khiển nhiệt độ , độ ẩm máy ấp trứng gia cầm Định hướng đề tài Hình 1: Sơ đồ khối tổng quát ***** Chương 2: Các linh kiện cần dùng 2.1 VI XỬ LÝ ARDUINO UNO R3 2.1.1 Giới thiệu vi xử lý arduino - Arduino board mạch vi xử lý, nhằm xây dựng ứng dụng tương tác với với môi trường thuận lợi Gồm board mạch nguồn mở thiết kế tảng vi xử lý AVR Atmel bit Gồm cổng giao tiếp USB, chân đầu vào analog, 14 chân I/O kỹ thuật số tương thích với nhiều board mở rộng khác 2.1.2 Cấu tạo Arduino Hình 2.1: ARDUINO UNO R3 Cáp USB - Đây cáp thường bán kèm theo bo, dây cáp dùng để nạp chương trình cho board dây đồng thời lấy nguồn từ usb máy tính để board hoạt động Ngồi cáp USB cịn dùng để chuyển liệu từ Arduino lên máy tính Dây cáp có hai đầu Đầu dùng để cắm vào cổng USB board Arduino, đầu 1b dùng để cắm vào cổng USB máy tính IC Atmega 16U2 - IC lập trình chuyển đổi USB - to – Serial dùng để giao tiếp với máy tính thơng qua giao thức Serial ( dùng cổng COM ) Cổng nguồn - Cổng nguồn nhằm sử dụng nguồn điện bên pin, bình ác quy hay adapter cho board Arduino hoạt động Nguồn điện cấp vào cổng nguồn DC có hiệu điện từ 6V đến 20V, nhiên hiệu điện tốt mà nhà sản xuất khuyên dùng từ 7V đế 12V Cổng USB - Cổng USB board Arduino dùng để kết nối với cáp USB Nút reset - Nút reset dùng để reset lại chương trình chạy Đơi chương trình chạy gặp lỗi, người dùng reset lại chương trình ICSP Atmega 16U2 - ICSP chữ viết tắt In – Circuit Serial Programming Đây chân giao tiếp SPI chip Atmega 16U2 Các chân thường sử dụng dự án Arduino Chân xuất tín hiệu - Có tất 14 chân xuất tín hiệu Arduino Uno, chân có dấu ~ chân băm xung ( PWM ), tức điều khiển tốc độ động độ sáng đèn IC Atmega 328 - IC Atmega 328 linh hồn board mạch Arduino Uno, IC sử dụng việc thu thập liệu từ cảm biến, xử lý liệu, xuất tín hiệu ra, Chân ICSP Atmega 328 - Các chân ICSP Atmega 328 sử dụng cho giao tiếp SPI ( Serial Peripheral Interface ), số ứng dụng Arduino có sử dụng chân này, ví dụ sử dụng module RFID, RC522 với Arduino hay Ethernet Shield với Arduino - Chân lấy tín hiệu Analog Các chân lấy tín hiệu Analog ( tín hiệu tương tự ) từ cảm biến để IC Atmega 328 xử lý Có tất chân lấy tín hiệu Analog, từ A0 đến A5 Chân cấp nguồn cho cảm biến - Các chân dùng để cấp nguồn cho thiết bị bên rơle, cảm biến, RC servo, khu vực có sẵn chân GND ( chân nối đất, chân âm ), chân 5V, chân 3.3V Nhờ chân mà người sử dụng không cần thiết bị biến đổi điện cấp nguồn cho cảm biến, roowle, rc servo, Ngoài khu vực cịn có chân Vin chân reset, chân IOREF Tuy nhiên chân thường sử dụng Các linh kiện khác board Arduino Uno - Ngoài linh kiện liệt kê trên, Arduino Uno số linh kiện đáng ý khác Trên board có tất đèn led, bao gồm led nguồn ( led ON nhằm cho biết loa cấp nguồn ), led Tx Rx, led L Các led Tx Rx nhấp nháy có liệu truyền từ board lên máy tính ngược lại thơng qua cổng USB Led L kết nối với chân số 13 Led gọi led on board ( tức led board ), led giúp người dùng thực hành đơn giản mà khơng cần dùng thêm led ngồi - Trong 14 chân board cịn có châ truyền nhận liệu nối tiếp TTL Có số ứng dụng đến tính này, ví dụ ứng dụng điều khiển mạch Arduino Uno qua điện thoại sử dụng bluetooth HC05 - Thêm vào đó, chân sử dụng cho lập trình ngắt ( interrupt ), đồng thời cịn vài chân khác sử dụng cho chức khác 10 times1 = millis(); }else{ if(millis()-times1>timeReconnectWL){ reConnect(); times1=millis(); } } } } } void resetDefault(){ ssid_ap = SSIDAP; pass_ap = PASSAP; ssid_sta = ""; pass_sta = ""; blynk_server = "blynk-cloud.com"; blynk_port = 80; auth_token = ""; if(writeConfig()){ Serial.println("Done resetting the device to its default state!"); } } bool reStoreConfig() { Serial.println(); Serial.println("Configure loading !"); File file = LittleFS.open("config.json", "r"); if (!file) { 59 Serial.println("Failed to open file config.json for reading"); return false; } String buf; //Serial.println("Reading from file config.json!"); while (file.available()) { buf+= (char)file.read(); //Serial.write(file.read()); } file.close(); //Serial.print("Content file: "); Serial.println(buf); DynamicJsonDocument doc(1048); deserializeJson(doc, buf); JsonObject obj = doc.as(); ssid_ap = obj["ssid_ap"].as(); pass_ap = obj["pass_ap"].as(); ssid_sta = obj["ssid_sta"].as(); pass_sta = obj["pass_sta"].as(); blynk_server = obj["blynk_server"].as(); blynk_port = obj["blynk_port"].as(); auth_token = obj["auth_token"].as(); Serial.println("** ACCESSPOINT MODE **"); Serial.print("SSID ACCESSPOINT: "); Serial.println(ssid_ap); Serial.print("PASSWORD: "); Serial.println(pass_ap); 60 if(ssid_sta == ""){ Serial.println("** -STATION MODE -**"); Serial.println("Station mode configuration has not been set up!"); return false; }else{ Serial.println("** -STATION MODE -**"); Serial.print("SSID STATION: "); Serial.println(ssid_sta); Serial.print("PASSWORD: "); Serial.println(pass_sta); Serial.println("** -BLYNK SERVER -**"); Serial.print("SERVER NAME: "); Serial.println(blynk_server); Serial.print("SERVER PORT: "); Serial.println(blynk_port); Serial.print("AUTH TOKEN: "); Serial.println(auth_token); return true; } } boolean checkConnectWifi(){ Serial.print("Connecting to a wifi network"); WiFi.mode(WIFI_STA); WiFi.begin(ssid_sta,pass_sta); int n=0; while(n