- Đây mạch tích hợp với bộ xử lý chính là module ESP32 + Camera OV2640 được sử dụng trong các ứng dụng truyền hình ảnh, xử lý ảnh qua Wifi, Bluetooth hoặc các ứng dụng IoT.
❖ Thông số kỹ thuật:
Tên Mô tả
Điện áp cung cấp 5V
Bộ nhớ ngoài Khe cắm thẻ microSD lên đến 4GB Bluetooth Chuẩn Bluetooth 4.2 BR/EDR và BLE
Wifi 802.11 b/g/n
Interface UART, SPI, I2C, PWM
Tốc độ truyền UART 115200 bps
25 ❖ Các chân của ESP-32 CAM:
Hình 4.4. Sơ đồ chân của module ESP-32 CAM (Nguồn: Internet)
- Chân nguồn (power pin):
+ ESP32-CAM có 3 chân GND, 1 chân 3.3V và 1 chân 5V. Tuy nhiên ta nên sử dụng nguồn 5V để đảm bảo hoạt động ổn định.
+ Chân Vcc là chân nguồn output không nên sử dụng để cấp nguồn cho ESP32- CAM.
- 9 Chân I/O.
4.2.2. Cảm biến nhiệt không tiếp xúc MLX90614
26 ❖ Thông số kỹ thuật của cảm biến:
- Cảm biến nhiệt hồng ngoại không tiếp xúc MLX90614 được sử dụng để đo nhiệt độ của một đối tượng cụ thể trong khoảng từ -70oC đến 382.2oC, với độ phân giải đầu ra là 0,14 oC và mặc định POR là SMBus.
- Cảm biến sử dụng tia IR để đo nhiệt độ của đối tượng mà không cần tiếp xúc vật lý và được xây dựng từ 2 chip là:
+ Đầu báo nhiệt hồng ngoại MLX81101
+ Điều hồ tín hiệu ASSP MLX90302 được thiết kế đặc biệt đẻ xử lý đầu ra của cảm biến hồng ngoại.
- Cảm biến này giao tiếp với bộ vi điều khiển bằng giao thức I2C. - Khoảng cách giữa đối tượng và cảm biến: 2cm – 5cm.
❖ Các chân của cảm biến:
- Chân Vcc (VIN) - Chân Ground (GND)
- Chân SCL (Serial Clock) và chân SDA (Serial Data): hỗ trợ giao tiếp I2C.
4.2.3. Cảm biến siêu âm US – 015
Hình 4.6. Cảm biến nhiệt khoảng cách siêu âm US – 015 (Nguồn: Internet)
❖ Chức năng:
- Module đo khoảng cách siêu âm US-015 được sử dụng để nhận biết khoảng cách từ đối tượng đến cảm biến nhờ sóng siêu âm.
27 ❖ Thông số kỹ thuật:
- Module có khả năng thực hiện chức năng đo khoảng cách không tiếp xúc từ 2cm ~ 4m.
- Điện áp cung cấp là 5V, công suất tiêu thụ tĩnh nhỏ hơn 3mA. Module này hỗ trợ chế độ giao tiếp GPIO, chế độ này ổn định và đáng tin cậy với cơ quan giám sát. - Góc cảm biến: 15 đến 35 độ.
- Khoảng cách cảm biến: 0,75in (2cm) đến 13ft (4m).
- Sai số: 0.3cm (khoảng cách càng gần, bề mặt vật thể càng phẳng sai số càng nhỏ) - Độ chính xác: lên đến 0,04in (1,0mm).
4.2.4. Arduino Uno R3
- Arduino giống như một máy tính nhỏ để người dùng có thể lập trình và thực hiện các dự án điện tử mà khơng cần phải có các cơng cụ chun biệt để phục vụ việc nạp code.
- Arduino gồm:
+ Phần cứng gồm một board mạch mã nguồn mở có thể lập trình được.
+ Phần mềm hỗ trợ phát triển tích hợp IDE (Integrated Development Environment) dùng để soạn thảo, biên dịch code và nạp chương trình cho board.
28
❖ Các ngõ vào/ra của Arduino Uno R3:
Hình 4.7. Arduino Uno R3 (Nguồn: Internet)
- Chân xuất tín hiệu ra digital:
+ 2 chân Serial: 0 (RX) và 1 (TX): dùng để gửi (transmit – TX) và nhận (receive – RX) dữ liệu TTL Serial. Arduino Uno có thể giao tiếp với thiết bị khác thông qua 2 chân này.
+ Chân PWM (~): 3, 5, 6, 9, 10, và 11: cho phép bạn xuất ra xung PWM với độ phân giải 8bit (giá trị từ 0 → 28-1 tương ứng với 0V → 5V)
+ Chân giao tiếp SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Ngoài các chức năng thơng thường, 4 chân này cịn dùng để truyền phát dữ liệu bằng giao thức SPI với các thiết bị khác.
+ Chân lấy tín hiệu analog (A0 → A5): cung cấp độ phân giải tín hiệu 10bit (0 → 210-1) để đọc giá trị điện áp trong khoảng 0V → 5V.
+ Đặc biệt có 2 chân A4 (SDA) và A5 (SCL) hỗ trợ giao tiếp I2C/TWI với các thiết bị khác.
- Chân cấp nguồn cho cảm biến:
29
+ 5V: cấp điện áp 5V đầu ra. Dòng tối đa cho phép ở chân này là 500mA. + 3.3V: cấp điện áp 3.3V đầu ra. Dòng tối đa cho phép ở chân này là 50mA. + Vin (Voltage Input): để cấp nguồn ngoài cho Arduino UNO, nối cực dương
của nguồn với chân này và cực âm của nguồn với chân GND.
+ RESET: việc nhấn nút reset trên board để reset vi điều khiển tương đương với việc chân Reset được nối với GND qua 1 điện trở 10KΩ.
4.2.5. Động cơ Servo MG996R
Hình 4.8. Động cơ Servo MG996R (Nguồn: Internet)
❖ Chức năng:
- MG996R là phiên bản nâng cấp của MG995 có khả năng phản hồi nhanh hơn và mô-men xoắn lớn hơn.
- Giống như các RC servo khác, động cơ quay từ 0 đến 180 độ dựa trên chu kỳ hoạt động của sóng PWM được cung cấp cho chân tín hiệu của nó. Động cơ này có bánh răng được làm bằng kim loại cho độ kéo mạnh và độ bền cao.
❖ Thông số kỹ thuật:
- Kích thước sản phẩm: 40,7 x19,7 x 42.9mm
- Sản phẩm Rally: 9.4kg / cm (4.8V), 11kg / cm (6V)
30 - Điện áp làm việc: 4.8-7.2V
4.2.6. LCD 1602
Hình 4.9. LCD 1602 (Nguồn: Internet)
❖ Chức năng:
- Màn hình LCD 1602 sử dụng driver HD44780 có khả năng hiển thị 2 dịng với mỗi dịng 16 ký tự. Có các cổng song song nên sẽ điều khiển nhiều chân cùng lúc. - LCD 1602 có thể được phân loại thành các kết nối 8 cổng và 4 cổng. Nếu kết nối
8 cổng được sử dụng thì tất cả các cổng Digital của Arduino gần như bị chiếm hoàn toàn nên kết nối 4 cổng sẽ được sử dụng tốt hơn.
❖ Thông số kỹ thuật:
- Điện áp hoạt động là 5 V. - Kích thước: 80 x 36 x 12.5 mm.
- Khoảng cách giữa hai chân kết nối là 0.1inch tiện dụng khi kết nối với Breadboard. - Tên các chân được ghi ở mặt sau của màn hình LCD hổ trợ việc kết nối, đi dây
31
- Có đèn led nền, có thể dùng biến trở hoặc PWM điều chình độ sáng để sử dụng ít điện năng hơn.
- Có thể được điều khiển với 6 dây tín hiệu ❖ Sơ đồ chân của LCD:
- VSS: tương đương với GND - cực âm.
- VDD: tương đương với VCC - cực dương (5V). - Constrast Voltage (Vo): điều khiển độ sáng màn hình.
- Register Select (RS): điều khiển địa chỉ nào sẽ được ghi dữ liệu.
- Read/Write (RW): Bạn sẽ đọc (read mode) hay ghi (write mode) dữ liệu. - Enable pin: Cho phép ghi vào LCD.
- D0 - D7: 8 chân dư liệu, mỗi chân sẽ có giá trị HIGH hoặc LOW nếu bạn đang ở chế độ đọc (read mode) và nó sẽ nhận giá trị HIGH hoặc LOW nếu đang ở chế độ ghi (write mode).
- Backlight (Backlight Anode (+) và Backlight Cathode (-)): Tắt bật đèn màn hình LCD.
4.2.7. Giao tiếp I2C
Hình 4.10. Giao tiếp I2C (Nguồn: Internet)
❖ Chức năng:
- Một chuẩn giao tiếp nối tiếp 2 dây được gọi là I2C.
32
+ SDA là đường truyền cho master và slave để gửi và nhận tín hiệu, vì vậy dữ liệu được truyền từng bit dọc theo một đường duy nhất.
+ SDL là đường truyền xung nhịp để đồng bộ và chỉ theo 1 hướng.
4.2.8. Buzzer
Hình 4.11. Buzzer (Nguồn: Internet)
❖ Chức năng:
- Buzzer là một loại linh kiện phát âm thanh có thể chuyển tín hiệu điện thành tín hiệu âm thanh.
- Trong mơ hình, buzzer được sử dụng để báo động cho người dùng biết nhiệt độ vượt qua ngưỡng cho phép.
❖ Cấu tạo:
33 ❖ Thông số kỹ thuật:
Điện áp hoạt động 3V – 24V
Dòng hoạt động 20mA/5VDC.
Tần số cộng hưởng 3000Hz ±500Hz.
Đầu ra âm thanh tối thiểu 95dB/10cm
Nhiệt độ làm việc -20 oC đến 80 oC.
Bảng 4.2. Thông số kỹ thuật của buzzer
4.2.9. Module đồng hồ thời gian thưc RTC DS3231
- Module chịu trách nhiệm theo dõi thời gian chính xác, nó đi kèm với một pin dự phòng sẽ giữ cho RTC hoạt động ngay cả khi nguồn điện chính bị ngắt.
- Module RTC hoạt động trên giao thức I2C và kết nối với cùng một dây bus.
4.3. Giới thiệu các cơng cụ lập trình 4.3.1. Arduino IDE 4.3.1. Arduino IDE
Arduino IDE được viết tắt là Arduino Intergrated Development Environment, là một trình soạn thảo văn bản giúp ta viết code để nạp vào board mạch Arduino.
Bản thân Arduino là một nền tảng mã nguồn mở bao gồm phần cứng (bảng mạch lập trình) và phần mềm (IDE):
- Phần cứng bao gồm các board mạch được thiết kế sẵn với các cảm biển, linh kiện. - Phần mềm của Arduino giúp sử dụng các cảm biến, linh kiện đó một cách linh
hoạt.
Arduino IDE được viết bằng ngôn ngữ lập trình Java. Đây là ứng dụng đa nền tảng (cross – platform), ngơn ngữ code cho các chương trình của Arduino là C/C++.
Arduino IDE được tích hợp một thư viện phần mềm thường gọi là “wiring”, từ các chương trình “wiring” gốc sẽ giúp thực hiện thao tác code dễ dàng hơn. Một chương trình chạy trong Arduino được gọi là một sketch, chương trình được định dạng dưới dạng .ino .
34 ❖ Về giao diện: