Trong đồ án này, có 3 chế độ cho hệ thống hoạt động, trong cả 3 chế độ việc thực hiện giám sát các thơng tin của vườn thì thực hiện hồn tồn tự động. Chỉ có việc điều
khiển thiết bị là khác nhau bao gồm: điều khiển bằng tay, tự động và bán tự động. Nếu giá trị biến chế độ là 0, thì tức là chế độ điều khiển bằng tay, ESP8266 sẽ trực tiếp thoát khỏi hàm Auto Mode Control. Nhưng nếu giá trị biến chế độ bằng 1, tức là ESP8266 lập tức đi vào chế độ bán tự động, các thiết bị được người dùng bật bằng tay, và tự động tắt sau khoảng thời gian mà người dùng đã cài đặt. Trong chế độ bán tự động, ESP8266 sẽ nhận các giá trị điều khiển thiết bị mới nhất trên CSDL để điều khiển các thiết bị ở trạm khu vực. Đồng thời ESP8266 xác định thời gian tắt các thiết bị trong chuỗi JSON đã nhận về trước đó. Nếu chưa đến thời gian kết thúc, ESP8266 sẽ thực hiện các công việc trong “Main” như trên lưu đồ thuật tốn trong Hình 4.4.
Cịn nếu thời gian đã tới thời điểm kết thúc, ESP8266 sẽ tạo một chuỗi JSON tín hiệu điều khiển trạng thái thiết bị (trạng thái tắt), sau đó gửi chúng cho các trạm khu vực thông qua Lora. Ngược lại, giá trị biến chế độ bằng 2, ESP8266 ngay lập tức vào chế độ tự động hoàn toàn. Trong chế độ này, các công việc cần ESP8266 thực hiện giống như trong chế độ bán tự động, chỉ khác là khơng có thời gian kết thúc, và các thiết bị được điều khiển theo thời gian cố định. Đồng thời luôn kiểm tra biến điều khiển để có thể thay đổi chế độ hoạt động khi người dùng thay đổi trên giao diện điều khiển. Lưu đồ thuật toán biểu diễn quá trình hoạt động này được miêu tả trong hình 4.10.
Các cơng việc trên thực hiện lặp lại liên tục cho đến khi dừng. Ta cảm thấy việc cần xử lý là rất nhiều, tuy nhiên tần số hoạt động của ESP8266 là 80MHz nên các công việc này xử lý rất nhanh.
4.2. Trạm thu thập dữ liệu khu vực.
Tương tự như khi thiết kế trạm điều khiển trung tâm, trạm thu thập dữ liệu khu vực sử dụng dụng Arduino làm bộ xử lý chính. Arduino kết nối với Module Lora để truyền nhận dữ liệu với trạm điều khiển trung tâm, đồng thời cũng kết nối với các Module cảm biến để thu thập dữ liệu tại khu vực cần thiết. Trạm khu vực cũng cần thiết kế phần cứng và phần mềm.
4.2.1. Thiết kế phần cứng
Arduino kết nối với Module Lora thông qua chuẩn truyền thơng SPI. Vì ở trạm khu vực, nhóm sử dụng cả hai loại vi điều khiển là Arduino Uno và Arduino Nano, vì vậy khi thiết kế phần cứng, nhóm sẽ thiết kế mạch cho cả hai loại vi điều khiển này. Sơ đồ mạch điện tử trạm thu thập dữ liệu khu vực được trình bày như hình 4.10 và hình 4.11 sau đây: