THI CÔNG BOARD MẠCH

Một phần của tài liệu Thiết kế hệ thống điều khiển và giám sát nhà nấm sử dụng web server và SMS (Trang 66)

5.2.1. Mạch điều khiển trung tâm (chính)

58

Hình 5.2: Hình ảnh thực tế mạch điều khiển trung tâm (chính)

Mạch điều khiển trung tâm (chính) : bao gồm các mạch khác gắn trên nó như: Module SIM800C, Mạch RF, Mạch nguồn cấp và Chip trung tâm STM32F103 RBT6.

59

5.2.2. Mạch RF:

Hình 5.3: Mơ phỏng bằng Altium.

5.2.3. Module SIM 800C

60

5.2.4. Mạch chip trung tâm STM32F103 RBT6

Hình 5.5 Hình ảnh thực tế STM 32F103

5.2.5. Mạch nguồn

61

Trong quá trình test vận hành gặp xự cố, thời gian không đủ nhiều để đặt lại linh kiện từ nước ngoài về nên chuyển sang dùng mạng wifi bằng module MSP8266 thay cho mạng RFID dùng module C1310. Vận hành được việc giám sát và điều khiển web server nhưng mất tính năng SMS.

Module Wifi ESP8266 NodeMCU

Module Wifi ESP8266 NodeMCU Lua là kit phát triển dựa trên nền chip Wifi SoC ESP8266 với thiết kế dễ sử dụng và đặc biệt là có thể sử dụng trực tiếp trình biên dịch của Arduino để lập trình và nạp code, điều này khiến việc sử dụng và lập trình các ứng dụng trên ESP8266 trở nên rất đơn giản.

Module Wifi ESP8266 NodeMCU Lua được dùng cho các ứng dụng cần kết nối, thu thập dữ liệu và điều khiển qua sóng Wifi, đặc biệt là các ứng dụng liên quan đến IoT.

62

Sơ đồ đi dây toàn hệ thống

Tín hiệu từ cảm biến nhiệt độ DTH21 và cảm biến độ ẩm đất được truyền về chân D3 và A0 của MSP8266 sẽ được xử lý so sánh với các giá trị đã đặt trước để điều khiển ngõ ra đóng cắt Role thơng qua chân D7. Qúa trình xử lý sẽ được đưa lên và hiển thị trên Web server với ID HTTP://192.168.43.17/

63

5.3. ĐÓNG GĨI VÀ THI CƠNG MƠ HÌNH

64

65

5.4. LƯU ĐỒ GIẢI THUẬT CỦA HỆ THỐNG

5.5. LẬP TRÌNH VÀ TEST HỆ THỐNG 5.5.1. Tổng quan về phần mềm lập trình 5.5.1. Tổng quan về phần mềm lập trình

Giới thiệu phần mềm lập trình Arduino IDE

Mơi trường phát triển tích hợp (IDE) của Arduino là một ứng dụng đa nền tảng được viết bằng Java, và từ IDE này sẽ được sử dụng cho ngơn ngữ lập trình xử lý và Wiring. Nó được thiết kế để dành cho những người mới tập làm quen với lĩnh vực phát triển phần mềm.

Arduino IDE bao gồm một chương trình code editor với các chức năng như đánh dấu cú pháp, và tự động canh lề, cũng như biên dịch và upload chương trình lên board chỉ với 1 cú nhấp chuột.

Một chương trình hoặc code viết cho Arduino được gọi là một sketch. Arduino IDE có thể tải về miễn phí tại trang chủ của Arduino với phiên bản mới nhất là 1.8.9 hoặc người dùng có thể dùng trực tiếp phần mềm Arduino IDE trên giao diện web với tên gọi Arduino Web Editor.

66 (adsbygoogle = window.adsbygoogle || []).push({});

Hướng dẫn cài đặt phần mềm Arduino IDE

Truy cập địa chỉ: https://www.arduino.cc/en/Main/Software .

Hình 5.9 Các vùng giao diện cơ bản

Vùng lệnh: bao gồm các nút lệnh menu (File, Edit, Sketch, Tools, Help). Phía dưới là các icon cho phép sử dụng nhanh các chức năng thường dùng của IDE.

Vùng soạn thảo chương trình: vùng soạn thảo chương trình được mặc định bằng 2 chương trình là hàm setup() và hàm loop():

• setup (): hàm này chạy mỗi khi khởi động một chương trình, dùng để thiết lập các cài đặt và chỉ chạy 1 lần trong suốt chương trình.

