Quy trình thiết kế mơ hình

Một phần của tài liệu Mô hình vườn thông minh (Trang 42 - 78)

QUY TRÌNH THIẾT KẾ VƯỜN THƠNG MINH

4.1 Bo mạch ESP8266 NodeMCU

Tổng quát

Hình 4.1 Esp8266 NodeMCU [16]

NodeMCU là một nền tảng IoT mã nguồn mở giá rẻ . Nó ban đầu bao gồm firmware mà chạy trên ESP8266 Wi-Fi SoC từ Systems Espressif, và phần cứng được dựa trên các mơ-đun ESP-12. Sau đó, hỗ trợ cho MCU 32- bit ESP32 đã được thêm vào.

NodeMCU là một phần mềm cơ sở nguồn mở có sẵn các thiết kế bảng tạo mẫu mã nguồn mở . Tên "NodeMCU" kết hợp giữa " nút " và "MCU"

ĐỒ ÁN TỐT NGHIỆP MƠ HÌNH VƯỜN THƠNG MINH

Thuật ngữ "NodeMCU" nói đúng ra là đề cập đến phần sụn chứ không phải là bộ công cụ phát triển liên quan .

Cả phần sụn và thiết kế bảng tạo mẫu đều là mã nguồn mở.

Phần sụn sử dụng ngôn ngữ kịch bản Lua . Phần sụn dựa trên dự án eLua và được xây dựng trên Espressif Non-OS SDK cho ESP8266. Nó sử dụng nhiều dự án mã nguồn mở, chẳng hạn như lua-cjson và SPIFFS . Do hạn chế về tài nguyên, người dùng cần chọn các mô-đun phù hợp với dự án của họ và xây dựng một phần sụn phù hợp với nhu cầu của họ. Hỗ trợ cho ESP32 32-bit cũng đã được triển khai.

Phần cứng tạo mẫu thường được sử dụng là bảng mạch hoạt động như một gói nội tuyến kép (DIP) tích hợp bộ điều khiển USB với bảng gắn trên bề mặt nhỏ hơn có chứa MCU và ăng-ten. Sự lựa chọn của định dạng DIP cho phép tạo mẫu dễ dàng trên breadboards . Thiết kế ban đầu dựa trên mô-đun ESP-12 của ESP8266 , là một SoC Wi-Fi được tích hợp với lõi Tensilica Xtensa LX106, được sử dụng rộng rãi trong các ứng dụng IoT.

Wifi là mạng kết nối Internet không dây (WIreless FIdelity), sử dụng sóng vơ tuyến để truyền tín hiệu. Hầu hết các thiết bị hiện nay: laptop, điện thoại, máy tính, máy tính bảng,… đều có thể kết nối wifi dễ dàng.

Wifi dựa trên chuẩn kết nối IEEE 802.11 và hoạt động ở băng tần 54Mbps, tầm kết nối ổn định trong khoảng 100 feet (gần 31m) với điều kiện khơng có vật cản sóng.

Bộ phát Wifi chính là các thiết bị như modem, router. Đầu vào là tín hiệu Internet nguồn (được cung cấp bởi các đơn vị ISP như FPT, Viettel, VNPT, CMC… ..) Thiết bị modem, router sẽ lấy tín hiệu Internet qua kết nối hữu tuyến (có dây) rồi chuyển thành tín hiệu vơ tuyến và gửi đến các thiết bị sử dụng như điện thoại, , laptop, máy tính bảng,….

ĐỒ ÁN TỐT NGHIỆP MƠ HÌNH VƯỜN THƠNG MINH

Thiết bị nhận tín hiệu khơng dây (adapter) chính là card wifi trên điện thoại, laptop, máy tính bảng,… .và chuyển hóa thành tín hiệu Internet.

Wifi phức tạp hơn so với vơ tuyến mặt đất đó là nó sử dụng giao thức kết nối Internet (Internet Protocol) để giao tiếp. “Một q trình truyền dẫn mà chúng tơi gửi và nhận đều yêu cầu xác nhận”. Giao thức trên áp dụng cho mỗi byte được truyền đi.

Wifi có một số tính năng bảo mật. Để truy cập mạng, người dùng phải có mật khẩu WPA hay WPA2 ( số 2 đại diện cho thế hệ thứ 2 của WPA). Ngồi ra cịn có tính năng bảo mật khác gọi là Advanced Encryption Standard (AES) được phát triển bởi chính phủ Hoa Kỳ để đảm bảo cho dữ liệu được an tồn vì nó truyền từ một thiết bị khác.

ESP8266 NodeMCU khả năng hoạt động như một modem Wifi:

 Có thể quét và kết nối đến một mạng Wifi bất kì (Wifi Client) để thực hiện các tác vụ như lưu trữ, truy cập dữ liệu từ server.

 Tạo điểm truy cập Wifi (Wifi Access Point) cho phép các thiết bị khác kết nối giao tiếp và điều khiển.

 Là một server để xử lý dữ liệu từ các thiết bị sử dụng Internet khác ESP8266 NodeMCU nhận nguồn từ cổng micro USB tích hợp sẵn trên mạch, giúp việc nạp code trở nên dễ dàng hơn. Bên cạnh đó, việc cấp nguồn cho module cũng linh động hơn vì bạn có thể sử dụng sạc dự phịng thay cho nguồn từ USB trên máy tính (nguồn cấp tối đa là 5V). ESP8266 NodeMCU có thể cung cấp nguồn cho tối đa 4 thiết bị: 3 nguồn ra 3.3V và một nguồn từ chân Vin (điện thế bằng điện thế từ cổng micro USB). Khi sử dụng các chân cấp nguồn này, hãy luôn kiểm tra để chắc chắn không cắm nhầm chân dương (trên mạch in là 3v3 và Vin) và chân âm (GND). Tuy nhiên, 3 chân 3.3V đều được bảo vệ, khi cắm ngược cực, module sẽ chỉ nóng lên và dừng hoạt động. Chân Vin thì KHƠNG, cắm ngược cực ở chân này là module sẽ bị cháy. ESP8266 NodeMCU có tổng cộng 13 chân

ĐỒ ÁN TỐT NGHIỆP MƠ HÌNH VƯỜN THƠNG MINH

GPIO (General-purpose input/output) chân có thể truyền/nhận tín hiệu (trên mạch in từ DO đến D8 và RX, TX, SD2, SD3).

Sơ đồ chân :

ĐỒ ÁN TỐT NGHIỆP MƠ HÌNH VƯỜN THƠNG MINH

-Chúng ta biết rằng ở mỗi chân trên vi điều khiển có thể thực hiện nhiều chức năng khác nhau, NodeMCU có tổng cộng 13 chân GPIO tuy nhiên một số chân được dùng cho những mục đích quan trọng khác vì vậy chúng ta phải lưu ý khi sử dụng như sau:

 Tất cả các GPIO đều có trở kéo lên nguồn bên trong (ngoại trừ GPIO16 có trở kéo xuống GND). Người dùng có thể cấu hình kích hoạt hoặc khơng kích hoạt trở kéo này.

 GPIO1 và GPIO3: hai GPIO này được nối với TX và RX của bộ UART0, NodeMCU nạp code thông qua bộ UART này nên tránh sử dụng 2 chân GPIO này.

 GPIO0, GPIO2, GPIO15: đây là các chân có nhiệm vụ cấu hình mode cho ESP8266 điều khiển quá trình nạp code nên bên trong NodeMCU (có tên gọi là strapping pins) có các trở kéo để định sẵn mức logic cho chúng như sau: GPIO0: HIGH, GPIO2: HIGH, GPIO15: LOW. Vì vậy khi muốn sử dụng các chân này ở vai trò GPIO cần phải thiết kế một nguyên lý riêng để tránh xung đột đến quá trình nạp code.

 GPIO9, GPIO10: hai chân này được dùng để giao tiếp với External Flash của ESP8266 vì vậy cũng khơng thể dùng được.

-Chân được sử dụng trong khi khởi động

ESP8266 có thể bị ngăn khơng cho khởi động nếu một số chân được kéo MỨC THẤP hoặc MỨC CAO. Danh sách sau đây cho thấy trạng thái của các chân khi khởi động:

ĐỒ ÁN TỐT NGHIỆP MƠ HÌNH VƯỜN THƠNG MINH

GPIO0: lỗi khởi động nếu kéo mức thấp

GPIO2: chân ở mức cao khi khởi động, không khởi động được nếu kéo mức thấp GPIO15: lỗi khởi động nếu kéo mức cao

GPIO3: chân ở mức cao khi khởi động

GPIO1: chân ở mức cao khi khởi động, không khởi động được nếu kéo mức thấp GPIO10: chân ở mức cao khi khởi động

