CẢM BIẾN ĐO ĐỘ ẨM ĐẤT GỬI TÍN HIỆU LÊN BLYNK

10 382 9
CẢM BIẾN ĐO ĐỘ ẨM ĐẤT GỬI TÍN HIỆU LÊN BLYNK

Đang tải... (xem toàn văn)

Thông tin tài liệu

CẢM BIẾN ĐO ĐỘ ẨM ĐẤT GỬI TÍN HIỆU LÊN BLYNK SỬ DỤNG ARDUINO UNO R3 VÀ ESP8266

CẢM BIẾN ĐO ĐỘ ẨM ĐẤT GỬI TÍN HIỆU LÊN BLYNK ARDUINO UNO R3 Hình : Arduino Uno R3 Bảng 2.1: Thông số Arduino Vi điều khiển ATmega328 họ 8bit Điện áp hoạt động 5V DC (chỉ cấp qua cổng USB) Tần số hoạt động 16 MHz Dòng tiêu thụ khoảng 30Ma Điện áp vào khuyên dùng 7-12V DC Điện áp vào giới hạn 6-20V DC Số chân Digital I/O 14 (6 chân hardware PWM) Số chân Analog (độ phân giải 10bit) Dòng tối đa chân I/O 30 mA Dòng tối đa (5V) 500 mA Dòng tối đa (3.3V) 50 mA Bộ nhớ flash 32 KB (ATmega328) với 0.5KB SRAM KB (ATmega328) EEPROM KB (ATmega328) • Bộ nhớ + 32KB nhớ Flash: đoạn lệnh lập trình lưu trữ nhớ Flash vi điều khiển Thường có khoảng vài KB số dùng cho bootloader Trang CẢM BIẾN ĐO ĐỘ ẨM ĐẤT GỬI TÍN HIỆU LÊN BLYNK + 2KB cho SRAM (Static Random Access Memory): giá trị biến khai báo lập trình lưu khai báo nhiều biến cần nhiều nhớ RAM Tuy vậy, thực nhớ RAM lại trở thành thứ mà phải bận tâm Khi điện, liệu SRAM bị + 1KB cho EEPROM (Electrically Eraseble Programmable Read Only Memory): giống ổ cứng mini – nơi đọc ghi liệu vào mà lo bị cúp điện giống liệu SRAM • Ngõ Ra I/O Các cổng vào ra: Arduino UNO có 14 chân digital dùng để đọc xuất tín hiệu Chúng có mức điện áp 0V 5V với dòng vào/ra tối đa chân 40mA.Ở chân có điện trở pull-up từ cài đặt vi điều khiển ATmega328 (mặc định điện trở không kết nối) + chân Serial: (RX) (TX): dùng để gửi (TX) nhận (RX) liệu TTL Serial Arduino Uno giao tiếp với thiết bị khác thông qua chân Kết nối bluetooth thường thấy nói nơm na kết nối Serial khơng dây Nếu khơng cần giao tiếp Serial, không nên sử dụng chân không cần thiết + Chân PWM: 3, 5, 6, 9, 10, 11: cho phép xuất xung PWM với độ phân giải bit hàm analogWrite() Nói cách đơn giản, điều chỉnh điện áp chân từ mức 0V đến 5V thay cố định mức 0V 5V chân khác + Chân giao tiếp SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK) Ngoài chức thơng thường, chân cịn dùng để truyền phát liệu giao thức SPI với thiết bị khác + Arduino UNO R3 có chân analog ( A0 → A5 ) cung cấp độ phân giải tín hiệu 10bit (0 → 210-1) để đọc giá trị điện áp khoảng 0V → 5V + Đặc biệt, Arduino UNO R3 có chân A4 (SDA) A5 (SCL) hỗ trợ giao tiếp I2C/TWI với thiết bị khác Trang CẢM BIẾN ĐO ĐỘ ẨM ĐẤT GỬI TÍN HIỆU LÊN BLYNK MODULE CẢM BIẾN ĐỘ ẨM ĐẤT LM393 Hình : Module cảm biến độ ẩm đất Bộ sản phẩm gồm cảm biến độ ẩm đất module chuyển đổi với ngõ Analog - Digital Cảm biến độ ẩm đất hoạt động với chế độ ngõ (Analog & Digital), trạng thái đầu mức thấp (0V), đất thiếu nước đầu mức cao (5V) Hình : Cảm biến độ ẩm đất Hai đầu đo cảm biến cắm vào đất để phát độ ẩm Dùng dây nối cảm biến module chuyển đổi Thông tin độ ẩm đất đọc gởi tới module chuyển đổi Hình : Module chuyển đổi Module chuyển đổi có cấu tạo gồm IC so sánh LM393, biến trở , điện trở dán 100 ohm tụ dán Biến trở có chức định ngưỡng so sánh với tín hiệu độ ẩm đất đọc từ cảm biến Ngưỡng so sánh tín hiệu cảm biến đầu vào IC so sánh LM393 Khi độ ẩm thấp ngưỡng định trước, ngõ IC mức cao (1), ngược lại mức thấp (0) Trang CẢM BIẾN ĐO ĐỘ ẨM ĐẤT GỬI TÍN HIỆU LÊN BLYNK • Điện áp hoạt động: 3.3V-5V • Kích thước PCB: 3cm*1.6cm • Led báo hiệu: - Led đỏ báo nguồn - Led xanh báo mức độ ẩm pin DO • Mơ tả pin module Pin VCC GND DO Mơ tả 3.3V-5V GND Đầu tín hiệu số (0 1) AO Đầu Analog (tín hiệu tương tự) Ứng dụng Cảm biến độ ẩm đất sử dụng cho ứng dụng nơng nghiêp, tưới nước tự động cho vườn đất khô, dùng ứng dụng hệ thống nhà thơng minh MODULE WIFI ESP8266 NODEMCU Hình : Nodemcu ESP8266 ESP8266 dịng chip tích hợp Wi-Fi 2.4Ghz lập trình được.Hỗ trợ chuẩn giao tiếp UART, thích hợp giao tiếp với vi điều khiển để truyền tải liệu hay điều khiển thiết bị thơng qua WiFi có khả hoạt động độc lập với chân I/O (cho phép module kết nối trực tiếp với cảm biến, thiết bị ngoại vi điều khiển máy chủ thơng qua Wifi) có khả lưu trữ với nhớ Flash 1MB Trang CẢM BIẾN ĐO ĐỘ ẨM ĐẤT GỬI TÍN HIỆU LÊN BLYNK Hình : Sơ đồ chân esp8266 ❖ Thơng số phần cứng • 32-bit RISC CPU : Tensilica Xtensa LX106 chạy xung nhịp 80 MHz • Hổ trợ Flash ngồi từ 512KiB đến 4MiB • 64KBytes RAM thực thi lệnh • 96KBytes RAM liệu • 64KBytes boot ROM • Chuẩn wifi EEE 802.11 b/g/n, Wi-Fi 2.4 GHz Tích hợp TR switch, balun, LNA, khuếch đại cơng suất matching network Hổ trợ WEP, WPA/WPA2, Open network • Tích hợp giao thức TCP/IP • Hổ trợ nhiều loại anten • 16 chân GPIO • Hổ trợ SDIO 2.0, UART, SPI, I²C, PWM,I²S với DMA • ADC 10-bit • Dải nhiệt độ hoạt động rộng : -40C ~ 125C Trang CẢM BIẾN ĐO ĐỘ ẨM ĐẤT GỬI TÍN HIỆU LÊN BLYNK Có thể điều khiển ESP8266 từ mạng Wi-Fi cục bạn từ internet (sau chuyển tiếp cổng) Mơ-đun ESP-01 có chân GPIO lập trình để bật đèn LED rơle BẬT / TẮT qua internet Mơ-đun lập trình chuyển đổi Arduino / USB-to-TTL thơng qua chân nối tiếp (RX, TX) Hình : nguyên lý hoạt động ESP8266 ỨNG DỤNG BLYNK Hình : Logo ứng dụng Blynk Blynk ứng dụng chạy tảng iOS Android để điều khiển giám sát thiết bị thông qua internet Blynk không bị ràng buộc với phần cứng cụ thể cả, thay vào đó, hỗ trợ phần cứng cho lựa chọn Arduino,Raspberry Pi, ESP8266 nhiều module phần cứng phổ biến khác Trang CẢM BIẾN ĐO ĐỘ ẨM ĐẤT GỬI TÍN HIỆU LÊN BLYNK Hình : hoạt động blynk Có ba thành phần tảng: − Blynk App - cho phép tạo giao diện cho sản phẩm cách kéo thả widget khác mà nhà cung cấp thiết kế sẵn − Blynk Server - chịu trách nhiệm xử lý liệu trung tâm điện thoại, máy tính bảng phần cứng.Có thể sử dụng Blynk Cloud Blynk cung cấp tự tạo máy chủ Blynk riêng.Vì mã nguồn mở, nên dễ dàng intergrate vào thiết bị chí sử dụng Raspberry Pi làm server − Library Blynk – support cho hầu hết tất tảng phần cứng phổ biến cho phép giao tiếp với máy chủ xử lý tất lệnh đến Mỗi nhấn nút ứng dụng Blynk, yêu cầu chuyển đến server Blynk, server kết nối đến phần cứng thông qua library Tương tự thiết bị phần cứng truyền liệu ngược lại đến server ❖ Tính năng, đặc điểm + Cung cấp API & giao diện người dùng tương tự cho tất thiết bị phần cứng hỗ trợ + Kết nối với server cách sử dụng: • Wifi • Bluetooth BLE • Ethernet • USB (Serial) • GSM… Trang CẢM BIẾN ĐO ĐỘ ẨM ĐẤT GỬI TÍN HIỆU LÊN BLYNK + Các tiện ích giao diện nhà cung cấp dễ sử dụng + Thao tác kéo thả trực tiếp giao diện mà khơng cần viết mã + Dễ dàng tích hợp thêm chức cách sử dụng cổng kết nối ảo tích hợp blynk app + Theo dõi lịch sử liệu + Thông tin liên lạc từ thiết bị đến thiết bị Widget + Gửi email, tweet, thông báo realtime cập nhật tính liên tục SƠ ĐỒ LẮP ĐẶT Trang CẢM BIẾN ĐO ĐỘ ẨM ĐẤT GỬI TÍN HIỆU LÊN BLYNK CODE ARDUINO #include SoftwareSerial nodemcu(2,3); int cb = A1; int gtcb = 0; String cdata; void setup() {Serial.begin(9600); nodemcu.begin(9600); pinMode(cb, INPUT);} void loop() { gtcb = analogRead(msensor); Serial.println(gtcb); nodemcu.println(gtcb); delay(1000);} CODE NODEMCU #define BLYNK_PRINT Serial #include #include #include #include char auth[] = "-9gI6q_dkmfnffHUbj43tpZmhgMBPI2N"; char ssid[] = "PokerFace"; char pass[] = "123456780"; SimpleTimer timer; String myString; char rdata; int firstVal ; void myTimerEvent() { Blynk.virtualWrite(V1, millis() / 1000);} Trang CẢM BIẾN ĐO ĐỘ ẨM ĐẤT GỬI TÍN HIỆU LÊN BLYNK void setup() { Serial.begin(9600); Blynk.begin(auth, ssid, pass); timer.setInterval(1000L,sensorvalue1); } void loop() { if (Serial.available() == ) {Blynk.run(); timer.run();} if (Serial.available() > ) { rdata = Serial.read(); myString = myString+ rdata; if( rdata == '\n') {String l = getValue(myString, ',', 0); firstVal = l.toInt(); myString = "";}}} void sensorvalue1() {int sdata = firstVal; if ( sdata >= 500 ) {Blynk.notify("Tưới nước đêy ");} Blynk.virtualWrite(V2,sdata);} String getValue(String data, char separator, int index) { int found = 0; int strIndex[] = { 0, -1 }; int maxIndex = data.length() - 1; for (int i = 0; i

Ngày đăng: 19/11/2020, 14:52

Tài liệu cùng người dùng

Tài liệu liên quan