• loop (): hàm này được chạy sau hàm setup() và được lặp đi lặp lại cho đến khi tắt nguồn hệ thống.

Vùng thông báo: là vùng thông báo cho người dung biết những lỗi trong chương trình. Nếu chương trình khơng có lỗi và được biên dịch thành cơng thì sẽ thông báo cho người dùng biết thông tin dung lượng file chương trình và bộ nhớ ram đã sử dụng.

67

5.5.2. CODE SỬ DỤNG TRONG ĐỀ TÀI

#include <DHT.h>

#include <ESP8266WiFi.h>

// #include "DHT.h" // DHT11 temperature and humidity sensor Predefined library

#define DHTTYPE DHT22 // DHT 11

//#define dht_dpin 0 //GPIO-0 D3 pin of nodemcu #define DHTPIN 4

int Raw = A0; //Analog channel A0 as used to measure temperature int threshold = 16; //Nodemcu digital pin water sensor read-GPIO16---D0 of NodeMCU

int Solenoid = 13; // GPIO13---D7 of NodeMCU--Motor connection

const char* ssid = "KLTN IUH"; // ten WIFI const char* password = "iuh12345"; // mat khau WIFI

//DHT dht(dht_dpin, DHTTYPE); DHT dht(DHTPIN, DHTTYPE); WiFiServer server(80); void setup(void) { dht.begin(); Serial.begin(9600); delay(10);

68

pinMode(threshold,INPUT_PULLUP); //Pin#13 as output-Activate pullup at pin 13

pinMode(Solenoid, OUTPUT); //D7 as output digitalWrite(Solenoid, LOW); //Deactivate Solenoid // Connect to WiFi network

Serial.println();

Serial.print("Connecting to "); Serial.println(ssid);

WiFi.begin(ssid, password); //Begin WiFi

while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected");

// Start the server server.begin();

Serial.println("Server started");

// Print the IP address on serial monitor Serial.print("Use this URL to connect: "); (adsbygoogle = window.adsbygoogle || []).push({});

Serial.print("http://"); //URL IP to be typed in mobile/desktop browser Serial.print(WiFi.localIP());

Serial.println("/"); }

69 void loop() {

// Check if a client has connected WiFiClient client = server.available(); if (!client) {

return; }

// Wait until the client sends some data Serial.println("new client");

while(!client.available()){ delay(1);

}

// Read the first line of the request

String request = client.readStringUntil('\r'); Serial.println(request);

client.flush();

float h =0.0; //Humidity level

float t =0.0; //Temperature in celcius float f =0.0; //Temperature in fahrenheit

float percentage = 0.0; // Calculating percentage of moisture float reading = 0.0; //Analog channel moisture read

// Match the request int value = LOW;