GPIO9: chân ở mức cao khi khởi động

-Chân mức cao khi khởi động

Có một số chân xuất ra tín hiệu 3.3V khi ESP8266 khởi động. Điều này sẽ là vấn đề cần phải quan tâm nếu bạn có relay hoặc thiết bị ngoại vi khác được kết nối với các GPIO đó. Các GPIO sau xuất tín hiệu mức cao khi khởi động:

GPIO16 GPIO3 GPIO1 GPIO10 GPIO9

Ngoài ra, các GPIO khác, ngoại trừ GPIO5 và GPIO4, có thể xuất ra tín hiệu điện áp thấp khi khởi động, có thể có vấn đề nếu chúng được kết nối với transistor hoặc relay.

-Đầu vào analog

ESP8266 chỉ hỗ trợ đọc analog trong một GPIO. GPIO đó được gọi là ADC0 và nó thường được đánh dấu trên màn lụa là A0.

Điện áp đầu vào tối đa của chân ADC0 là 0 đến 1V nếu bạn đang sử dụng chip trần ESP8266. Nếu bạn đang sử dụng bo phát triển như bộ ESP8266 12-E

ĐỒ ÁN TỐT NGHIỆP MƠ HÌNH VƯỜN THƠNG MINH

NodeMCU, thì dải điện áp đầu vào là 0 đến 3,3V vì bo này có bộ chia điện áp bên trong.

-Đèn LED trên bo mạch

Hầu hết các bo phát triển ESP8266 đều có đèn LED tích hợp. Đèn LED này thường được kết nối với GPIO2.

Đèn LED hoạt động với logic ngược. Gửi tín hiệu CAO để tắt và tín hiệu THẤP để bật.

-Chân RST

Khi chân RST được kéo THẤP, ESP8266 sẽ reset. Thao tác này cũng giống như nhấn nút reset trên bo mạch.

-GPIO0

Khi GPIO0 được kéo THẤP, nó sẽ đặt ESP8266 vào chế độ bộ nạp khởi động. Thao tác này cũng giống như nhấn nút FLASH / BOOT trên bo mạch.

-GPIO16

GPIO16 có thể sử dụng để đánh thức ESP8266 khỏi chế độ ngủ sâu. Để đánh thức ESP8266 khỏi chế độ ngủ sâu, GPIO16 phải được kết nối với chân RST.

-I2C

ESP8266 khơng có chân I2C phần cứng, nhưng nó có thể được triển khai trong phần mềm. Vì vậy, bạn có thể sử dụng bất kỳ GPIO nào làm I2C. Thông thường, các GPIO sau được sử dụng làm chân I2C:

GPIO5: SCL GPIO4: SDA

ĐỒ ÁN TỐT NGHIỆP MƠ HÌNH VƯỜN THƠNG MINH

Các chân được sử dụng làm SPI trong ESP8266 là:

GPIO12: MISO GPIO13: MOSI GPIO14: SCLK GPIO15: CS -Các chân PWM

ESP8266 cho phép phần mềm PWM ở tất cả các chân I / O: GPIO0 đến GPIO16. Tín hiệu PWM trên ESP8266 có độ phân giải 10-bit.

-Chân ngắt

ESP8266 hỗ trợ chân ngắt trong bất kỳ GPIO nào, ngoại trừ GPIO16. 2.1.3.Khai báo và sử dụng chức năng GPIO

Để lập trình sử dụng chức năng GPIO trên board NodeMCU có thể sử dụng các hàm sau:

pinMode(PIN_NUMBER, MODE);

Chức năng: Để khai báo sử dụng một chân là Input hoặc Output.

PIN_NUMBER: số thứ tự chân GPIO

MODE: INPUT, OUTUT, INPUT_PULLUP.

digitalRead(PIN_NUMBER);

Chức năng: đọc giá trị digital tại chân PIN_NUMBER PIN_NUMBER: số thứ tự chân GPIO

ĐỒ ÁN TỐT NGHIỆP MƠ HÌNH VƯỜN THƠNG MINH

digitalWrite(PIN_NUMBER, VALUE);

Chức năng: ghi mức điện áp VALUE ra chân PIN_NUMBER PIN_NUMBER: số thứ tự chân GPIO

VALUE: LOW hoặc HIGH

attachInterrupt(INTERRUPT_PIN, ISR, MODE);

Chức năng: khai báo sử dụng ngắt ngoài trên chân INTERUPT_PIN

