THIẾT KẾ, CHẾ TẠO THIẾT BỊ ĐO LƯỜNG VÀ ĐIỀU KHIỂN ĐỘ SÁNG TỰ ĐỘNG Sau khi chế tạo xong, sản phẩm của chúng em đã hoạt động như mong muốn, đúng với yêu cầu đã đề ra của sản phẩm. Việc thực hiện đề tài đã được làm đúng theo quy trình thiết kế. Tuy vậy, mạch còn đơn giản chưa nhiều tùy biến. Theo chúng em, mạch có thể phát triển thêm bằng cách thay đổi IC nguồn thành cách IC khác có hiệu năng tốt hơn. Thông qua việc thực hiện bài tập lớn, chúng em đã tính lũy rất nhiều kiến thức thực tế về chuyên ngành điện tử viễn thông, thầy TS. Hán Trọng Thanh đã tạo cho chúng em niềm say mê học tập, tìm tòi kiến thức mới. Thầy và cô còn giúp chúng em hoàn thiện các kỹ năng mềm như kỹ năng thuyết trình, làm việc nhóm, làm việc trong các môi trường chuyên nghiệp powerpoint, project, các phần mềm mô phỏng, thiết kế mạch: proteus, orcad…. Do vốn kiến thức còn hạn hẹp nên việc thực hiện ý tưởng còn nhiều hạn chế. Nếu còn có gì sai sót, chúng em mong thầy giúp đỡ và tạo điều kiện để chúng em có thể hoàn thành một cách tốt nhất ý tưởng này.
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN ĐIỆN TỬ VIỄN THƠNG BÁO CÁO BÀI TẬP LỚN Đề tài: TÌM HIỂU, THIẾT KẾ, CHẾ TẠO THIẾT BỊ ĐO LƯỜNG VÀ ĐIỀU KHIỂN ĐỘ SÁNG TỰ ĐỘNG GVHD: Nhóm sinh viên: - Nguyễn Hà Trung – 20158390 Nguyễn Thị Hiền Nguyễn Đức Chính Hà Nội, tháng 1/2020 Báo Cáo Bài Tập Lớn Mục Lục DANH MỤC HÌNH ẢNH .3 DANH MỤC BẢNG BIỂU .4 LỜI NÓI ĐẦU Phần Giới thiệu ý tưởng 1.1 Ứng dụng mạch đo lường tự động điều khiển độ sáng 1.2 Các sản phẩm có sẵn thi trường 1.3 Sự cần thiết sản phẩm 1.4 Lý chọn ý tưởng .6 1.5 Mục đích đề tài Phần 2.1 Giải pháp công cụ Tổng quan Altium 2.1.1 Altium ? 2.1.2 Các đặc điểm Altium 2.2 Tổng quan Arduino 2.2 Tổng quan C 2.3 Tổng quan Blynk 11 Phần Xác định yêu cầu kĩ thuật 12 3.1 Yêu cầu phi chức 12 3.2 Yêu cầu chức 12 Phần Thiết kế phần cứng .13 4.1 Thiết kế sơ đồ khối 13 4.2 Thiết kế chi tiết khối 13 Khối nguồn 14 Khối điều khiển truyền thông 15 Khối cảm biến 16 Khối chấp hành 16 4.3 Triển khai thiết kế phần cứng 18 Thiết kế sơ đồ nguyên lý 18 Thiết kế PCB Altium .18 Báo Cáo Bài Tập Lớn Phần 5.1 Thiết kế Firmware 20 Lấy liệu từ quang trở 20 Giao tiếp ADC 20 Đọc liệu quang trở qua ADC ESP8266 21 5.2 Thuật toán PID 21 5.3 Điều khiển độ sáng 23 Băm xung gì? .23 Băm xung ESP8266 24 Phần Hoàn thiện sản phẩm kiểm thử 25 Phần Kết luận .27 TÀI LIỆU THAM KHẢO 28 PHỤ LỤC .29 Báo Cáo Bài Tập Lớn DANH MỤC HÌNH ẢNH Hình 1.1 Sơ đồ tổ chức SANSLAB Hình 2.1 Vi điều khiển STM32F103RCT6 12 Hình 2.2 Kiến trúc vi xử lý ARM CORTEX-M3 13 Hình 2.3 Kiến trúc STM32 nhánh Performance Access 14 Hình 2.4 Đặc điểm nhánh STM32 .15 Hình 2.5 Sơ đồ khối 18 Hình 2.6 Sơ đồ nguyên lý khối tổng quát .18 Hình 2.7 Sơ đồ nguyên lý khối nguồn 19 Hình 2.8 Sơ đồ nguyên lý khối vi điều khiển cảm biến 19 Hình 2.9 Sơ đồ nguyên lý khối thời gian thực 20 Hình 2.10 Sơ đồ nguyên lý khối truyền thông 20 Hình 2.11 Bản vẽ PCB 21 Hình 2.12 Kết nối I2C Standard Mode Fast Mode .22 Hình 2.13 Hướng truyền liệu Master Slave 23 Hình 2.14 Quá trình giao tiếp UART .23 Hình 2.15 Sản phẩm hoàn thiện .24 Hình 2.16 Dữ liệu gửi lên phần mềm Debug .25 Báo Cáo Bài Tập Lớn DANH MỤC BẢNG BIỂU Bảng 2.1 Thông số kĩ thuật SHT20 16 Bảng 2.2 Thông số kĩ thuật DS3231 .17 Báo Cáo Bài Tập Lớn LỜI NÓI ĐẦU Trong trình học… Với tất trân trọng, em xin gửi lời cảm ơn tới thầy TS.Hán Trọng Thanh giúp đỡ chúng em trình hồn thiện tập lớn Thơng qua tập lớn này, chúng em có kiến thức, kinh nghiệm quý báu rèn luyện thân Sinh viên Nguyễn Hà Trung Nguyễn Thị Hiền Nguyễn Đức Chính Báo Cáo Bài Tập Lớn Phần Giới thiệu ý tưởng 1.1 Ứng dụng mạch đo lường tự động điều khiển độ sáng Đúng với tên gọi, mạch có tác dụng đo thông số ánh sáng môi trường qua cảm biến lấy liệu kết hợp với thuật tốn PID để điều khiển bóng đèn giúp độ sáng mơi trường đạt mong muốn Ngồi ra, việc cài đặt mức sáng mong muốn môi trường qua ứng dụng Blynk Mạch sử dụng ứng dụng cần giám sát độ sáng khu vực định nhằm tạo không gian sáng phù hợp, tối ưu việc sử dụng lượng Hơn nữa, mạch sử dụng bóng đèn sưởi để áp dụng cho ứng dụng cụ thể buồng ấp trứng, buồng sấy, … 1.2 Các sản phẩm có sẵn thi trường Hiện dễ dàng tìm thấy sản phẩm thiết bị điều khiển đo lường điều khiển độ sáng thị trường với đa dạng chủng loại Hơn nữa, chúng cịn có nhiều cơng dụng là: Có thể giám sát nhiều thơng số nhiệt độ (độ ẩm, độ PH, bụi …) gửi liệu giám sát nhiều phương thức truyền thông khác (LoRa, ZigBee, Wisun, ) Một số sản phẩm tiêu biểu kể đến : hệ thống điều khiển độ sáng Lumi, điều khiern độ sáng Lộc Phát,… 1.3 Sự cần thiết sản phẩm Dựa vào nhu cầu thực tế xã hội địi hỏi người phải ln động sáng tạo để tạo nhiều sản phẩm cho xã hội Việc kiểm sốt thơng số ánh sáng nhu cầu cấp thiết người lĩnh vực sản xuất đời sống Bằng việc đo lường điều khiển độ sáng tự động, người sử dụng có khơng gian sáng ý muốn tiết kiệm lượng 1.4 Lý chọn ý tưởng Thiết kế mạch điện tử có khả đo lường điều khiển tự động kĩ kĩ sư điện tử viễn thông Dựa sở kiến thức Báo Cáo Bài Tập Lớn học môn kỹ thuật đo lường tự động điều khiển kiến thức điện tử, chúng em thiết kế mạch giám sát điều khiển độ sáng đơn giản Đề tài đáp ứng yêu cầu môn học giúp chúng em nâng cao kiến thức đo lường tự động điều khiển thiết kế mạch điện tử thân 1.5 Mục đích đề tài Thơng qua thực đề tài này, chúng em muốn tự tay thiết kế sản phẩm điện tử có khả đo lường tự động điều khiển hoàn thành yêu cầu môn học Báo Cáo Bài Tập Lớn Phần Giải pháp công cụ 2.1 Tổng quan Altium 2.1.1 Altium ? Phần mềm thiết kế mạch tự động Altium Designer môi trường thiết kế điện tử đồng nhất, tích hợp thiết kế nguyên lý, thiết kế mạch in PCB, lập trình hệ thống nhúng FPGA 2.1.2 Các đặc điểm Altium Các điểm đặc trưng Altium Designer kể đến là: Giao diện thiết kế, quản lý chỉnh sửa thân thiện, dễ dàng biên dịch, quản lý file, quản lý phiên cho tài liệu thiết kế Hỗ trợ mạnh mẽ cho việc thiết kế tự động, dây từ đọng theo thuật toán tối ưu, phân tích lắp ráp linh kiện Hỗ trợ việc tìm giải pháp thiết kế chỉnh sửa mạch, linh kiện, netlist có sẵn từ trước theo tham số Mở, xem in file thiết kế dễ dàng với đầy đủ thông tin linh kiện, netlist, liệu vẽ, kích thước, số lượng… Hệ thống thư viện linh kiện phong phú, chi tiết hoàn chỉnh bao gồm tất linh kiện nhúng, số, tương tự… Đặt sửa đối tượng lớp khí, định nghĩa luật thiết kế, tùy chỉnh lớp mạch in, chuyển từ schematic sang PCB, đặt vị trí linh kiện PCB Mơ mạch PCB 3D, đem lại hình ảnh mạch điện trung thực không gian chiều, hỗ trợ MCAD-ECAD, liên kết trực tiếp với mơ hình STEp, kiểm tra khoảng cách điện, cấu hình cho 2D 3D Hỗ trợ thiết ké PCB sang FPGA ngược lại 2.2 Tổng quan Arduino Arduino tảng mã nguồn mở phần cứng phần mềm Phần cứng Arduino (các board mạch vi xử lý) sinh thị trấn Ivrea Ý, 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 Phần cứng Báo Cáo Bài Tập Lớn bao gồm board mạch nguồn mở thiết kế tảng vi xử lý AVR Atmel 8bit, ARM Atmel 32-bit Những Model trang bị 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 Được giới thiệu vào năm 2005, Những nhà thiết kế Arduino cố gắng mang đến phương thức dễ dàng, không tốn cho người yêu thích, sinh viên giới chuyên nghiệp để tạo thiết bị có khả tương tác với mơi trường thông qua cảm biến cấu chấp hành Những ví dụ phổ biến cho người yêu thích bắt đầu bao gồm robot đơn giản, điều khiển nhiệt độ phát chuyển động Đi với mơi trường phát triển tích hợp (IDE) chạy máy tính cá nhân thông thường cho phép người dùng viết chương trình cho Aduino ngơn ngữ C C++ 2.2 Tổng quan C C ngôn ngữ lập trình tương đối nhỏ gọn vận hành gần với phần cứng giống với ngơn ngữ Assembler hầu hết ngôn ngữ bậc cao Hơn thế, C đánh "có khả di động", cho thấy khác quan trọng với ngơn ngữ bậc thấp Assembler, việc mã C dịch thi hành hầu hết máy tính, hẳn ngơn ngữ Assembler chạy số máy tính đặc biệt Vì lý C xem ngôn ngữ bậc trung C tạo với mục tiêu làm cho thuận tiện để viết chương trình lớn với số lỗi mẫu hình lập trình thủ tục mà lại khơng đặt gánh nặng lên vai người viết trình dịch C, người bề bộn với đặc tả phức tạp ngơn ngữ Cuối C có thêm chức sau: Một ngôn ngữ cốt lõi đơn giản, với chức quan trọng chẳng hạn hàm hay việc xử lý tập tin cung cấp thư viện thủ tục Tập trung mẫu hình lập trình thủ tục, với phương tiện lập trình theo kiểu cấu trúc Một hệ thống kiểu đơn giản nhằm loại bỏ nhiều phép tốn khơng có ý nghĩa thực dụng Báo Cáo Bài Tập Lớn Chúng ta cần sử dụng MOSFET để điều khiển động theo tín hiệu xung PWM đưa vi điều khiển Chức MOSFET dựa vào tín hiệu xung PWM từ vi điều khiển để đóng ngắt liên tục với tần số cao (theo tần số xung điều chế) Nhờ vậy, động chạy nhanh hay yếu điều khiển tùy theo mức xung PWM đưa vào MOSFET Lựa chọn MOSFET chúng em IRFZ44N Đây loại MOSFET giá rẻ sử dụng rộng rãi thị trường Hình 4.7 MOSFET-N IRFZ44N b) Bóng đèn Đối với bóng đèn, nhóm chúng em sử dụng loại bóng đèn 5V với cơng suất 3W-5W tiết kiệm lượng Hình 4.8 Bóng đèn USB 5V 17 Báo Cáo Bài Tập Lớn 4.3 Triển khai thiết kế phần cứng Thiết kế sơ đồ nguyên lý Sau hoàn thành bước thiết kế chi tiết, chúng em bắt đầu thiết kế sơ đồ nguyên lý mạch phần mềm Altium Dựa vào lựa chọn thiết kế khối, datasheet cá linh kiện nguồn khác, chúng em hoàn thành sơ đồ nguyên lý Hình 4.9 Sơ đồ nguyên lý Thiết kế PCB Altium Dựa vào sơ đồ nguyên lý đa thiết kế trên, chúng em đến bước vẽ mạch PCB Altium Ở bước này, chúng em phải tính tốn vị trí xếp linh kiện cách hợp lý cho mạch nhỏ gọn hoạt động xác 18 Báo Cáo Bài Tập Lớn Hình 4.10 Thiết kế PCB 2D Hình 4.11 Thiết kế PCB 3D 19 Báo Cáo Bài Tập Lớn Phần Thiết kế Firmware 5.1 Lấy liệu từ quang trở Giao tiếp ADC Hiện nay, hầu hết dòng vi điều khiển tích hợp khối ngoại vi chuyển đổi tín hiệu tương tự – số (ADC) Đây phận quan trọng giúp vi điều khiển đọc với tín hiệu analog từ bên ngồi tín hiệu cảm biến loại analog trả (cảm biến nhiệt độ, độ ẩm, biến trở, quang trở…) Để thực việc chuyển đổi tín hiệu analog thực tế (như nhiệt độ, độ ẩm, âm thanh, ) thành tín hiệu kĩ thuật số, tín hiệu analog thực tế phải chuyển đổi thành dạng điện áp Bộ ADC sau đọc giá trị điện áp chuyển đổi thành tín hiệu kĩ thuật số tương ứng Do trình chuyển đổi liên quan đến việc lượng tử hóa tín hiệu ngõ vào, thiết mắc lượng lỗi bị ảnh hưởng nhiễu tín hiệu Thay liên tục thực việc chuyển đổi, ADC thực việc chuyển đổi theo chu kì, lấy mẫu (sampling) tín hiệu ngõ vào, giới hạn băng thơng cho phép tín hiệu Các thơng số cần quan tâm ADC: Độ phân giải : Bậc số hóa số bit xác định số mức số hóa cho dải giá trị điện áp danh định Hệ M bit có 2M mức cho tín hiệu đơn cực, dương âm Nếu tín hiệu song cực, phải dành bit dấu, mức bị dính nên hệ cho 2M-1-1 mức Dải giá trị điện áp danh định gọi dải động Điện áp lớn gây tràn (overflow) Tốc độ lấy mẫu: Vì tín hiệu analog liên tục theo thời gian nên cần thiết để chuyển đổi tín hiệu thành dãy giá trị kĩ thuật số Do cần định nghĩa đại lượng tốc độ đặc trưng cho thời gian mà giá trị kĩ thuật số (digital values) lấy mẫu từ tín hiệu analog Tốc độ gọi tốc độ lấy mẫu hay tần số lấy mẫu Một tín hiệu analog liên tục lấy mẫu sau khơi phục lại dạng tín hiệu gốc ban đầu từ giá trị mẫu rời rạc theo thời gian lọc khôi phục (reconstruction filter) Định lý lấy mẫu Nyquist–Shannon tín hiệu gốc khơi 20 Báo Cáo Bài Tập Lớn phục lại ban đầu tốc độ lấy mẫu lớn lần tần số lớn tín hiệu gốc Hình 5.12 Chuyển đổi ADC Đọc liệu quang trở qua ADC ESP8266 ESP8266 có chân ADC, dùng để đọc điện áp bên ngoài, hay đọc điện áp VCC Chúng ta sử dụng chân để đọc giá trị ADC từ quang trở.Để đọc điện áp bên chân ADC, sử dụng hàm analogRead(A0) 5.2 Thuật tốn PID Một điều khiển vi tích phân tỉ lệ (bộ điều khiển PID- Proportional Integral Derivative) chế phản hồi vòng điều khiển (bộ điều khiển) tổng quát sử dụng rộng rãi hệ thống điều khiển công nghiệp – điều khiển PID điều khiển sử dụng nhiều điều khiển phản hồi Bộ điều khiển PID tính tốn giá trị "sai số" hiệu số giá trị đo thông số biến đổi giá trị đặt mong muốn Bộ điều khiển thực giảm tối đa sai số cách điều chỉnh giá trị điều khiển đầu vào Trong trường hợp kiến thức (mơ hình tốn học) hệ thống điều khiển điều khiển PID điều khiển tốt nhất.[1] Tuy nhiên, để đạt kết tốt nhất, thông số PID sử dụng tính tốn phải điều chỉnh theo tính chất hệ thống-trong kiểu điều khiển giống nhau, thông số phải phụ thuộc vào đặc thù hệ thống Giải thuật tính tốn điều khiển PID bao gồm thơng số riêng biệt, đơi cịn gọi điều khiển ba khâu: giá trị tỉ lệ, tích phân đạo hàm, viết tắt P, I, D Giá trị tỉ lệ xác định tác động sai số tại, giá 21 Báo Cáo Bài Tập Lớn trị tích phân xác định tác động tổng sai số khứ, giá trị vi phân xác định tác động tốc độ biến đổi sai số Tổng chập ba tác động dùng để điều chỉnh trình thơng qua phần tử điều khiển vị trí van điều khiển hay nguồn phần tử gia nhiệt Nhờ vậy, giá trị làm sáng tỏ quan hệ thời gian: P phụ thuộc vào sai số tại, I phụ thuộc vào tích lũy sai số khứ, D dự đoán sai số tương lai, dựa vào tốc độ thay đổi tại.[2] Bằng cách điều chỉnh số giải thuật điều khiển PID, điều khiển dùng thiết kế có yêu cầu đặc biệt Đáp ứng điều khiển mơ tả dạng độ nhạy sai số điều khiển, giá trị mà điều khiển vọt lố điểm đặt giá trị dao động hệ thống Lưu ý công dụng giải thuật PID điều khiển khơng đảm bảo tính tối ưu ổn định cho hệ thống Vài ứng dụng yêu cầu sử dụng hai khâu tùy theo hệ thống Điều đạt cách thiết đặt đội lợi đầu không mong muốn Một điều khiển PID gọi điều khiển PI, PD, P I vắng mặt tác động bị khuyết Bộ điều khiển PI phổ biến, đáp ứng vi phân nhạy nhiễu đo lường, trái lại thiếu giá trị tích phân khiến hệ thống khơng đạt giá trị mong muốn Hình 5.13 Mơ hình thuật tốn PID 22 Báo Cáo Bài Tập Lớn 5.3 Điều khiển độ sáng Băm xung gì? Phương pháp điều xung PWM (Pulse Width Modulation) phương pháp điều chỉnh điện áp tải, hay nói cách khác, phương pháp điều chế dựa thay đổi độ rộng chuỗi xung vuông, dẫn đến thay đổi điện áp Các PWM biến đổi có tần số khác độ rộng sườn dương hay sườn âm PWM ứng dụng nhiều điều khiển Điển hình mà thường hay gặp điều khiển động xung áp, điều áp… Sử dụng PWM điều khiển độ nhanh chậm động hay cao nữa, cịn dùng để điều khiển ổn định tốc độ động Ngoài lĩnh vực điều khiển hay ổn định tải PWM cịn tham gia điều chế mạch nguồn : boot, buck, nghịch lưu pha pha… PWM gặp nhiều thực tế mạch điện điều khiển Điều đặc biệt PWM chuyên dùng để điều khiển phần tử điện tử cơng suất có đường đặc tính tuyến tính có sẵn nguồn chiều cố định Như PWM ứng dụng nhiều thiết bị điện- điện tử PWM nhân tố mà đội Robocon sử dụng để điều khiển động hay ổn định tốc độ động Một khoảng thời gian xung bao gồm chu trình ON (VCC) chu kỳ OFF (GND) Phần mà tín hiệu BẬT khoảng thời gian gọi chu kỳ nhiệm vụ Hình 5.14 Phương pháp điều chế xung PWM 23 Báo Cáo Bài Tập Lớn Băm xung ESP8266 ESP8266 có chức PWM thơng qua lập trình phần mềm Nó đạt phương pháp ngắt timer Dải tần số PWM cho ESP8266 điều chỉnh lên tới 1KHz Nó cung cấp chân cho phép băm xung Trong mã nguồn Arduino, để thực PWM, sử dụng hàm sau: analogWrite(pin, dutycycle): Kích hoạt PWM pin định Chu kỳ nhiệm vụ khoảng từ đến PWMRANGE, tức 1023 theo mặc định analogWrite(pin, 0): Tắt PWM pin định analogWriteRange(new_range): Function sử dụng để thay đổi phạm vi PWM (chu kỳ nhiệm vụ) analogWriteFreq(new_frequency): Tần số PWM 1kHz theo mặc định Gọi Function để thay đổi tần số mặc định với tần số PWM tần số nằm khoảng – 1000Khz 24 Báo Cáo Bài Tập Lớn Phần Hoàn thiện sản phẩm kiểm thử Cuối cùng, sau hoàn tất bước thiết kế, chúng em tiến hành hoàn thiện sản phẩm Bản thiết kế mạch sau gia cơng thành sản miếng PCB hồn chỉnh hàn linh kiện lên Mạch kiểm tra thời gian dài hoạt động với chức đề u cầu đề tài Hình 6.15 Sản phẩm hồn thiện Hình 6.16 Kiểm tra hoạt động PWM Hình 6.17 Giao diện Blynk điều khiển 25 Báo Cáo Bài Tập Lớn Hình 6.18 Debug hoạt động mạch lên biểu đồ 26 Báo Cáo Bài Tập Lớn Phần Kết luận Sau chế tạo xong, sản phẩm chúng em hoạt động mong muốn, với yêu cầu đề sản phẩm Việc thực đề tài làm theo quy trình thiết kế Tuy vậy, mạch đơn giản chưa nhiều tùy biến Theo chúng em, mạch phát triển thêm cách thay đổi IC nguồn thành cách IC khác có hiệu tốt Thơng qua việc thực tập lớn, chúng em tính lũy nhiều kiến thức thực tế chuyên ngành điện tử viễn thông, thầy TS Hán Trọng Thanh tạo cho chúng em niềm say mê học tập, tìm tịi kiến thức Thầy cịn giúp chúng em hồn thiện kỹ mềm kỹ thuyết trình, làm việc nhóm, làm việc mơi trường chun nghiệp powerpoint, project, phần mềm mô phỏng, thiết kế mạch: proteus, orcad… Do vốn kiến thức hạn hẹp nên việc thực ý tưởng nhiều hạn chế Nếu cịn có sai sót, chúng em mong thầy giúp đỡ tạo điều kiện để chúng em hoàn thành cách tốt ý tưởng Chúng em xin chân thành cám ơn! 27 Báo Cáo Bài Tập Lớn TÀI LIỆU THAM KHẢO 28 Báo Cáo Bài Tập Lớn PHỤ LỤC Code: #include "stm32f1xx_hal.h" #include #include #include #include SimpleKalmanFilter kalma_filter(1, 1, 0.01); #define LED_PIN 14 /* Define Variables we'll be connecting to */ double Setpoint = 0; double Input = 0; double Output = 0; /* Specify the links and initial tuning parameters */ double Kp=0; double Ki=10; double Kd=0; PID myPID(&Input, &Output, &Setpoint, Kp, Ki, Kd, DIRECT); //Token Blynk wifi char auth[] = "Y1l44mXC7vx5JZzuJ4-s4H04ib9bB7u6"; // Điền api token blynk bạn char ssid[] = "iPhone"; //Tên wifi char pass[] = "0966452533";//Password int counter = 0; int adc_val =0; int adc_val_kalman = 0; /************************************************************************************/ BLYNK_WRITE(0) { Setpoint = param.asInt(); } void setup() { // put your setup code here, to run once: 29 Báo Cáo Bài Tập Lớn Serial.begin(74880); delay(2000); WiFi.begin(ssid, pass); while (WiFi.status() != WL_CONNECTED) { delay(500); if(counter++ == 20) { counter = 0; break; } Serial.print("."); } if(WiFi.status()==WL_CONNECTED) { Serial.println(); Serial.println("Wifi is connected!!!"); Blynk.config(auth); Blynk.connect(); } else { Serial.println("Can't connect to Wifi!!!"); } Setpoint = 100; myPID.SetOutputLimits(0,1023); /* turn the PID on */ myPID.SetMode(AUTOMATIC); } void loop() { // put your main code here, to run repeatedly: if(Blynk.connected()) 30 Báo Cáo Bài Tập Lớn { Blynk.run(); } Serial.print(Setpoint); Serial.print("\t"); adc_val = analogRead(A0); Serial.print(adc_val); Serial.print("\t"); adc_val_kalman = kalma_filter.updateEstimate(adc_val); Serial.print(adc_val_kalman); Serial.print("\t"); Input = adc_val_kalman; myPID.Compute(); analogWrite(LED_PIN, Output); Serial.println(Output); } 31