if (request.indexOf("/Up=ON") != -1) {

h = dht.readHumidity(); //Read humidity level

t = dht.readTemperature(); //Read temperature in celcius f = (h * 1.8) + 32; //Temperature converted to Fahrenheit

reading = analogRead(Raw); //Analog pin reading output voltage by water moisture rain sensor

70

if (reading<=110){ // If less mositure in soil start the motor otherwise stop digitalWrite(Solenoid, HIGH); value = HIGH; } else { digitalWrite(Solenoid, LOW); value = LOW; } if(t > 38) { digitalWrite(Solenoid, HIGH); } if(t < 35) { digitalWrite(Solenoid, LOW); } } if (request.indexOf("/Solenoid=ON") != -1) { //Motor ON digitalWrite(Solenoid, HIGH); value = HIGH; }

if (request.indexOf("/Solenoid=OFF") != -1) { //Motor OFF digitalWrite(Solenoid, LOW);

value = LOW; }

// Return the response

client.println("HTTP/1.1 200 OK"); client.println("Content-Type: text/html");

71 client.println(""); // do not forget this one client.println("<!DOCTYPE HTML>"); client.println("<html>");

client.println("<h1 align=center>Smart Garden - Weather Station</h1><br>"); client.println("<h3 align=center>GVHD: Th.S NGUYENDUCTOAN</h3>"); client.println("<h3 align=center>SVTH: CANH-KHANH </h3>");

client.print("Temperature in Celsius ="); client.println(t); //client.println(15); client.println("<br>"); client.print("Temperature in Fahrenheit ="); client.println(f); client.println("<br>"); client.print("Humidity ="); client.println(h); client.print(" %"); client.println("<br>"); client.println();

client.print("Moisture Level Percentage ="); client.print(percentage); (adsbygoogle = window.adsbygoogle || []).push({});

client.print("%");

if(digitalRead(threshold)==HIGH){ // Read digital output of soil sensor

client.println("Threshold Reached = Rain detected / Moisture exceeded / Water detected"); } client.println("<br><br>"); if(value == HIGH) client.println("Motor/Pump Operational");

72 else

client.print("Motor/Pump at Halt");

client.println("<br><br>");

client.println("<a href=\"/Up=ON\"\"><button>Update = Temperature Humidity Moisture Values</button></a><br />");

client.println("<a href=\"/Solenoid=ON\"\"><button>Motor Pump On </button></a>");

client.println("<a href=\"/Solenoid=OFF\"\"><button>Motor Pump Off </button></a><br />"); client.println("</html>"); delay(1); Serial.println("Client disonnected"); Serial.println(""); }

73

5.5.3. Tiến hành test hệ thống Địa chỉ kết nối Địa chỉ kết nối

Hình 5.10: Các trạng thái kết nối

Các bạn dùng trình duyệt web trên máy tính hay trên smartphone để tiến hành kết nối tới giao diện điều khiển hệ thống.

 HTTP://192.168.43.17/ truy cập bằng đường dẫn này để lien kết tới hệ thống

điều kiển không dây.

Giao diện khi kết nối:

74  Các tham số có trong giao diện:

 Temperrature in Celsius: Nhiệt độ hiện thời giá trị độ C  Temperrature in Fahrenheit: : Nhiệt độ hiện thời giá trị độ F  Humidity: Độ ẩm

 Moisture Level Percentage: Tỷ lệ % độ ẩm

 Update= Temperrature Humidity Moisture Values: cập nhật tự động các giá trị tham số mà cảm biến đo được lên hệ thống hiện thời.

 Motor Pump On: Bơm động cơ  Motor Pumo Off: Tắt động cơ

75

CHƯƠNG 6

KẾT QUẢ-NHẬN XÉT –ĐÁNH GIÁ

6.1. KẾT QUẢ:

Sau thời gian nghiên cứu và thực hiện thi công đề tài: “Thiết kế hệ thống điều khiển và giám sát nhà nấm sử dụng Web Server và SMS”.

Qua quá trình nghiên cứu và thực hiện đề tài, nhóm nhận thấy được đề tài có khả năng ứng dụng vào thực tiễn cao, đáp ứng được nhu cầu cải tiến khoa học kỹ thuật vào sản xuất nông nghiệp.

Đồng thời đề tài này cũng là một nguồn tài liệu có giá trị cho các bạn sinh viên những khóa tiếp theo có thể tham khảo khi nghiên cứu những đề tài có liên quan. Bên cạnh đó, nhóm cũng bổ sung cho mình những kiến thức hay và bổ ích.

Nội dung

 Nghiên cứu về mạch điều khiển trung tâm (adsbygoogle = window.adsbygoogle || []).push({});

 Nghiên cứu về cách truyền nhận dữ liệu trên UART  Nghiên cứu về module wifi ESP8266 Node MCU  Nghiên cứu về Module SIM800C

 Nghiên cứu về mạch RF C1310  Nghiên cứu về cảm biến độ ẩm đất

 Nghiên cứu về module cảm biến nhiệt độ DHT21  Nghiên cứu thiết kế mạch nguồn

6.1.1. Kết quả nghiên cứu

Biết xử lý tín hiệu các cảm biến

Các cảm biến được sử dụng trong đề tài này (DHT21, độ ẩm đất) là những cảm biến cần thiết trong cuộc sống. Có thể nói, các cảm biến ngày nay được sản xuất ngày một đơn giản và nhỏ gọn hơn, nhằm đáp ứng nhu cầu của người tiêu dùng. Quá trình nghiên cứu đề tài này đã giúp nhóm thực hiện nâng cao kỹ năng đọc – hiểu cảm biến, trau dồi thêm kiến thức về các loại cảm biến. Đặc biệt là, tăng khả năng vận dụng lý

76

thuyết vào thực tế, có khả năng lựa chọn được loại cảm biến phù hợp với từng yêu cầu của thực tiễn đời sống.

Biết sử dụng Module Wifi ESP8266

ESP8266 đang được sử dụng rất phổ biến trong các thiết bị giao tiếp với smartphone hay webserver thông qua Wifi nhờ giá thành rẻ, module nhỏ gọn và đặc biệt dễ sử dụng. Đây là cơng cụ cải tiến q trình giám sát từ khơng dây sang có dây, giúp ta hội nhập vào cuộc sống hiện đại ngày nay. Qua q trình nghiên cứu, nhóm đã biết cách sử dụng module này để giao tiếp truyền nhận dữ liệu với webserver, app android và WPF.

Biết sử dụng MCU STM32F103 RBT6

STM32F103 là vi điều khiển được sử dụng rộng rãi hiện nay, nó có rất nhiều chức năng. Tuy nhiên, để hiểu về các chức năng của nó và lập trình thành thạo trên board STM32F103 là điều không dễ dàng. Và qua quá trình tìm hiểu và nghiên cứu đề tài thì nhóm đã biết được cách lập trình cho vi điều khiển này, nó có khả năng đọc các cảm biến cụ thể trong đề tài này, nhóm thực hiện có khả năng hiển thị thơng tin theo yêu cầu lên LCD 16x2, truyền – nhận dữ liệu qua uart để điều khiển qua sim.

Từ đó làm nền tảng để nhóm có thể phát triển ý tưởng điều khiển được mọi thứ xung quanh, biến chúng trở nên thơng minh hơn.

6.2. NHẬN XÉT

Trong q trình thiết kế và thi cơng đề tài, nhóm gặp nhiều khó khăn và phát sinh trong việc lựa chọn linh kiện, hướng thiết kế, nhưng sau khi tìm hiểu thì những vấn đề trên đã được giải quyết.

Khó khăn lớn nhất của đề tài là hệ thống phụ thuộc vào tốc độ của Wifi/4G. Sau thơi gian nghiên cứu, thi cơng thì dự án đã hồn thành kịp tiến độ. Hệ thống hoạt động tương đối ổn định. Nhưng những yêu cầu đặt ra đối với hệ thống chỉ đạt trên 85%, vẫn còn điểm hạn chế là chưa áp dụng được vào qui mô lớn.

77

6.3. ĐÁNH GIÁ

Qua những số liệu bảng trên, nhóm đánh giá hệ thống đạt yêu cầu với những mục tiêu đã đề ra.

 Mơ hình có tính thẩm mỹ, chắc chắn và dễ sử dụng. Sau thời gian test thử, mạch cho thấy sự ổn định.

 Thông số đo được tương đối chính xác.

 Hệ thống có khả năng giúp ngươi dùng giám sát được đối tượng canh tác.

 Hệ thống hoạt động ổn định trong thời gian dài, đảm bảo được việc thu thập thông tin từ đối tượng canh tác cũng như truyền nhận dữ liệu lên web.

6.4. HƯỚNG PHÁT TRIỂN

Đề tài cơ bản đáp ứng được những yêu cầu đặt ra tuy nhiên để sản phẩm hồn thiện được hơn nữa thì địi hỏi cần được cải tiến và nghiên cứu thêm.

Về chức năng, thiết bị được nghiên cứu chỉ dừng lại ở các chức năng cơ bản: đọc nhiệt độ độ ẩm đất và điều khiển được động cơ phun sương thông qua Web Server.

Một số chức năng nên phát triển thêm là:

 Phát triển mơ hình với quy mơ lớn hơn  Điều khiển được quạt hút.

 Hồn thiện mơ hình và tối ưu một cách kinh tế hơn.

 Có thể dung năng lượng từ pin mặt trời để tạo ra nguồn điện (adsbygoogle = window.adsbygoogle || []).push({});

78

TÀI LIỆU THAM KHẢO

1) Trần Thu Hà, Trương Thị Bích Ngà, “Giáo trình Điện tử cơ bản”, Nhà xuất bản ĐH Quốc Gia Tp.HCM, 2013.

2) Nguyễn Việt Hùng, Nguyễn Ngô Lâm, Nguyễn Văn Phúc, Đặng Phước Hải Trang, Giáo trình kỹ thuật truyền số liệu, NXB ĐH Quốc Gia TP. HCM, 2012. 3) Marco Schwartz, “Internet of Things with ESP8266”, Packt Publishing, 2016. 4) Phan Quang Phơ, Nguyễn Đức Chiến, “Giáo trình cảm biến”. Nhà xuất bản Khoa

Học Kỹ Thuật, 2000.

5) www.arduino.vn/bai-viet/1226- web-server-voi-arduino-va-esp8266 6) Arduino.vn – Cộng đồng arduino Việt Nam

7) Tài liệu từ internet:

http://www.alldatasheet.com/datasheet-

Một phần của tài liệu Thiết kế hệ thống điều khiển và giám sát nhà nấm sử dụng web server và SMS (Trang 66)