INTERUPT_PIN:

Đối với NodeMCU: tất cả các GPIO ngoại trừ GPIO16 đều có hỗ trợ interrupt

ISR: chương trình ngắt, là một hàm do người dùng tự định nghĩa, hàm này sẽ được

gọi khi có ngắt xảy ra. Lưu ý: hàm ngắt là hàm khơng có giá trị truyền vào và khơng có giá trị trả về.

MODE: là thơng số định nghĩa khi nào ngắt được kích hoạt. Có 4 giá trị

sau:

LOW: kích hoạt ngắt khi giá trị logic tại chân là mức thấp HIGH: kích hoạt ngắt khi giá trị logic tại chân là mức cao

CHANGE: kích hoạt ngắt bất cứ khi nào giá trị logic tại chân thay đổi RISING: kích hoạt ngắt khi mức logic của chân thay đổi từ thấp sang cao FALLING: kích hoạt ngắt khi mức logic của chân thay đổi từ cao sang thấp

ĐỒ ÁN TỐT NGHIỆP MƠ HÌNH VƯỜN THƠNG MINH

detachInterrupt(INTERUPT_PIN);

Chức năng: tắt chức năng ngắt tại INTERUPT_PIN

Ví dụ: chương trình sử dụng chức năng interrupt để đảo trạng thái led

#define INTERRUPT_PIN 0 #define LED_PIN 16 void setup() {

pinMode(INTERRUPT_PIN, INPUT_PULLUP);

attachInterrupt(INTERRUPT_PIN, blinkLed, FALLING); pinMode(LED_PIN, OUTPUT); } void loop() { } void blinkLed() { digitalWrite(LED_PIN, !digitalRead(LED_PIN)); }

ĐỒ ÁN TỐT NGHIỆP MƠ HÌNH VƯỜN THƠNG MINH

4.2.Cảm biến nhiệt độ, độ ẩm DHT11

Hình 4.3 Cảm biến DHT11 [19]

- Cảm biến độ ẩm nhiệt độ DHT11 ra chân được tích hợp sẵn điện trở 5,1k giúp người dùng dễ dàng kết nối và sử dụng hơn so với cảm biến DHT11 chưa ra chân, module lấy dữ liệu thông qua giao tiếp 1 wire (giao tiếp 1 dây). Bộ tiền xử lý tín hiệu tích hợp trong cảm biến giúp có được dữ liệu chính xác mà khơng cần phải qua bất kỳ tính tốn nào. Module được thiết kế hoạt động ở mức điện áp 5VDC.

-Thông số kỹ thuật:

 Điện áp hoạt động: 5VDC  Chuẩn giao tiếp: TTL, 1 wire.

 Khoảng đo độ ẩm: 20%-80%RH sai số ± 5%RH  Khoảng đo nhiệt độ: 0-50°C sai số ± 2°C

ĐỒ ÁN TỐT NGHIỆP MƠ HÌNH VƯỜN THƠNG MINH

 Kích thước: 28mm x 12m - Nguyên lý hoạt động

Để đo độ ẩm, họ sử dụng thành phần cảm biến độ ẩm có hai điện cực với chất giữ ẩm giữa chúng. Vì vậy, khi độ ẩm thay đổi, độ dẫn của chất nền thay đổi hoặc điện trở giữa các điện cực này thay đổi. Sự thay đổi điện trở này được đo và xử lý bởi IC khiến cho vi điều khiển luôn sẵn sàng để đọc.

ĐỒ ÁN TỐT NGHIỆP MƠ HÌNH VƯỜN THƠNG MINH

Mặt khác, để đo nhiệt độ, các cảm biến này sử dụng cảm biến nhiệt độ NTC hoặc nhiệt điện trở. Một nhiệt điện trở thực sự là một điện trở thay đổi điện trở của nó với sự thay đổi của nhiệt độ. Những cảm biến này được chế tạo bằng cách thiêu kết các vật liệu bán dẫn như gốm hoặc polyme để cung cấp những thay đổi lớn hơn trong điện trở chỉ với những thay đổi nhỏ về nhiệt độ. Thuật ngữ có tên là “NTC” có nghĩa là hệ số nhiệt độ âm, có nghĩa là điện trở giảm khi nhiệt độ tăng.

ĐỒ ÁN TỐT NGHIỆP MƠ HÌNH VƯỜN THƠNG MINH

4.3 Cảm biến độ ẩm đất

