CHƯƠNG 1 CƠ SỞ LÝ THUYẾT 1.1 Esp32 Pico Kit Esp32 Pico Kit là một mô-đun wifi phù hợp cho bất kì dự án nào cần tới một thứ có thể giám sát và kiểm soát mọi thứ từ mọi nơi trên thế giới - hoàn hảo cho bất kỳ dự án IoT (Internet Of Thing) nào.1 Esp32 Pico Kit. ESP32-PICO-KIT được sản xuất bởi Espressif. Cốt lõi của board mạch này là ESP32-PICO-D4, với đầy đủ chức năng Wi-fi và Bluetooth. ESP32-PICO-D4 tích hợp một số thành phần ngoại vi trên board, bao gồm bộ tạo dao động tinh thể 40 MHz, flash 4MB, tụ lọc và RF.
Điều này giúp giảm đáng kể số lượng và chi phí của các thành phần bổ sung, chi phí lắp ráp và thử nghiệm tiếp theo, độ phức tạp của sản phẩm. ESP sở hữu 1 lõi được gọi là chip ESP32-D0WDQ6. Chip nhúng được thiết kế để nâng cao khả năng mở rộng và tùy biến rất cao. Thiết kế ESP32 có 2 lõi CPU hoạt động 1 cách độc lập có thể dễ dàng điều khiển.
Tần số clock có thể điều chỉnh dễ dàng từ 80MHZ lên đến 240MHZ. Trong quá trình sử dụng người lập trình có thể tắt CPU để có thể sử dụng thiết bị ở chế độ công suất thấp. Qua đó theo dõi được sự thay đổi và vượt ngưỡng. 12 ESP32 được tích hợp các bộ tương tác ngoại vi khá phong phú như: cảm biến Hall, cảm biến điện dung, SD card, SPI tốc độ cao, I2S, I2C hay SPI tốc độ cao.
Thông số kĩ thuật: - Nhà sản xuất: Espressif - Danh mục sản phẩm: WiFi Development Tools (802.11) - Sản phẩm: Development Kits - Giao thức được hỗ trợ: 802.5 GHz - Điện áp hoạt động: 3.3 V, 5 V - Kích thước: 52 mm x 20.3 mm x 10 mm - CNHTS: 8543909000 - HTS Code: 8517620090 - Loại sản phẩm: WiFi Development Tools CPU: Được đặt tên là “PRO_CPU” và “APP_CPU” Xtensa Dual-Core LX6. Khi chúng ta dùng FreeRTOS sẽ ứng với Core 0 và Core 1 (protocol cpu và application cpu). CPU ESP32 - 32 bit - Tốc độ xử lý từ 160MHZ đến 240MHz - Tốc độ xung nhịp từ 40mhz đến 80mhz (có thể tùy chỉnh khi lập trình) - ROM:448 Kbyte ROM - 4MB external FLASH - RAM: 520 K-Byte SRAM. 520 KB SRAM liền chip.
Trong đó có 8KB RAM RTC sử dụng được tốc độ cao. 8KB RAM RTC chỉ sử dụng được tốc độ thấp để dùng ở chế độ DeepSleep. Ngoại Vi: Có 18 kênh – bộ chuyển đổi ADC – Analog-to-Digital, 3xSPI, 3xUART, 2xI2C, 16 kênh đầu ra PWM, 2 Bộ chuyển đổi DAC- Digital-to-Analog, 2 x I2S, 10 GPIO cảm biến điện dung. Các tính năng của ADC và DAC sẽ được gán trực tiếp vào các chân cố định.
Tuy nhiên, người dùng có thể lựa chọn các chân như SPI, PWM, UART, I2C, v. Chúng ta có thể dễ dàng làm điều này bằng việc khai báo chân trong 13 code. Việc này được phép thực hiện nhờ tính năng ghép kênh của chip ESP32. VD: Các chân từ 34 39 là các chân Input only pins vì thế người dùng không thể thiết lập chúng là chân Output.
Ultra-Low Power: Đối với các thiết bị điện vấn đề năng lượng hết sức quan trọng. Đối với ESP32 năng lượng cũng khá hạn chế khi nó tương đối ngốn điện - Sleep mode : Đây là trạng thái tiết kiệm năng lượng của ESP32. Lúc này ESP chỉ cung cấp đủ năng lượng cho RAM để lưu trữ dữ liệu - Modem Sleep : Đây là chế độ hoạt động của tất cả các tính năng. Lúc này chip yêu cầu điện 240mA.
Khi có nhu cầu sử dụng cả Bluetooth và wifi dòng điện cần thiết lên đến tối đa 790mA. - Light Sleep : Đây là chế độ hoạt động khi tắt hết CPU, Wifi, BLE và RAM chúng được định mức clock. Dòng tiêu thụ khoảng 0. - Deep Sleep : Đây là chế độ ngủ sâu.
Tất cả CPU, RAM và các cảm biến ngoại ngoại vi đều tắt. Một số thành phần của chip vẫn được bật: ngoại vi RTC, bộ điều khiển RTC và RTC memories. Dòng tiêu thụ 15µA 0. - Hibernate: Tất cả mọi thứ khác đều bị tắt.
Ngoại trừ một GPIO RTC đang hoạt động và bộ đếm thời gian RTC. Chúng có trách nhiệm phục hồi đánh thức chip ra khỏi chế độ Hibernate Wi-Fi: - 802. ESP32 có khả năng kết nối đến các điểm truy cập. - Trở thành 1 điểm truy cập (Access Point mode hay Soft-AP).
Lúc thành ESP trở thành trung tâm kết nối liên kết thông tin. Các Station kết nối với Access-Point chính là ESP32 tạo nên - AP-STA mode ESP32 có thể đồng thời là điểm truy cập và có thể truy cập đến địa chỉ khác Bluetooth: BLE và v4. Việc hỗ trợ cả bluetooth khiến tăng tính tương tác cho ESP32. Chúng có thể kết nối với các thiết bị như là chuột, bàn phím, hay các thiết 14 bị thông minh như điện thoại, laptop khi mà không có Wi-Fi.
Bạn có thể lựa chọn tùy biến chức năng này là BLE hay Bluetooth Classic. Tùy theo các yêu cầu về tốc độ và năng lượng mà project cần thiết. Sơ đồ chân: ESP32 NodeMCU có tổng cộng 30 chân GPIO, điện áp logic là 2,7 đến 3,3 V, 1 Enable Button (Chân reset) và 1 User Button(GPIO 0). Led báo nguồn và User Led (GPIO 2), 3 UART: Serial Debug mặc định là UART 0 và clock: 240MHz Hình 4.2 Sơ đồ chân Esp32 Pico Kit Input Only Pins: GPIO 34 đến 39 – input only pins.
Các chân này không có nội trở kéo lên hoặc kéo xuống. Chúng không thể được sử dụng làm output, vì vậy chỉ sử dụng các chân này làm input: GPIO 34, GPIO 35, GPIO 36 và GPIO39 GND: là một chân nối đất của ESP 32 NodeMCU. Chân I2C: được sử dụng để kết nối tất cả các loại cảm biến và thiết bị ngoại vi I2C trong dự án của bạn. Cả I2C Master và I2C Slave đều được hỗ trợ.
Chức năng giao diện I2C có thể được hiện thực hóa bằng lập trình và tần số xung nhịp tối đa là 100 kHz. Cần lưu ý rằng tần số xung nhịp I2C phải cao hơn tần số xung nhịp chậm nhất của thiết bị phụ. 15 Kênh ADC: ESP32 có 18 kênh input ADC và độ phân giải 12 bit (trong khi ESP8266 chỉ có 1 kênh ADC độ phân giải 10 bit). Chân I2C: ESP32 có hai kênh I2C và bất kì chân nào cũng có thể cấu hình làm chân SDA và SCL.
Khi sử dụng ESP32 với Arduino IDE, chân I2C mặc định là: GPIO 21 (SDA) và GPIO 22 (SCL) Chân SPI: ESP32 có module giao tiếp SPI với thiết bị ngoại vi, gọi là SPI0, SPI1, HSPI, VSPI. SPI0 chỉ dành riêng để kết nối bộ nhớ flash của ESP32 với các thiết bị bố nhớ flash khác bên ngoài. SPI1 được kết nối cũng tương tự như SPI0 nhưng nó dùng để ghi dữ liệu cho bộ nhớ Flash của chip. HSPI và VSPI và sử dụng tự do.
SPI1 và HSPI và VSPI đều có 3 cổng kết với chip, giúp chúng ta dễ dàng kết nối đồng thời với 3 slave bằng giao tiếp SPI mà ESP32 sẽ là thiết bị master. Chân PWM: Bộ điều khiển ESP32 LED PWM có 16 kênh độc lập có thể được cấu hình để tạo tín hiệu PWM với các đặc tính khác nhau. Tất cả các chân có thể hoạt động như output đều có thể được sử dụng làm chân PWM (GPIO từ 34 đến 39 không thể tạo PWM).2 Cảm biến độ ẩm DHT11 DHT11 là một cảm biến kỹ thuật số giá rẻ để cảm nhận nhiệt độ và độ ẩm. Cảm biến này có thể dễ dàng giao tiếp với bất kỳ bộ vi điều khiển vi nào như Arduino, Raspberry Pi,.
để đo độ ẩm và nhiệt độ ngay lập tức. DHT11 là một cảm biến độ ẩm tương đối. Để đo không khí xung quanh, cảm biến này sử dụng một điện trở nhiệt và một cảm biến độ ẩm điện dung.3 Cảm biến nhiệt độ, độ ẩm DHT11 Cảm biến DHT11 bao gồm một phần tử cảm biến độ ẩm điện dung và một điện trở nhiệt để cảm nhận nhiệt độ. Tụ điện cảm biến độ ẩm có hai điện cực với chất nền giữ ẩm làm chất điện môi giữa chúng.
Thay đổi giá trị điện dung xảy ra với sự thay đổi của các mức độ ẩm. IC đo, xử lý các giá trị điện trở đã thay đổi này và chuyển chúng thành dạng kỹ thuật số. Để đo nhiệt độ, cảm biến này sử dụng một nhiệt điện trở có hệ số nhiệt độ âm, làm giảm giá trị điện trở của nó khi nhiệt độ tăng. Để có được giá trị điện trở lớn hơn ngay cả đối với sự thay đổi nhỏ nhất của nhiệt độ, cảm biến này thường được làm bằng gốm bán dẫn hoặc polymer.
Sơ đồ chân: Số chân Tên chân Mô tả 1 VCC Nguồn 3.5V 2 DATA Đầu ra cả nhiệt độ và độ ẩm thông qua dữ liệu nối tiếp 3 NC Không có kết nối và do đó không sử dụng 4 GND Nối đất Bảng 4.1 Sơ đồ chân cảm biến nhiệt độ, độ ẩm DHT11 Thông số kĩ thuật: - Điện áp hoạt động: 3V - 5V DC 17 - 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 1 lần) - Kích thước: 23 * 12 * 5 mm 1.3 Cảm biến nồng độ CO MQ7 Cảm biến khí CO MQ-7 là cảm biến bán dẫn có giá rẻ có khả năng phát hiện khí carbon monoxide có nồng độ từ 10 đến 1000 ppm. Vật liệu tạo ra cảm biến là từ chất SnO2, có độ dẫn điện thấp trong không khí sạch.4 Cảm biến chất lượng không khí MQ7 Thông số kĩ thuật: - Điện áp cung cấp: 3 ~ 5V DC. 18 - Sử dụng chip so sánh LM393 và MQ-7. - Hai dạng tín hiệu đầu ra (digital và analog).
- Tín hiệu analog từ 0~5V. - Dải phát hiện từ 10 đến 1000ppm. - Công suất tiêu thụ: khoảng 350mW. - Nhiệt độ hoạt động: -10C đến 50C.
- Kích thước: 33 x 20 x 16mm. - Khoảng đo rộng - Bền, tuổi thọ cao - Phát hiện nhanh, độ nhạy cao ppm là gì? ===> ppm là đơn vị đo mật độ thường dành cho các mật độ TƯƠNG ĐỐI THẤP. Nó thường chỉ tỷ lệ của lượng một chất trong tổng số lượng của hỗn hợp chứa chất đó (Ở đây là hỗn hợp không khí). Ở đây lượng có thể hiểu là khối lượng, thể tích, số hạt (số mol),.
Khi dùng cần chỉ rõ lượng là gì. Sơ đồ chân: Số chân Tên chân Mô tả 1 VCC Nguồn 3.5V 2 DO Digital Output 3 AO Analog Output 4 GND Nối đất Bảng 4.2 Sơ đồ chân cảm biến chất lượng không khí MQ7 1.