HỆ THỐNG TƯỚI TIÊU TỰ ĐỘNG + FILE CODE Các cảm biến thu dữ liệu độ ẩm, nhiệt độ, ánh sáng, độ ẩm đất từ ngoài môi trường rồi gửi cho vi điều khiển. Vi điều khiển nhận vừ gửi dữ liệu sang ESP8266 bằng UART. Esp8266 ngận dữ liệu các thông số và gửi lên Web sever. Sever lấy dữ liệu lưu vào Database đồng thười gửi lên Web để hiển thị • Cảm biến DHT11 giao tiếp với STM32 bằng giao tiếp One Wire • Cảm biến ánh sáng, độ ẩm đất sử dụng chuyển đổi ADC gửi thông số về cho STM32 • STM32 gửi dữ liệu qua ESP8266 bằng UART • STM32 điều khiển các thiết bị bằng chân IO • ESP8266 gửi dữ liệu lên Web sever bằng giao thức MQTT qua Wifi • Web sever lưu dữ liệu vào MySQL và gửi lên Web bằng API
HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG KHOA KỸ THUẬT ĐIỆN TỬ BÁO CÁO HỆ THỐNG TƯỚI TIÊU TỰ ĐỘNG Môn: Hệ Thống nhúng Hà Nội - 2022 | 32 Mục lục I SƠ ĐỒ KHỐI II GIỚI THIỆU LINH KIỆN STM32F103C8T6 2 ESP8266 DHT11 Module cảm biến độ ẩm đất Module cảm biến ánh sáng 10 III CÁC GIAO TIẾP SỬ DỤNG 11 Hệ điều hành FREERTOS 11 Chuyển đổi ADC 16 Giao tiếp One Wire 18 Giao tiếp UART 21 Giao tiếp MQTT 24 Giao tiếp API 27 IV HOẠT ĐỘNG CỦA HỆ THỐNG 28 Phương thức hoạt động 28 Lưu đồ thuật toán 28 PCB 30 Mạch chạy 30 Hiển thị liệu lên Web (Demo) 31 V ỨNG DỤNG 31 | 32 I II SƠ ĐỒ KHỐI GIỚI THIỆU LINH KIỆN STM32F103C8T6 STM32 dòng chip phổ biến ST với nhiều họ thông dụng F0,F1,F2,F3,F4… Stm32f103 thuộc họ F1 với lõi ARM COTEX M3 STM32F103 vi điều khiển 32 bit, tốc độ tối đa 72Mhz Giá thành rẻ so | 32 với loại vi điều khiển có chức tương tự Mạch nạp cơng cụ lập trình đa dạng dễ sử dụng Một số ứng dụng chính: dùng cho driver để điều khiển ứng dụng, điều khiển ứng dụng thông thường, thiết bị cầm tay thuốc, máy tính thiết bị ngoại vi chơi game, GPS bản, ứng dụng công nghiệp, thiết bị lập trình PLC, biến tần, máy in, máy quét, hệ thống cảnh báo, thiết bị liên lạc nội bộ… Phần mềm lập trình: có nhiều trình biên dịch cho STM32 IAR Embedded Workbench, Keil C… Ở sử dụng Keil C nên viết sau đề cập đến Keil C Thư viện lập trình: có nhiều loại thư viện lập trình cho STM32 như: STM32snippets, STM32Cube LL, STM32Cube HAL, Standard Peripheral Libraries, Mbed core Mỗi thư viện có ưu khuyết điểm riêng, xin phép sử | 32 dụng Standard Peripheral Libraries đời lâu thông dụng, hỗ trợ nhiều ngoại vi dễ hiểu rõ chất lập trình Mạch nạp: có nhiều loại mạch nạp : ULINK, J-LINK , CMSIS-DAP, STLINK… sử dụng Stlink giá thành rả debug lỗi tốt Cấu hình chi tiết STM32F103C8T6: • ARM 32-bit Cortex M3 với clock max 72Mhz • Bộ nhớ: • • • • o 64 kbytes nhớ Flash (bộ nhớ lập trình) o 20 kbytes SRAM Clock, reset quản lý nguồn o Điện áp hoạt động 2.0V -> 3.6V o Power on reset (POR), Power down reset (PDR) programmable voltage detector (PVD) o Sử dụng thạch anh từ 4Mhz -> 20Mhz o Thạch anh nội dùng dao động RC mode 8Mhz 40khz o Sử dụng thạch anh 32.768khz sử dụng cho RTC Trong trường hợp điện áp thấp: o Có mode: ngủ, ngừng hoạt động hoạt động chế độ chờ o Cấp nguồn chân Vbat pin để hoạt động RTC sử dụng lưu trữ data nguồn cấp ADC 12 bit với kênh cho o Khoảng giá trị chuyển đổi từ – 3.6V o Lấy mẫu nhiều kênh kênh o Có cảm biến nhiệt độ nội DMA: chuyển đổi giúp tăng tốc độ xử lý khơng có can thiệp q sâu CPU | 32 • • o kênh DMA o Hỗ trợ DMA cho ADC, I2C, SPI, UART timer o timer 16 bit hỗ trợ mode IC/OC/PWM o timer 16 bit hỗ trợ để điều khiển động với mode bảo vệ ngắt input, dead-time o watdog timer dùng để bảo vệ kiểm tra lỗi o sysTick timer 24 bit đếm xuống dùng cho ứng dụng hàm Delay… Hỗ trợ kênh giao tiếp bao gồm: o I2C(SMBus/PMBus) o USART(ISO 7816 interface, LIN, IrDA capability, modem control) o SPIs (18 Mbit/s) o CAN interface (2.0B Active) o USB 2.0 full-speed interface Thơng số kỹ thuật: • Vi điều khiển: STM32F103C8T6 • Điện áp cấp 5VDC qua cổng Micro USB chuyển đổi thành 3.3VDC qua IC nguồn cấp cho Vi điều khiển • Tích hợp sẵn thạch anh 8Mhz • Tích hợp sẵn thạnh anh 32Khz cho ứng dụng RTC • Ra chân đầy đủ tất GPIO giao tiếp: CAN, I2C, SPI, UART, USB,… • Tích hợp Led trạng thái nguồn, Led PC13, Nút Reset • Kích thước: 53.34 x 15.24mm • Sử dụng với mạch nạp: | 32 o ST-Link Mini o J-link USB TO COM Kết nối chân nạp ST-Link Mini o • • Nạp theo chuẩn SWD o TCK — SWCLK o TMS — SWDIO o GND — GND o 3.3V — 3.3V ESP8266 ESP8266 mạch vi điều khiển giúp điều khiển thiết bị điện tử Thêm vào tích hợp wi-fi 2.4GHz dùng cho lập trình ESP8266 dùng làm module Wifi bên ngoài, sử dụng firmware tập lệnh AT tiêu chuẩn cách kết nối với vi điều khiển sử dụng UART nối tiếp trực tiếp làm vi điều khiển hỗ trợ Wifi, cách lập trình chương trình sở sử dụng SDK cung cấp | 32 Các chân GPIO cho phép IO Analog Digital, cộng với PWM, SPI, I2C, v.v ESP8266 có nhiều ứng dụng nói đến IoT Đây số chức mà chip sử dụng Kết nối mạng: Ăng-ten Wi-Fi module cho phép thiết bị nhúng kết nối với định tuyến truyền liệu Xử lý liệu: Bao gồm xử lý đầu vào từ cảm biến analog kỹ thuật số để tính tốn phức tạp nhiều với RTOS SDK hệ điều hành Kết nối P2P: Tạo giao tiếp trực tiếp ESP thiết bị khác kết nối IoT P2P Máy chủ Web: Truy cập trang viết HTML ngôn ngữ phát triển WiFi: 2.4 GHz hỗ trợ chuẩn 802.11 b/g/n - Điện áp hoạt động: 3.3V - Điện áp vào: 5V thông qua cổng USB - Số chân I/O: 11 (tất chân I/O có Interrupt/PWM/I2C/One-wire - Số chân Analog Input: (điện áp vào tối đa 3.3V) - Bộ nhớ Flash: 4MB - Giao tiếp: Cable Micro USB ( tương đương cáp sạc điện thoại ) - Hỗ trợ bảo mật: WPA/WPA2 - Tích hợp giao thức TCP/IP - Lập trình ngơn ngữ: C/C++, Micropython,… | 32 DHT11 DHT-11 module cảm biến nhiệt độ, độ ẩm có giao tiếp dây (one wire) Cấu tạo cảm biến gồm phần: điện trở nhiệt cảm biến độ ẩm điện dung Ngồi bên module cịn có mạch chuyển đổi tương tự sang số Cảm biến tích hợp tiền xử lý giúp cho liệu nhận xác mà khơng cần phải qua khâu phân tích hay tính tốn Các thơng số kỹ thuật module cảm biến nhiệt độ, độ ẩm DHT-11 cho sau: - Điện áp hoạt động +5Vdc Dòng điện hoạt động cực đại 2,5mA Dải độ ẩm hoạt động 20%÷90% RH, sai số ±4%RH (range humidity) Dải nhiệt độ hoạt động 0÷50℃, sai số ±2℃ Nhiệt độ độ ẩm có độ phân giải 16 bit Tốc độ lấy mẫu không 1Hz (mỗi giây lần) Tốc độ cảm nhận: trung bình 2s Khoảng cách truyền tối đa 20m Chân DATA nối với giắc cắm DATA KIT thí nghiệm IoT | 32 Module cảm biến độ ẩm đất Cảm biến chủ yếu sử dụng điện dung để đo hàm lượng nước đất (điện môi cho phép) Hoạt động cảm biến thực cách đưa cảm biến vào trái đất trạng thái hàm lượng nước đất báo cáo dạng phần trăm • Nguồn cấp 3.3~5 VDC • Đầu digital DO (0 1) • Đầu điện áp analog AO | 32 Thiết bị điện tử ngày hoàn toàn kỹ thuật số, khơng cịn thời kỳ máy tính analog Thật không may cho hệ thống kỹ thuật số, giới sống analog đầy màu sắc, khơng đen trắng Ví dụ, cảm biến nhiệt độ LM35 tạo điện áp phụ thuộc vào nhiệt độ, trường hợp thiết bị cụ thể tăng 10mV nhiệt độ tăng lên độ Nếu kết nối trực tiếp thiết bị với đầu vào kỹ thuật số, ghi cao thấp tùy thuộc vào ngưỡng đầu vào, điều hoàn tồn vơ dụng Thay vào đó, sử dụng ADC để chuyển đổi đầu vào điện áp analog thành chuỗi bit kết nối trực tiếp với bus liệu vi xử lý sử dụng để tính tốn ADC hoạt động Một cách hay để xem xét hoạt động ADC tưởng tượng chia tỷ lệ toán học Tỷ lệ ánh xạ giá trị từ dải sang dải khác, ADC ánh xạ giá trị điện áp sang số nhị phân Những cần thứ chuyển đổi điện áp thành loạt mức logic, ví dụ ghi Tất nhiên, ghi chấp nhận mức logic làm đầu vào, bạn kết nối tín hiệu trực tiếp với đầu vào logic, kết khơng tốt Vì cần có giao diện logic điện áp đầu vào analog Điện áp tham chiếu Tất nhiên, khơng có ADC tuyệt đối, điện áp ánh xạ tới giá trị nhị phân lớn gọi điện áp tham chiếu Ví dụ: chuyển đổi 10 bit với 5V làm điện áp tham chiếu, 1111111111 (tất bit một, số nhị phân 10 bit cao ) tương ứng với 5V 0000000000 (số thấp tương ứng với 0V) Vì vậy, bước nhị phân lên đại diện cho khoảng 4,9mV, có 1024 chữ số 10 bit Số đo điện áp bit gọi độ phân giải ADC 17 | 32 Điều xảy điện áp thay đổi 4,9mV bước? Nó đặt ADC vào vùng chết, kết chuyển đổi ln có lỗi nhỏ Có ngăn chặn lỗi cách sử dụng ADC có độ phân giải cao ví dụ ADC lên đến 24 bit, tần số chuyển đổi thấp Tốc độ mẫu Số lượng chuyển đổi từ analog sang kỹ thuật số mà chuyển đổi thực giây gọi tốc độ mẫu Ví dụ: ADC thực tốt có tốc độ mẫu 300Ms / s Đơn vị đọc megasamples giây, nghĩa triệu mẫu giây Lưu ý tiền tố SI áp dụng Tốc độ lấy mẫu phụ thuộc hồn tồn vào loại chuyển đổi độ xác cần thiết Nếu cần đọc xác, ADC thường dành nhiều thời gian để xem xét tín hiệu đầu vào (thường lấy mẫu giữ đầu vào tích hợp) khơng cần độ xác cao đọc nhanh Ngun tắc chung tốc độ độ xác tỷ lệ nghịch với nhau, điều quan trọng phải chọn ADC tùy thuộc vào ứng dụng Giao tiếp One Wire OneWire hệ thống bus giao tiếp thiết kế Dallas Semiconductor Corp Giống tên gọi, hệ thống bus sử dụng dây để truyền nhận liệu Chính sử dụng dây nên giao tiếp có tốc độ truyền thấp liệu lại truyền khoảng cách xa OneWire chủ yếu sử dụng để giao tiếp với thiết bị nhỏ, thu thập truyền nhận liệu thời tiết, nhiệt độ,… công việc không yêu cầu tốc độ cao 18 | 32 Giống chuẩn giao tiếp khác, 1-Wire cho phép truyền nhận liệu với nhiều Slave đường truyền Tuy nhiên có Master ( điểm giống với SPI) One Wire hoạt động ? So với chuẩn giao tiếp UART, SPI, I2C mà biết, cách thức hoạt động OneWire có “ lạ “ chút Như thấy hình trên, đường dây ln giữ mức cao (High) Các thao tác hoạt động bus quy định thời gian kéo đường truyền xuống mức thấp (Low) hình vẽ Có thao tác sau: 19 | 32 Gửi bit 1: Khi muốn gửi bit 1, thiết bị Master kéo bus xuống mức khoảng thời gian A (µs) trở mức khoảng B (µs) Gửi bit 0: Thiết bị Master kéo bus xuống mức khoảng thời gian C (µs) trở mức khoảng D (µs) Đọc bit: Thiết bị Master kéo bus xuống khoảng A (µs) Trong khoảng thời gian E (µs) tiếp theo, thiết bị master tiến hành lấy mẫu Có nghĩa E (µs) này, bus mức 1, thiết bị master đọc bit Ngược lại, bus mức master đọc bit Reset: Thiết bị Master kéo bus xuống khoảng thời gian H (µs) sau mức Khoảng thời gian gọi tín hiệu reset Trong khoảng thời gian I (µs) tiếp theo, thiết bị master tiến hành lấy mẫu Nếu thiết bị slave gắn với bus gửi tín hiệu 0, (tức bus mức 0), master hiểu slave có mặt trình trao đổi liệu lại tiếp tục Ngược lại slave gửi tin hiệu ( bus mức 1) master hiểu khơng có thiết bị slave tồn dừng trình 20 | 32 Giao tiếp UART UART hay thu-phát không đồng đa hình thức giao tiếp kỹ thuật số thiết bị với thiết bị đơn giản lâu đời Bạn tìm thấy thiết bị UART phần mạch tích hợp (IC) dạng thành phần riêng lẻ Các UART giao tiếp hai nút riêng biệt cách sử dụng cặp dẫn nối đất chung Chân Tx (truyền) chip kết nối trực tiếp với chân Rx (nhận) chip ngược lại Thơng thường, q trình truyền diễn 3.3V 5V UART giao thức master, slave, thiết bị thiết lập để giao tiếp với thiết bị khác Dữ liệu truyền đến từ UART song song với thiết bị điều khiển (ví dụ: CPU) Khi gửi chân Tx, UART dịch thông tin song song thành nối tiếp truyền đến thiết bị nhận UART thứ hai nhận liệu chân Rx biến đổi trở lại thành song song để giao tiếp với thiết bị điều khiển UART truyền liệu nối tiếp, theo ba chế độ: - Full duplex: Giao tiếp đồng thời đến từ master slave - Half duplex: Dữ liệu theo hướng thời điểm 21 | 32 - Simplex: Chỉ giao tiếp chiều Dữ liệu truyền qua UART tổ chức thành gói Mỗi gói chứa bit bắt đầu, đến bit liệu (tùy thuộc vào UART), bit chẵn lẻ tùy chọn bit dừng Bit bắt đầu: Đường truyền liệu UART thường giữ mức điện áp cao không truyền liệu Để bắt đầu truyền liệu, UART truyền kéo đường truyền từ mức cao xuống mức thấp chu kỳ clock Khi UART nhận phát chuyển đổi điện áp cao xuống thấp, bắt đầu đọc bit khung liệu tần số tốc độ truyền Khung liệu: Khung liệu chứa liệu thực tế chuyển Nó dài từ bit đến bit sử dụng bit chẵn lẻ Nếu không sử dụng bit chẵn lẻ, khung liệu dài bit Trong hầu hết trường hợp, liệu gửi với bit quan trọng trước tiên Bit chẵn lẻ: Bit chẵn lẻ cách để UART nhận cho biết liệu có liệu thay đổi trình truyền hay khơng Bit bị thay đổi xạ điện từ, tốc độ truyền không khớp truyền liệu khoảng cách xa Sau UART nhận đọc khung liệu, đếm số bit có giá trị kiểm tra xem tổng số số chẵn hay lẻ Nếu bit chẵn lẻ (tính chẵn), tổng bit khung liệu phải số chẵn Nếu bit chẵn lẻ (tính lẻ), bit khung liệu tổng thành số lẻ Khi bit chẵn lẻ khớp với liệu, UART biết q trình truyền khơng có lỗi Nhưng bit chẵn lẻ tổng số lẻ; bit chẵn lẻ tổng số chẵn, UART biết bit khung liệu thay đổi 22 | 32 Bit dừng: Để báo hiệu kết thúc gói liệu, UART gửi điều khiển đường truyền liệu từ điện áp thấp đến điện áp cao khoảng bit Có thể tóm tắt lại sau Q trình truyền liệu diễn dạng gói liệu, bắt đầu bit bắt đầu, đường mức cao kéo xuống đất Sau bit bắt đầu, năm đến chín bit liệu truyền khung liệu gói, theo sau bit chẵn lẻ tùy chọn để xác minh việc truyền liệu thích hợp Cuối cùng, nhiều bit dừng truyền nơi đường đặt mức cao Như kết thúc gói UART giao thức khơng đồng bộ, khơng có đường clock điều chỉnh tốc độ truyền liệu Người dùng phải đặt hai thiết bị để giao tiếp tốc độ Tốc độ gọi tốc độ truyền, biểu thị bit giây bps Tốc độ truyền thay đổi đáng kể, từ 9600 baud đến 115200 Tốc độ truyền UART truyền nhận chênh lệch khoảng 10% trước thời gian bit bị lệch xa Mặc dù UART giao thức cũ giao tiếp master slave nhất, dễ thiết lập linh hoạt Do đó, bạn gặp làm việc với dự án vi điều khiển UART phần hệ thống mà bạn sử dụng hàng ngày, mà bạn không nhận Ưu nhược điểm UART Khơng có giao thức truyền thơng hồn hảo, UART thực tốt công việc Dưới số ưu nhược điểm để giúp bạn định xem có phù hợp với nhu cầu bạn hay không - Ưu điểm Chỉ sử dụng hai dây Khơng cần tín hiệu clock Có bit chẵn lẻ phép kiểm tra lỗi Cấu trúc gói liệu thay đổi miễn hai bên thiết lập cho Phương pháp có nhiều tài liệu sử dụng rộng rãi 23 | 32 - Nhược điểm Kích thước khung liệu giới hạn tối đa bit Không hỗ trợ nhiều hệ thống slave nhiều hệ thống master Tốc độ truyền UART phải nằm khoảng 10% Giao tiếp MQTT MQTT (Message Queueing Telemetry Transport) giao thức mạng vậy, MQTT coi giao thức mạng kích thước nhỏ (lightweight) Giao thức truyền thông điệp/giao tiếp (message) MQTT tuân theo theo mơ hình publish/subscribe (xuất – theo dõi), sử dụng băng thơng thấp, độ tin cậy cao có khả hoạt động điều kiện đường truyền không ổn định Kiến trúc giao thức MQTT Kiến trúc mức cao MQTT gồm thành phần Broker Clients Broker coi trung tâm, điểm giao, trục giao với tất Clients Nhiệm vụ broker nhận giao tiếp từ thiết bị xuất hay hiểu đơn giản thiết bị tạo giao tiếp, xếp giao hàng đợi chuyển chúng tới địa cụ thể Nhiệm vụ phụ Broker đảm nhận thêm vài tính liên quan tới q trình truyền thơng như: bảo mật giao tiếp, lưu trữ giao tiếp, ghi lại lịch sử giao tiếp, … Client chia thành nhóm xuất giao tiếp theo dõi Client hoạt động thiết bị di dộng nên chúng thiết kế để hoạt động cách linh hoạt (lightweight) Client làm việc xuất giao tiếp lên kênh cụ thể theo dõi kênh để nhận thơng điệp từ kênh MQTT Clients tương thích với hầu hết tảng hệ điều hành có: MAC OS, Windows, LInux, Androids, iOS… 24 | 32 + Connect (kết nối): Thơng điệp có nhiệm vụ thông báo việc chờ kết nối thiết lập với máy chủ đồng thời tạo liên kết nút mạng từ thiết bị đến máy chủ.Các khái niệm MQTT - Cơ chế xuất theo dõi: Trong hệ thống sử dụng giao thức MQTT, nhiều node trạm (gọi mqtt client gọi tắt client) kết nối tới MQTT server (gọi Broker) Mỗi client đăng ký vài kênh (topic), ví dụ “/client1/channel1”, “/client1/channel2” Q trình đăng ký gọi “subscribe”, giống đăng ký nhận tin kênh Youtube Mỗi client nhận liệu trạm khác gởi liệu kênh đăng ký Khi client gởi liệu tới kênh đó, gọi xuất - MQTT Broker: phần mềm máy tính cho phép tạo máy chủ (server) kết nối MQTT client thiết bị nói chung mạng MQTT Borker “host” người vận hành hệ thống tự xây dựng bên thứ ba Các phần mềm thị trường xây dựng hai dạng mã nguồn triển khai 25 | 32 độc quyền cho trường hợp cụ thể Các Broker hoạt động trạm bưu điện nhận nội dung đến chuyển nội dụng không sử dụng địa client nhận điểm đến nội dung mà quản lý dạng kênh (topic) Các client muốn có nội dung cần đăng ký kênh đó, sau Broker nhận nội dung tự động chuyển đến client đăng ký, có nhiều client đăng ký kênh client đăng ký nhiều kênh khác trạm Broker Các client điểm sản xuất nội dung đồng thời đăng ký kênh client khác nội dung khác nội dung Hiện Broker triển khai vật lý đám mây, nhiên triển khai đám mây dễ hỗ trợ có Broker bị hỏng bị lỗi Broker quản lý, theo dõi phiên làm việc nội dung, kênh client có trao đổi nội dung Có thể tóm lại số ưu điểm Broker ưu điểm sử dụng giao thức MQTT là: + Quản lý, loại bỏ kết nối client mà có dấu hiệu nguy hiểm, dễ bị cơng khơng an tồn + Dễ dàng quản lý quy mô tổng thể mạng, dễ dàng mở rộng thu nhỏ tùy thuộc theo số thiết bị, số client, số kênh số Broker + Dễ dàng quản lý trạng thái thơng tin (chứng mạng, tình trạng bảo mật, xác thực bảo mật, kết nối hay nghỉ) client tham gia mạng + Giảm thiểu tình trạng tải hệ thống mạng, giảm thiểu nguy công tải truy cập + Giao tiếp (message): có định dạng mặc định plain-text (chữ viết người đọc được), nhiên người sử dụng cấu hình thành định dạng khác Có loại tin nhắn giao tiếp MQTT: + Disconnect (ngắt kết nối): Thơng điệp có nhiệm vụ thông báo việc chờ giao thức MQTT client hồn thành cơng việc ngắt kết nối 26 | 32 phiên làm việc TCP/IP máy chủ Broken với nút mạng thiết bị mạng + Publish: Thơng điệp có nhiệm vụ thơng báo đẩy gói tin vào luồng làm việc ứng dụng (application thread) đồng thời chuyển yêu cầu đến MQTT client sau khi thông báo đưa + Kênh (topic): "đường truyền" logic điểm xuất theo dõi Về bản, giao tiếp xuất vào kênh tất theo dõi topic nhận giao tiếp Giao thức MQTT cho phép khai báo topic kiểu phân cấp Giao tiếp API API phương thức, giao thức kết nối với thư viện ứng dụng khác Nó viết tắt Application Programming Interface – giao diện lập trình ứng dụng API cung cấp khả cung cấp khả truy xuất đến tập hàm hay dùng Và từ trao đổi liệu ứng dụng 27 | 32 Web API hoạt động nào? Đầu tiên xây dựng URL API để bên thứ ba gửi request liệu đến máy chủ cung cấp nội dung, dịch vụ thông qua giao thức HTTP HTTPS Tại web server cung cấp nội dung, ứng dụng nguồn thực kiểm tra xác thực có tìm đến tài nguyên thích hợp để tạo nội dung trả kết Server trả kết theo định dạng JSON XML thông qua giao thức HTTP/HTTPS Tại nơi yêu cầu ban đầu ứng dụng web ứng dụng di động , liệu JSON/XML parse để lấy data Sau có data thực tiếp hoạt động lưu liệu xuống Cơ sở liệu, hiển thị liệu… IV HOẠT ĐỘNG CỦA HỆ THỐNG Phương thức hoạt động Các cảm biến thu liệu độ ẩm, nhiệt độ, ánh sáng, độ ẩm đất từ ngồi mơi trường gửi cho vi điều khiển Vi điều khiển nhận vừ gửi liệu sang ESP8266 UART Esp8266 ngận liệu thông số gửi lên Web sever Sever lấy liệu lưu vào Database đồng thười gửi lên Web để hiển thị • Cảm biến DHT11 giao tiếp với STM32 giao tiếp One Wire • Cảm biến ánh sáng, độ ẩm đất sử dụng chuyển đổi ADC gửi thông số cho STM32 • STM32 gửi liệu qua ESP8266 UART • STM32 điều khiển thiết bị chân I/O • ESP8266 gửi liệu lên Web sever giao thức MQTT qua Wifi • Web sever lưu liệu vào MySQL gửi lên Web API Lưu đồ thuật toán 28 | 32 Giải thích • Đầu tiên hoạt động chương trình khởi tạo GPIO, Uart, ADC • Khởi tạo Task, hoạt động hệ điều hành FreeRtos (HĐH thời gian thực) nên chương trình chạy theo tác vụ (Task) • Khởi tạo Queue, Task đưa vào hàng đợi (Queue) để vi điều khiển xử lý • Task chuyển đổi ADC, giao tiếp DHT11, Uart STM32 sau gửi liệu vào hàng đợi • Chương trình nhận liệu từ Queue xử lý, gửi liệu qua cho esp8266 • ESP8266 gửi liệu lên web sever MQTT • Web sever lưu liệu vào Database gửi liệu hiwwnr thị lên Web • Tạo điều kiện để điều khiển thiết bị từ Web sever ➢ Độ ẩm đất < 50% => bật bơm > 50% => tắt ➢ Ánh sáng < 50% => bật đèn > 50% => tắt 29 | 32 PCB Mạch chạy 30 | 32 Hiển thị liệu lên Web (Demo) V ỨNG DỤNG Hệ thống sử dụng vườn rau có yêu cầu nghiêm ngặt nhiệt độ, độ ẩm ánh sáng giúp phát triển cách tốt Giảm bớt nhân công lao động , hoạt động khép kín nên rau đảm bảo an toàn Theo dõi thệ thống từ xa 31 | 32