Hình 4.6.Cảm biến độ ẩm đất [21]

Cảm biến độ ẩm đất Soil Moisture Sensor thường được sử dụng trong các mơ hình tưới nước tự động, vườn thông minh,..., cảm biến giúp xác định độ ẩm của đất qua đầu dò và trả về giá trị Analog, Digital qua 2 chân tương ứng để giao tiếp với vi điều khiển để thực hiện vô số các ứng dụng khác nhau.

Thông số kỹ thuật:

 Điện áp làm việc 3.3V ~ 5V  Có lỗ cố định để lắp đặt thuận tiện  PCB có kích thước nhỏ 3.2 x 1.4 cmỗ

ĐỒ ÁN TỐT NGHIỆP MƠ HÌNH VƯỜN THƠNG MINH

4.4 Màn hình Nextion 3.5 inch NX4832T035

Hình 4.7.Mặt trước màn hình Nextion [22]

ĐỒ ÁN TỐT NGHIỆP MÔ HÌNH VƯỜN THƠNG MINH

-Màn hình Nextion NX4832T035 3.5 inch bao gồm một phần cứng (một loạt gồm TFT bảng) và một phần mềm ( Nextion phiên bản tiếng anh ). Bảng mạch Nextion TFT chỉ sử dụng một cổng nối tiếp để liên lạc. Nó cho phép người dùng tránh những rắc rối của hệ thống dây điện. Chúng tôi nhận thấy rằng hầu hết các kỹ sư dành nhiều thời gian để phát triển ứng dụng nhưng nhận được kết quả không đạt yêu cầu. Để giải quyết tình huống này, trình soạn thảo Nextion có các thành phần lớn như nút, văn bản, thanh tiến trình, thanh trượt, bảng điều khiển, vv để làm phong phú thiết kế giao diện. Hơn nữa, chức năng kéo và thả đảm bảo rằng người dùng dành ít thời gian hơn cho việc lập trình, điều này sẽ giảm 99% khối lượng cơng việc phát triển của họ.

-Tính năng màn hình:

 Giao tiếp UART, với chỉ 2 dây tín hiệu (TX, RX) rất dễ dàng giao tiếp và điều khiển.

 Phần phểm thiết kế giao diện trên máy tính Nextion Editor trực quan và dễ sử dụng, giao tiếp với màn hình qua giao tiếp UART

 Có bộ nhớ lưu trữ và xử lý hình ảnh, tích hợp khe thẻ nhớ, nên giảm thiểu được hầu hết các tác vụ về xử lý hình cho mạch điều khiển trung tâm, chỉ truyền về trung tâm các dữ liệu thao tác cảm ứng.

 Thiết kế cảm ứng điện trở giúp dễ dàng thao tác khi mang găng tay trong môi trường lao động.

ĐỒ ÁN TỐT NGHIỆP MƠ HÌNH VƯỜN THƠNG MINH

-Thơng tin chung

Hình 4.10.Thơng số kỹ thuật màn hình [25] -Mơi trường làm việc -Môi trường làm việc

ĐỒ ÁN TỐT NGHIỆP MƠ HÌNH VƯỜN THƠNG MINH

-Thông số kỹ thuật

ĐỒ ÁN TỐT NGHIỆP MƠ HÌNH VƯỜN THƠNG MINH

-Hiệu suất giao diện

Hình 4.12.Hiệu suất giao diện của màn hình [27] -Bộ nhớ -Bộ nhớ

ĐỒ ÁN TỐT NGHIỆP MƠ HÌNH VƯỜN THƠNG MINH

4.5 Module 4 relay Opto cách ly 5VDC

Hình 4.14 Module 4 relay [29]

Module 4 relay thích hợp cho các ứng dụng đóng ngắt điện thế cao AC hoặc DC, các thiết bị tiêu thụ dòng lớn, module thiết kế nhỏ gọn, có opto và transistor cách ly, kích đóng bằng mức thấp (0V) phù hợp với mọi loại MCU và thiết kế có thể sử dụng nguồn ngoài giúp cho việc sử dụng trở nên thật linh động và dễ dàng.

-Thông số kỹ thuật:

 Sử dụng điện áp ni 5VDC.

 4 Relay đóng ngắt ở điện thế kích bằng 0V nên có thể sử dụng cho cả tín hiệu

Một phần của tài liệu Mô hình vườn thông minh (Trang 42 - 78)

Tải bản đầy đủ (PDF)

(102 trang)