Sơ đồ khối IoT điều khiển giám sát hoạt động của động cơ KĐB 3 pha Hình 2.2 Sơ đồ đấu nối biến tần điều khiển động cơ KĐB 3 pha Hình 2.3 Biến tần và động cơ điện KĐB 3 pha Hình 2.4 Bộ đi
Mục đích nghiên cứu
Mục đích tác giả nghiên cứu ứng dụng IoT trong điều khiển giám sát hoạt động của động cơ không đồng bộ 3 pha
Đối tượng và khách thể nghiên cứu
- Nghiên cứu các chức năng của bộ điều khiển IoT dùng ESP32
- Các thông số hoạt động của động cơ không đồng bộ 3 pha
- Nghiên cứu phần mềm lập trình Webserver
- Động cơ không đồng bộ 3 pha
Giả thuyết nghiên cứu
Trong thời đại công nghệ ngày nay, việc có thể áp dụng Iot vào trong hệ thống điều khiển các thiết bị là xu hướng tất yếu Nếu việc đơn thuần là điều khiển và giám sát trực tiếp sự hoạt động của động cơ KĐB 3 pha, thì với IoT thì người vận hành có thể ở một nơi rất xa cũng có thể dùng Smartphone hoặc máy tính để điều khiển và giám sát hoạt động của động cơ hoặc một thiết bị bất kỳ
Do đó trong phạm vi đề tài, tác giả xây dựng giả thuyết kết quả của đề tài là ứng dụng Iot để điều khiển và giám sát hoạt động của 01 động cơ KĐB 3 pha công suất
Nhiệm vụ nghiên cứu
- Nghiên cứu lý thuyết về cấu trúc, chức năng và phương thức hoạt động của hệ thống IoT nói chung và IoT trong công nghiệp
- Nghiên cứu điều khiển động cơ không đồng bộ 3 pha thông qua hệ thống mạng wifi và Websever: o Chế độ ON/OFF trực tiếp o Chế độ đảo chiều quay
- Nghiên cứu giám sát các thông số hoạt động cơ bản như điện áp, dòng điện, tần số hoạt động của động cơ
Phương pháp nghiên cứu
Phương pháp quan sát khoa học
Phương pháp ứng dụng thực nghiệm
Phạm vi ảnh hưởng
Phạm vi nghiên cứu của đề tài được áp dụng một phần trong môn học thực hiện dự án IoT, phát triển ứng dụng Web
CƠ SỞ LÝ LUẬN
Nghiên cứu hệ thống IoT (ESP32) trong công nghiệp
Internet of Things (IoT) hay còn được gọi với cái tên internet vạn vật thực chất là một mạng lưới kết nối vạn vật lại với nhau bằng internet, các thiết bị kết nối có khả năng thu thập, xử lý và truyền tải thông tin qua lại với nhau thông qua một mạng duy nhất mà không cần đến sự can thiệp của con người
Sau đó, những thông tin, dữ liệu được thu thập sẽ tổng hợp lại và gửi đến một hệ thống mạng để tạo ra các lệnh và chương trình giúp điều khiển phương tiện Khi đã xử lý xong dữ liệu, thông qua đường truyền mạng phương tiện này sẽ nhận được chỉ dẫn để thực hiện các lệnh được đặt ra
Các đặc tính cơ bản của IoT
- Khả năng định danh độc nhất: Tất cả mọi đối tượng tham gia vào IoT như con người, máy móc đều được định danh để phân biệt ra từng đối tượng khác nhau, điều đó giúp việc thu thập, quản lý, chia sẻ thông tin thông qua máy tính dễ dàng hơn
- Là một hệ thống vô cùng phức tạp: Hệ thống này bao gồm một lượng lớn các liên kết giữa các thiết bị với nhau kể cả những liên kết, thiết bị cũ và mới được lưu trữ trên Internet
- Thông minh: Các yếu tố trí tuệ nhân tạo đã được ứng dụng vào nhiều lĩnh vực khác nhau và mang lại một số thành tựu nhất định Những thiết bị có trí thông minh này có thể tự động học hỏi và xử lý thông tin và nhiệm vụ dựa trên thực tế
- Quy mô rất lớn: Một số lượng rất lớn thiết bị, lớn hơn nhiều số lượng máy tính của con người được kết nối và giao tiếp với nhau Ứng dụng của IOT vào sản xuất công nghiệp
IIoT (Industrial Internet of Things) đem lại rất nhiều ứng dụng tối ưu trong công nghiệp và đồng thời điều đó đã thúc đẩy việc cải thiện năng suất công việc cũng như tối ưu hóa chi phí và lợi nhuận IIoT được đưa hoạt động sản xuất công nghiệp với những chức năng quan trọng như:
- Quản lý và giám sát được thiết bị tự động và từ xa
- Bảo trì dự đoán nhằm phát hiện nhu cầu bảo trì của máy móc trước khi xảy ra bị hỏng hóc hoặc xảy ra các sự cố để việc sản xuất không bị gián đoạn đột ngột
- IIoT tạo ra thông tin có giá trị để triển khai các cải tiến nhanh hơn, có thể truy cập và phân tích dữ liệu nhanh hơn và tự động, điều chỉnh quy trình cần thiết từ xa
- Hệ thống IoT công nghiệp cho phép giám sát tự động hàng tồn kho, kiểm tra và xác nhận kế hoạch đầu tư
- Ứng dụng IIoT quan trọng nhất là khả năng giám sát chất lượng của các sản phẩm ở bất kỳ giai đoạn sản xuất nào: từ nguyên liệu thô đến cách chúng được vận chuyển (thông qua các ứng dụng theo dõi thông minh), phản hồi của khách hàng khi nhận sản phẩm
- Trong số các ứng dụng IoT công nghiệp nhằm đạt được hiệu quả cao hơn, tối ưu hóa chuỗi cung ứng theo thời gian thực
ESP32 là một series các vi điều khiển trên một vi mạch giá rẻ, năng lượng thấp có tích hợp WiFi và dual-mode Bluetooth (Bluetooth chế độ kép) Dòng ESP32 sử dụng bộ vi xử lý Tensilica Xtensa LX6 có hai biến thể lõi kép và lõi đơn, và bao gồm các công tắc antenna tích hợp, RF balun, bộ khuếch đại công suất, bộ khuếch đại thu nhiễu thấp, bộ lọc và module quản lý năng lượng ESP32 được chế tạo và phát triển bởi Espressif Systems ESP32 là sản phẩm kế thừa từ vi điều khiển ESP8266
Hình 1.1 : Cấu trúc của ESP32
CPU CPU: Xtensa Dual-Core LX6 microprocessor
Chạy hệ 32 bit Tốc độ xử lý từ 160 MHz đến 240 MHz ROM: 448 Kb
Tốc độ xung nhịp từ 40 Mhz ÷ 80 Mhz (có thể tùy chỉnh khi lập trình)
RAM: 520 Kb SRAM liền chip Trong đó 8 Kb RAM RTC tốc độ cao – 8 Kb RAM RTC tốc độ thấp (dùng ở chế độ DeepSleep)
Wi-Fi: 802.11 b/g/n/e/i Bluetooth: v4.2 BR/EDR và BLE
2 bộ chuyển đổi số sang tương tự (DAC) 8 bit
18 kênh bộ chuyển đổi tương tự sang số (ADC) 12 bit
3 cổng giao tiếp SPI (1 cổng cho chip FLASH )
10 kênh ngõ ra điều chế độ rộng xung (PWM)
SD card/SDIO/MMC host Ethernet MAC hỗ trợ chuẩn: DMA và IEEE 1588 CAN bus 2.0
Cảm biến tích hợp trên chip
1 cảm biến Hall (cảm biến từ trường)
1 cảm biến đo nhiệt độ Cảm biến chạm (điện dung) với 10 đầu vào khác nhau
Chế độ bảo mật Hỗ trợ tất cả các tính năng bảo mật chuẩn IEEE 802.11, bao gồm
WFA, WPA/WPA2 và WAPI Khởi động an toàn (Secure boot)
Mã hóa flash (Flash encryption)
1024-bit OTP, lên đến 768-bit cho khách hàng Tăng tốc phần cứng mật mã: AES, SHA-2, RSA, mật mã đường cong elliptic (ECC – elliptic curve cryptography), bộ tạo số ngẫu nhiên (RNG – random number generator)
Nguồn điện hoạt động Điện áp hoạt động: 2,2V ÷ 3,6V Nhiệt độ hoạt động: -40oC ÷ + 85oC
Bảng 1.1 : Thông số của ESP32
Chức năng các chân của ESP32
Bao gồm 48 chân với nhiều chức năng khác nhau và được định nghĩa bằng phần mềm đây là ví dụ cho module ESP32 DevKit có 30 chân – vị trí chân có thể thay đổi tùy thuộc vào nhà sản xuất
Hình 1.2 : Sơ đồ chân của ESP32
Môi trường lập trình ESP32
ESP32 có thể được lập trình trong các môi trường lập trình khác nhau như:
Môi trường lập trình (IDE)
- Trên thế giới mọi người lập trình ESP32 thông qua 2 IDE đó là VS Code và Arduino IDE
- Thư viện lập trình (SDK)
Bên cạnh đó ta còn có thể sử dụng 2 gói thư viện chính đó là Arduino và ESP-IDF.
Tổng quan về phương thức điều khiển
1.2.1 Tổng quan về điều khiển trực tiếp Điều khiển trực tiếp động cơ không đồng bộ 3 pha thường được sử dụng các dạng:
- Điều khiển trực tiếp dùng tiếp điểm (CB, nút nhấn, contactor)
- Điều khiển dùng các mạch điện tử kết hợp vi xử lý
- Điều khiển dùng biến tần …
Mỗi phương pháp điều có những ưu điểm và hạn chế riêng
1.2.2 Tổng quan về điều khiển bằng wifi
WiFi là viết tắt của chữ Wireless Fidelity WiFi có nghĩa là truyền tín hiệu bằng sóng vô tuyến thông qua kết nối không dây
WiFi hoạt động dựa trên nguyên tắc bộ định tuyến (router hay bộ phát WiFi), router có tác dụng chuyển kết nối hữu tuyến sang tín hiệu vô tuyến và gửi tín hiệu đi Sau đó, adapter (bộ chuyển tín hiệu không dây) được cài đặt sẵn trên các thiết bị thông minh sẽ nhận tín hiệu này, giải mã và cho phép người dùng truy cập internet
Các chuẩn WiFi ngày nay
- Chuẩn 802.11 ra đời vào năm 1997, khi IEEE (Institute of Electrical and
Electronics Engineers) giới thiệu về chuẩn mạng không dây đầu tiên với tốc độ tối đa là 22 Mbps và băng tần 2.4 GHz
- Chuẩn 802.11b có tốc độ xử lý 11 Mbps với băng tần 2.4 GHz, đôi khi dễ bị nhiều chữ bởi các thiết bị điện tử khác
- Chuẩn 802.11a cung cấp tần số 5 GHz và tốc độ xử lý 54 Mbps Tín hiệu của chuẩn này khó xuyên qua các bức tường và được bán ở một mức giá khá cao
- Chuẩn 802.11g hoạt động ở tần số 2.4 GHz và tốc độ xử lý 54 Mbps Do đó, chuẩn này có phần mạnh hơn chuẩn b khi cùng ở tần số 2.4 GHz
- Chuẩn 802.11n có thể hoạt động trên cả 2 băng tần là 2.4 GHz và 5 GHz Bên cạnh đó, chuẩn n còn hỗ trợ tốc độ tối đa lên đến 300 Mbps Nhờ khả năng hoạt động linh hoạt và giá cả phải chăng, chuẩn 802.11n là chuẩn được sử dụng phổ biến nhất hiện nay
- Chuẩn 802.11ac cung cấp băng tần 5 GHz và tốc độ lên đến 1.730 Mbps Đây cũng có thể được coi là tốc độ cao nhất ở hiện tại Do đó, để sử dụng chuẩn 802.11ac thì cần phải chi trả một chi phí khá cao nên thiết bị phát cho chuẩn này chưa được phổ biến rộng rãi
- Chuẩn 802.11ad hoạt động ở băng tần 60 GHz và tốc độ lên đến 70 Gbps
Tuy nhiên, sóng tín hiệu của chuẩn này khó xuyên qua tường hay vật cản nên nếu ở xa thiết bị phát sẽ khó bắt được WiFi
Hiện nay, Việt Nam sử dụng tất cả các chuẩn WiFi kể trên cho từng lĩnh vực riêng biệt Nhưng nhìn chung, chuẩn phổ biến nhất là 802.11n nhờ sự linh hoạt ở cả 2 dải tần 2.4 GHz và 5 GHz
1.2.3 Tổng quan điều kiển bằng Websever
Webserver hay máy chủ web là một máy tính cài đặt các chương trình phục vụ các ứng dụng web Webserver có khả năng tiếp nhận request từ các trình duyệt web và gửi phản hồi đến client thông qua giao thức HTTP hoặc các giao thức khác
Bất cứ khi nào bạn xem một trang web trên internet, có nghĩa là bạn đang yêu cầu trang đó từ một web server
Web Page là trang Web có một địa chỉ duy nhất là URL (viết tắt của từ Uniform
Resource Locator) Khi bạn nhập URL trên trình duyệt (web browser) như chrome, firefox thực chất nó sẽ làm các bước sau:
- Trình duyệt sẽ yêu cầu thông tin từ một hoặc nhiều máy chủ DNS (thông qua internet) Máy chủ DNS sẽ cho trình duyệt biết địa chỉ IP nào tên miền sẽ trỏ đến cũng là nơi đặt trang web
- Máy chủ DNS sẽ chuyển hướng trình duyệt sang địa chỉ IP của máy chủ ứng với tên miền đó
- Máy chủ phản hồi cho trình duyệt những thông tin được yêu cầu: Thông thường đó là một trang HTML
- Trình duyệt render các file HTML, CSS, JAVASCRIPT… mà máy chủ truyền về thành một website hiển thị lên máy tính cho người dùng sử dụng
Website là tập hợp các trang Web
Xét ở mức độ cơ bản nhất, toàn bộ các website cần một chương trình máy tính, phân phối các trang web khi có yêu cầu từ người dùng Chiếc máy tính chạy chương trình này là Web Server Khi một người dùng sử dụng máy tính để truy cập một website, họ nhập và gửi yêu cầu tới internet về việc xem một trang web
=> Một Web Server có thể chứa nhiều Website, một Web Site có thể chứa nhiều Web Page (chứa được bao nhiêu thì phụ thuộc vào cấu hình)
Mối quan hệ giữa Web Server & thiết bị
- Mỗi web server đều có một địa chỉ IP hoặc cũng có thể có một domain name Bất kỳ máy tính nào cũng có thể trở thành web server bởi việc cài đặt lên nó một chương trình phần mềm server software và sau đó kết nối vào Internet Điều này có thể thực hiện được là vì mỗi máy tính/ thiết bị kết nối internet đều được định danh với một địa chỉ nhận dạng duy nhất IP (viết tắt của từ Internet Protocol – giao thức internet) Thông qua địa chỉ này, các máy tính/ thiết bị có thể tìm kiếm nhau
- Phần mềm Server Software là phần mềm chuyên dụng để cài đặt và chạy trên bất cứ máy tính/ thiết bị nào hỗ trợ và có thể đáp ứng đủ yêu cầu về bộ nhớ Nhờ có nó mà người dùng có thể truy cập đến các thông tin của website từ một máy tính khác qua internet
Từ các khái niệm như thiết bị được nhúng web, thiết bị hỗ trợ thiết lập bằng web page, hoặc thiết bị được truy cập từ xa qua web server, thì bản chất là thiết bị đó được cài đặt một chương trình phần mềm server software có hỗ trợ các ngôn ngữ lập trình web (hoặc tạo ra các giao diện web)
Tên miền là một danh từ dịch theo kiểu nghĩa của từng từ một (word by word) từ tiếng Anh (domain name) Thực chất tên miền là sự nhận dạng vị trí của một máy tính trên mạng Internet nói cách khác tên miền là tên của các mạng lưới, tên của các máy chủ trên mạng Internet Mỗi địa chỉ bằng chữ này phải tương ứng với một địa chỉ IP dạng số
Hệ thống tên miền (DNS – Domain name system) bao gồm một loạt các cơ sở dữ liệu chứa địa chỉ IP và các tên miền tương ứng của nó Mỗi tên miền tương ứng với một địa chỉ bằng số cụ thể Hệ thống tên miền trên mạng Internet có nhiệm vụ chuyển đổi tên miền sang địa chỉ IP và ngược lại từ địa chỉ IP sang tên miền
THỰC TRẠNG VÀ GIẢI PHÁP CỦA VẤN ĐỀ NGHIÊN CỨU
Thực trạng vấn đề nghiên cứu
Việc điều khiển và giám sát hoạt động của động cơ KĐB 3 pha bằng cách dùng các tiếp điểm và những mạch điện tử, hoặc các module công nghiệp như biến tần, khởi động mềm được sử dụng rộng rãi
Việc nghiên cứu sử dụng công nghệ mới để có thể điều khiển động cơ từ xa, qua mạng wifi hoặc internet là điều hết sức cần thiết, có thể đáp ứng nhu cầu lao động của xã hội
Bên cạnh đó, việc nghiên cứu này với mục đích tiếp cận công nghệ, làm nền tảng để tác giả có thể nghiên cứu và phát triển thêm các đề tài khác, cập nhật thêm kiến thức để giảng dạy.
Giải pháp nghiên cứu
Phương pháp nghiên cứu ứng dụng thực nghiệm
Nội dung nghiên cứu
- Điều khiển động cơ không đồng bộ 3 pha thông qua 3 phương thức: điều khiển trực tiếp, điều khiển thông qua smartphone và điều khiển thông qua Websever
- Giám sát các thông số hoạt động cơ bản như điện áp, dòng điện, tần số hoạt động của động cơ
Trong phạm vi nghiên cứu từ những môn học được thực nghiệm: Điện tử ứng dụng, Lập trình vi điều khiển, Đo lường cảm biến, Thực hiện dự án Iot của ngành Điều khiển tự động hóa và ngành Tự động hóa công nghiệp
Từ những mục đích, yêu cầu công nghệ, những nội dung tác giả đã nghiên cứu thiết kế sơ đồ nguyên lý và sơ đồ nối dây, mạch điện điều khiển và các ứng dụng bằng điện thoại điều khiển, cách thiết kế webserver điều khiển IoT
2.3.1 Nghiên cứu sơ đồ khối chức năng và phần cứng điều khiển
Hình 2.1 : Sơ đồ khối IoT điều khiển giám sát hoạt động của động cơ KĐB 3 pha
OFF ON FD/RV Test
Hình 2.2 : Sơ đồ đấu nối biến tần điều khiển động cơ KĐB 3 pha
Hình 2.3 : Biến tần và động cơ điện KĐB 3 pha
Hình 2.4 : Bộ điều khiển ESP32 ETHERNET công nghiệp
2.3.2 Nghiên cứu phần mềm ứng dụng điều khiển a Phần mềm ứng dụng Blynk
Hình 2.5: Logo ứng dụng Blynk Blynk là một nền tảng với các ứng dụng điện thoại thông minh cho phép dễ dàng tương tác với bộ vi điều khiển như: Arduino, Esp8266, Esp32 hoặc Raspberry qua Internet Ứng dụng Blynk là một bảng điều khiển kỹ thuật số cho phép xây dựng giao diện đồ họa cho dự án bằng cách kéo và thả các widget khác nhau mà nhà cung cấp thiết kế sẵn
Blynk không bị ràng buộc với một số bo hoặc shield cụ thể Thay vào đó, nó hỗ trợ phần cứng có thể lựa chọn Arduino hoặc Raspberry Pi được liên kết với Internet qua Wi-Fi, Ethernet hoặc chip ESP8266, ESP32 Blynk sẽ giúp kết nối và sẵn sàng cho các dự án IoT
Blynk Server – chịu trách nhiệm về tất cả các giao tiếp giữa điện thoại thông minh và phần cứng Blynk có mã nguồn mở, có thể dễ dàng xử lý hàng nghìn thiết bị và thậm chí có thể được khởi chạy trên Raspberry Pi
Thư viện Blynk – dành cho tất cả các nền tảng phần cứng phổ biến – cho phép giao tiếp với máy chủ và xử lý tất cả các lệnh đến và lệnh đi
Một ứng dụng đơn giản là khi nhấn một nút trong ứng dụng Blynk, thông điệp sẽ truyền đến không gian của đám mây Blynk, và tìm đường đến phần cứng
Do đó, việc cần để xây dựng và quản lý phần cứng được kết nối: cung cấp thiết bị, hiển thị dữ liệu cảm biến, điều khiển từ xa với các ứng dụng web và di động, cập nhật chương trình cơ sở qua mạng, bảo mật, phân tích dữ liệu, quản lý người dùng và truy cập, cảnh báo, tự động hóa và nhiều thứ khác hơn…
Hình 2 6: Ba thành phần chính của Blynk b Phần mềm thiết kế web W3School
W3Schools là một trang web giáo dục cho việc học các công nghệ web trực tuyến Nội dung bao gồm các hướng dẫn và tài liệu tham khảo liên quan đến HTML, CSS, JavaScript, JSON, PHP, Python, AngularJS, SQL, Bootstrap, Node.js, jQuery, XQuery, Ajax, và XML
Các nội dung trên W3schools hoàn toàn miễn phí, chủ yếu liên quan đến các công nghệ cũng như ngôn ngữ lập trình web như JavaScript, HTML, CSS…
W3schools được đánh giá khá phù hợp cho những người mới bắt đầu, vì các kiến thức ở đây khá là cơ bản và mang tính lý thuyết cao
Hình 2 7: Ba nội dung của W#School thiết kế webserver điều khiển
KẾT QUẢ NGHIÊN CỨU
Mạch điện phần cứng IoT điều khiển và giám sát hoạt động của động cơ
Hình 3.1 : Mạch điện phần cứng của bộ điều khiển động cơ KĐB 3 pha dùng IoT Mạch điện phần cứng của bộ điều khiển động cơ KĐB 3 pha dùng Iot bao gồm các thành phần và chức năng chính như:
- Bộ nguồn: gồm nguồn vào AC 1 pha 220V và nguồn DC 24V- 10A, cung cấp cho toàn bộ các thiết bị của mạch điện
- Nút nhấn điều khiển trực tiếp động cơ thông qua mạch vi xử lý, bao gồm nút dừng, nút chạy, nút đảo chiều quay, nút chạy thử thuận, nút chạy thử nghịch
- Mạch điều khiển IoT, dùng vi xử lý ESP32 Ethernet điều khiển xa dùng sóng wifi, có thể giao tiếp SPI, I2C, UART, RS232 cách ly, RS485 cách ly, Ethernet W5500, 08 ngõ vào NPN hoặc NPN có led hiển thị ( 0-24V hoặc 0-5v), 06 ngõ ra Relay có led hiển thị, 04 ngõ vào analog ADC 0-10V, tương thích với phần mềm lập trình IDE Arduino
- Bộ điều khiển biến tần Yaskawa công suất 750W, điện áp vào 1 pha 220V, điện áp ra 3 pha 220V có kết nối được bằng giao thức RS485
- Động cơ KĐB 3 pha công suất 90W, sử dụng điện áp 3 pha 220V
- Đồng hồ hiển thị giá trị điện áp lưới, dòng điện tải của động cơ, công suất điện của động cơ, tần số
Thiết kế và cài đặt thông số điều khiển dùng smartphone
Hình 3.2: Qui trình thiết kế cài đặt thông số điều khiển trên ứng dụng ĐTDĐ
Thiết kế Webserver điều khiển dùng máy tính
Hình 3.3: Qui trình cấu hình mở cổng server điều khiển trên máy tính
KẾT LUẬN VÀ KIẾN NGHỊ Kết luận
- Sau quá trình nghiên cứu, và triển khai thực nghiệm, tác giả nhận thấy đề tài đã đạt được mục tiêu đề ra là điều khiển và giám sát động cơ KĐB 3 pha thông qua hệ Iot và webserver
❖ Hạn chế khi áp dụng vào giảng dạy
- Về cơ bản ứng dụng Iot để điều khiển và giám sát hoạt động của động cơ KĐB 3 pha, tác giả sử dụng phần mềm và ứng dụng có sẵn cho phép dùng thử vì yếu tố bản quyền, nên chưa khai thác hết chức năng của thiết bị
❖ Hướng triển khai ứng dụng kết quả của đề tài
Từ những hạn chế trên, trong tương lai tác giả sẽ triển khai nghiên cứu chủ động thiết kế website điều khiển trên máy tính và viết ứng dụng điều khiển trên điện thoại Đồng thời, tác giả sẽ nghiên cứu các phương thức truyền nhận tín hiệu đa dạng hơn về phương pháp điều khiển như: giao thức RS485, Modbus … , thiết kế website dùng Html, Javascript, CSS, Python …, điều khiển đèn và giám sát băng tải, bồn trộn… Sản phẩm nghiên cứu có thể đực áp dụng cho giảng dạy các môn về lập trình Python, điện tử ứng dụng, Thực hiện dự án IoT, phát triển ứng dụng Web … của ngành Tự động hóa công nghiệp
[1] Bùi Văn Minh, Lập trình điều khiển xa với ESP8266- ESP32 và Arduino, Nhà Xuất Bản Thanh niên , 2019
[3] Vũ Quang Hồi, Trang Bị Điện-Điện Tử Công Nghiệp, NXB Giáo Dục, 2009
PHỤ LỤC CHƯƠNG TRÌNH ĐIỀU KHIỂN
Phụ lục 1: Chương trình chính điều khiển động cơ KĐB 3 pha
"JiuP0ov4o5LLgg5uHbTzTL594G1ayh1
//char auth[] BLYNK_AUTH_TOKEN;
// Set password to "" for open networks
#define BLYNK_PRINT Serial const int bt1 = 32;//nút nhấn Stop const int bt2 = 35;//nút nhấn Start const int bt3 = 34;//nut nhan
FWD/REV const int bt4 = 39;//nut nhan
Test_FWD const int bt5 = 36;//nut nhan
Test_REV const int speedPin = 33;// biến trở chỉnh tốc độ const int out1 = 5;//relay Stop const int out2 = 4;//relay Start const int out3 = 13;//relay FWD/REV const int out4 = 14;//relay Test_FWD const int out5 = 27;//relay Test_REV int speedValue = 0;//giá trị đo được boolean bt1State = HIGH; boolean bt2State = HIGH; boolean bt3State = HIGH; boolean bt4State = HIGH; boolean bt5State = HIGH;
WidgetLED ledConnect(V0); unsigned long timesBlinkLed=millis();
Serial.begin(115200); pinMode(bt1,INPUT_PULLUP); pinMode(bt2,INPUT_PULLUP); pinMode(bt3,INPUT_PULLUP); pinMode(bt4,INPUT_PULLUP); pinMode(bt5,INPUT_PULLUP); pinMode(out1,OUTPUT); pinMode(out2,OUTPUT); pinMode(out3,OUTPUT); pinMode(out4,OUTPUT); pinMode(out5,OUTPUT);
String(wifiMode)); if(wifiMode==1){ //Nếu đã kết nối được wifi thì kết nối blynk
Blynk.config(blynk_auth.c_str(),"blynk.c loud", 80);
Blynk.run(); if(millis()-timesBlinkLed>1000){ if(ledConnect.getValue()){ ledConnect.off();
} void checkButton(){ if(digitalRead(bt1)==LOW){ if(bt1State==HIGH){ digitalWrite(out1,!digitalRead(out1));
(out1)); delay(200); bt1State=LOW;
} if(digitalRead(bt2)==LOW){ if(bt2State==HIGH){ digitalWrite(out2,!digitalRead(out2));
Blynk.virtualWrite(RELAY2,digitalRead (out2)); delay(200); bt2State=LOW;
} if(digitalRead(bt3)==LOW){ if(bt3State==HIGH){ digitalWrite(out3,!digitalRead(out3));
Blynk.virtualWrite(RELAY3,digitalRead (out3)); delay(200); bt3State=LOW;
} if(digitalRead(bt4)==LOW){ if(bt4State==HIGH){ digitalWrite(out4,!digitalRead(out4));
Blynk.virtualWrite(RELAY4,digitalRead (out4)); delay(200); bt4State=LOW;
} if(digitalRead(bt5)==LOW){ if(bt5State==HIGH){ digitalWrite(out5,!digitalRead(out5));
(out5)); delay(200); bt5State=LOW;
// Request Blynk server to re-send latest values for all pins
BLYNK_WRITE(RELAY1){ int p = param.asInt(); digitalWrite(out1,p);
BLYNK_WRITE(RELAY2){ int p = param.asInt(); digitalWrite(out2,p);
BLYNK_WRITE(RELAY3){ int p = param.asInt(); digitalWrite(out3,p);
BLYNK_WRITE(RELAY4){ int p = param.asInt(); digitalWrite(out4,p);
BLYNK_WRITE(RELAY5){ int p = param.asInt(); digitalWrite(out5,p);
// Đọc giá trị analog speedValue analogRead(speedPin);
Phụ lục 2: Chương trình con ESP
String ssid_ap,pass_ap;
String user_login,pass_login;
String ssid_sta,pass_sta,blynk_auth; const byte btSetup; const byte ledSignal=2; byte ledValue=0; boolean btSetupState=HIGH; unsigned long times=millis(); boolean wifiMode=0; void readConfig(); void writeConfig(); void setupWifi(); void setupWebServer(); void checkBtReset(); class Config { public: void begin()
EEPROM.begin(512); pinMode(btSetup,INPUT_PULLUP); pinMode(ledSignal,OUTPUT); readConfig(); setupWifi(); setupWebServer();
} void run() { webServer.handleClient(); checkBtReset();
// - void writeString(int n, int m, String str){ if(str.length()>ĐIỀU KHIỂN ĐỘNG CƠ KĐB
window.onload=function(){ document.getElementById("btlogin").sty le.display="block"; document.getElementById("btupdate").st yle.display="none";
} var xhttp = new XMLHttpRequest(); function checkLogin(m){ user_login document.getElementById("user_login") value; pass_login document.getElementById("pass_login") value; xhttp.onreadystatechange function(){ if(xhttp.readyState==4&&xhttp.status= 200){ var loginState xhttp.responseText; if(loginState=="OK"){ sessionStorage.setItem("LOGIN_STATE
","1"); if(m=='1'){ window.location.assign('/'); }else{ document.getElementById("btlogin").sty le.display="none"; document.getElementById("btupdate").st yle.display="block";
} }else{ sessionStorage.setItem("LOGIN_STATE
} } } xhttp.open("GET","/checkLogin?user_lo gin="+user_login + "&pass_login=" + pass_login,true); xhttp.send();
} function saveLogin(){ user_login document.getElementById("user_login")
.value; pass_login document.getElementById("pass_login")
.value; xhttp.onreadystatechange function(){ if(xhttp.readyState==4&&xhttp.status=200){ alert(xhttp.responseText);
} xhttp.open("GET","/saveLogin?user_logi n="+user_login + "&pass_login=" + pass_login,true); xhttp.send();
} function showpass(m){ var temp document.getElementById(m); if(temp.type=="password"){ temp.type = "text";
Phụ lục 4: Chương trình con setupPage.h const char setupPage[] PROGMEM
ĐIỀU KHIỂN ĐỘNG CƠ
body{ background: #222222;
#main{ margin: 10px auto; width: 360px; color: white;
#content{ border: solid 1px white; width: 360px; float: left; border-radius: 5px;
} h3{ margin-top: 0px; margin-bottom: 0px;
} p{ margin-top: 10px; margin-bottom: 10px;
div1{ margin-left: 20px; float: left; margin-bottom: 10px;
div1 div{ margin-left: 20px;
input{ width: 230px; float: left;
} input[type="checkbox"]{ width: 20px; height: 20px; margin-top: 0px; float: left;
} input[type="button"]{ width: 90px; height: 50px; float: left; margin: 10px 5px; outline: none; text-align: center; white-space: normal; font-weight: bold;
THIẾT LẬP CẤU
hiện
10px;">CHẾ ĐỘ KẾT NỐI WIFI
Chọn mạng wifi
Hiện
>>ĐIỀU KHIỂN ĐỘNG CƠ KĐB
window.onload = function(){ if(sessionStorage.getItem("LOGIN_STA TE") != "1"){ window.location.assign('/login');
} } var xhttp = new XMLHttpRequest(); var ssid_ap, pass_ap, user_login, pass_login, ssid_sta, pass_sta, ssidList; function getConfig(){ xhttp.onreadystatechange function(){ if(xhttp.readyState==4 && xhttp.status= 0){
//alert(xhttp.responseText); var obj JSON.parse(xhttp.responseText); ssid_ap = obj.ssid_ap; pass_ap = obj.pass_ap; user_login = obj.user_login; pass_login = obj.pass_login; ssid_sta = obj.ssid_sta; pass_sta = obj.pass_sta; blynk_auth = obj.blynk_auth; document.getElementById("ssid_ap").va lue=ssid_ap; document.getElementById("pass_ap").va lue=pass_ap; if(ssid_sta!=null){ document.getElementById("ssid_sta").va lue = ssid_sta; document.getElementById("pass_sta").v alue = pass_sta; document.getElementById("blynk_auth"
} xhttp.open("GET","/getConfig",true); xhttp.send();
} function getWifiList(){ document.getElementById("ssid_ap").re adOnlyse; document.getElementById("pass_ap").re adOnlyse; document.getElementById("ssid_sta").re adOnlyse; document.getElementById("pass_sta").re adOnlyse; document.getElementById("blynk_auth"
).readOnlyse; document.getElementById("save").style. display="block"; document.getElementById("edit").style.d isplay="none"; xhttp.onreadystatechange function(){ if(xhttp.readyState==4 && xhttp.status= 0){
//alert(xhttp.responseText); var obj JSON.parse(xhttp.responseText); ssidList = obj.ssidList; var select document.getElementById("ssidList"); for(var i=0; i