Khối xử lý trung tâm
Khối xử lý trung tâm: Được xem là phần quan trọng nhất của hệ thống. Khối có chức năng tiếp nhận xử lý mọi tín hiệu ngõ vào thu được từ các cảm biến, các tín hiệu điều khiển và truyền nhận dữ liệu từ web để xử lý điều khiển thiết bị của khối chấp hành thông qua khối relay và đưa ra khối điều khiển trực tiếp và hiển thị để người dùng theo dõi. Toàn bộ hoạt động điều khiển của hệ thống được thông qua
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 20
khối xử lý trung tâm này.
Với các yêu cầu trên, hiện nay có rất nhiều sự lựa chọn ở nhiều phân khúc khác nhau như các dòng PLC của Siemens, Panasonic, … hay các dòng vi điều khiển họ Pic, các dòng vi điều khiển ARM, các dòng kit Arduino, … Tuy nhiên với yêu cầu tiện dụng dễ sử dụng, sức mạnh vừa đủ cho các tác vụ xử lý cơ bản và giá cả hợp lý nhóm quyết định sử dụng Arduino Nano cho khối xử lý trung tâm.
Vì Arduino Nano sử dụng chip ATmega328 (họ 8bit). Nó có 8 chân analog I/O và 14 chân Digital I/O, một thạch anh dao động 16MHz, kết nối USB, một jack cắm điện, bộ nhớ flash 32KB, SRAM 2KB, EEPROM 1KB. Nó chứa tất cả mọi thứ cần thiết để tạo thành khối xử lý trung tâm với đầy đủ các port.
Hình 3.3: Khối xử lý trung tâm sử dụng Arduino Nano
Các thông số kỹ thuật của Arduino Nano:
Điện áp hoạt động: 5V –DC. Điện áp vào giới hạn: 6-20V –DC. Dòng điện tối đa trên mỗi I/O: 40mA. Dòng tối đa (3.3V): 50mA.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 21
Khối giao tiếp Wifi
Yêu cầu khối giao tiếp Wifi: Bản thân Arduino Nano không được hỗ trợ kết nối mạng cũng như giao tiếp mạng. Vì vậy yêu cầu đặt ra là phải có một khối trung gian để giúp Arduino Nano có thể giao tiếp được với Internet, làm cầu nối để nhận dữ liệu từ khối xử lý trung tâm đưa lên website và ngược lại từ website đưa về Arduino Nano.
Từ đó nhận thấy hiện nay mạch Wifi ESP8266 rất phổ biến và được ứng dụng rộng rãi, bản thân dòng này có rất nhiều phiên bản từ ESP8266 V1 đến ESP8266 V12, các dòng ESP8266 tích hợp hẳn vào board Arduino, ESP8266 NODE MCU. Ở đây nhóm sử dụng ESP8266 NODE MCU vì đây là dòng sản phẩm có kích thước nhỏ gọn, dễ dàng sử dụng, giá rẻ, có cổng micro USB để nạp chương trình và cấp nguồn nên không cần mạch nạp trung gian.
Hình 3.4: ESP8266 NODEMCU
ESP8266 là dạng vi điều khiển tích hợp Wifi (Wifi SoC) được phát triển bởi Espressif Systems, một nhà sản xuất Trung Quốc. Với vi điều khiển và Wifi tích hợp, ESP8266 cho phép lập trình viên có thể thực hiện vô số tác vụ TCP/IP đơn giản để thực hiện vô số các ứng dụng khác nhau, đặt biệt là ứng dụng IOT. Tuy nhiên, vào thời điểm ra mắt năm 2014, hầu như chỉ có tài liệu bằng tiếng Trung Quốc nên ESP8266 chưa được phổ biến như hiện nay.
Module ESP-12 kết hợp với firmware ESP8266 trên Arduino và thiết kế phần cứng giao tiếp tiêu chuẩn đã tạo nên NodeMCU, loại kit phát triển ESP8266 phổ biến nhất trong thời điểm hiện tại. Với cách sử dụng kết nối dễ dàng, có thể lập trình, nạp chương trình trực tiếp trên phần mềm Arduino, đồng thời tương thích với các bộ thư viện Arduino có sẵn, NodeMCU là sự lựa chọn hàng đầu.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 22
NODEMCU có khả nă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.
Các thông số kỹ thuật của NODEMCU ESP8266:
IC chính: ESP8266 wifi SoC, phiên bản firmware: NodeMCU Lua Chip nạp và giao tiếp UART: CP2102.
GPIO tương thích hoàn toàn với firmware Node MCU. Cấp nguồn: 5V-DC MicroUSB hoặc Vin.
GPIO giao tiếp mức 3.3VDC, tích hợp Led báo trạng thái, nút Reset, Flash. Tương thích hoàn toàn với trình biên dịch Arduino.
Cách thức giao tiếp của NODEMCU và Arduino:
Dây TX Arduino sẽ được nối với RX của NODEMCU và ngược lại, RX của Arduino sẽ được nới với TX của NODEMCU, và các chân GND của Arduino và NODEMCU phải được nối với nhau.
Khi có tín hiệu được gửi từ Arduino thông qua chân TX0 trên Arduino, dữ liệu này sẽ được đưa vào chân RX của NODEMCU để lưu trữ và xử lý, ngược lại khi có tín hiệu gửi từ chân TX của NODEMCU thì dữ liệu gửi đi này sẽ được đưa vào chân RX0 của Arduino để lưu trữ và xử lý, quá trình truyền nhận dữ liệu này sẽ diễn ra liên tục.
Trong mô hình Arduino và NODEMCU sử dụng nguồn 7V và được cấp nguồn vào các chân Vin để đảm bảo tính ổn địch của hệ thống.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 23 Hình 3.5: Sơ đồ nối dây giữa Arduino Nano và NODEMCU
Khối webserver
Yêu cầu khối webserver: Đây là khối hoạt động song song, độc lập với khối xử lý trung tâm. Nó có nhiệm vụ theo dõi hoạt động của khu vườn và điều khiển khu vườn.
Để lập trình được một Webserver thì có rất nhiều sự lựa chọn như làm một Web server cục bộ như mạng LAN, Webserver trực tuyến sử dụng mạng Internet. Ở đề tài này, nhóm sử dụng 000webhost là một công ty cung cấp web hosting miễn phí với 10 năm dẫn đầu trong ngành.
000webhost.com với ý nghĩa là chúng ta chỉ mất $0.00 cho nhu cầu muốn có một Webhost miễn phí, đáng để sử dụng. Trong 10 năm qua 000webhost luôn dẫn đầu trong lĩnh vực web host miễn phí là nhà cung cấp hàng đầu thế giới về cung cấp dịch vụ web host cao cấp không chèn quảng cáo và không có phụ phí. Hàng triệu người dùng 000webhost chính là minh chứng cho điều đó. Chỉ cần đăng kí và chúng ta sẽ có thể bắt đầu ngay với webhost để thực hiện dự án của mình.
Đây là công ty web hosting miễn phí duy nhất cam kết đảm bảo uptime lên tới 99%, với hầu hết các servers đạt tỉ lệ uptime tới 99.9%.
Một ưu điểm vượt trội khác nữa khi tạo host với 000webhost là trong đây đã có hỗ trợ luôn cho bạn các dịch vụ như myPHPadmin, MySQL để chúng ta có thể tạo và quản lý Database.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 24 Hình 3.6: Công cụ để tạo máy chủ của Webserver và Database
Mỗi tài khoản nhận được không gian lưu trữ và băng thông gần như không giới hạn cùng với các kết nối không giới hạn tới các máy chủ. Chúng ta sẽ được truy cập các phiên bản PHP và MySQL mới nhất.
Hỗ trợ công cụ cài đặt tự động này được thiết kế để cài đặt các mã nguồn thông dụng chỉ bằng một cú click chuột. Chỉ với vài cú click, website đã sẵn sàng để trở thành một kho tài nguyên tuyệt vời. Bạn có thể cài đặt hơn 50 mã nguồn thông dụng như WordPress, Joomla và còn nhiều hơn thế nữa, …
Khối điều khiển trực tiếp và hiển thị
Yêu cầu khối điều khiển trực tiếp và hiển thị: Khối này sẽ là công cụ giúp người dùng có thể giao tiếp, nắm bắt, giám sát hoạt động của toàn bộ hệ thống để từ đó có được những tùy chỉnh, cài đặt thích hợp cho toàn bộ hoạt động của hệ thống, đồng thời tận dụng được những gì đã có sẵn từ các dự án trước, đồng thời tiết kiệm ngõ ra cho Arduino.
Với các yêu cầu trên, nhóm lựa chọn màn hình LCD 16x2 để hiển thị và nút nhấn đơn để giao tiếp với Arduino với ưu điểm thông dụng giá thành rẻ và dễ sử dụng. Màn hình LCD 16X2 Thông số kỹ thuật Điện áp hoạt động: 5V Kích thước: 80 x 36 x 12.5 mm Chữ trắng, nền xanh
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 25
Module chuyển đổi I2C cho LCD 16X2 Thông số kỹ thuật
Điện áp hoạt động: 2.5-6V DC
Hỗ trợ màn hình: LCD1602,1604,2004 (driver HD44780) Giao tiếp: I2C
Địa chỉ mặc định: 0X27 (có thể điều chỉnh bằng ngắn mạch chân A0/A1/A2)
IC ổn áp 7805 Thông số kỹ thuật
Ổn áp điện áp đầu vào Điện áp vào: 7 ~ 25V Điện áp ra: 4.8 ~ 5.2V Dòng đầu ra: 1.5A
Dải nhiệt độ: 0 ~ 125 độ C
Hình 3.7: Kết nối LCD với Arduino Nano
Màn hình LCD được kết nối với Arduino thông qua module chuyển đổi, module chuyển đổi sử dụng nguồn 5v thông qua IC ổn áp 7805, ngõ ra SDA với SDL trên module được nối lần lượt chân A4 và A5 của Arduino.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 26 Nút nhấn Thông số kỹ thuật Hình dáng: tròn. Màu sắc: đen, trắng. Số chân: 2 chân cắm. Nhấn nhả. Hình 3.8: Nút nhấn 2 chân Còi Buzzer 5VDC
Còi Buzzer 5VDC có tuổi thọ cao, hiệu suất ổn định, chất lượng tốt, được sản xuất nhỏ gọn phù hợp thiết kế với các mạch còi buzzer nhỏ gọn, mạch báo động.
Thông số kỹ thuật:
Nguồn: 3.5V - 5.5V
Dòng điện tiêu thụ: <25mA
Tần số cộng hưởng: 2300Hz ± 500Hz Biên độ âm thanh: >80 dB
Nhiệt độ hoạt động: -20 °C đến +70 °C Kích thước: Đường kính 12mm, cao 9,7mm
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 27 Hình 3.10: Sơ đồ kết nối của Button và Buzzer với Arduino
Khối cảm biến
Cảm biến nhiệt độ, độ ẩm
Yêu cầu của khối cảm biến: khối này sẽ có nhiệm vụ thu thập thông số của môi trường để cung cấp cho khối xử lý trung tâm các thông số để từ đó có những xử lý, điều chỉnh để phù hợp nhất với sự phát triển và sinh trưởng của nấm rơm. Từ đó các thông số mà nhóm quan tâm là nhiệt độ và độ ẩm không khí. Ứng với mỗi thông số có rất nhiều sự lựa chọn trên thị trường với nhiều mức giá cũng như tính năng khác nhau. Ví dụ như với yêu cầu đo nhiệt độ thì có các lựa chọn như: LM35, DS18B20, DHT11, DHT22, … hay các cảm biến trong công nghiệp với dải nhiệt độ đo rất cao, độ chính xác rất cao.
Với yêu cầu trên nhóm đã chọn sử dụng cảm biến DHT11 vì giá thành rẻ dễ sử dụng và có tích hợp sẵn chức năng đo độ ẩm không khí.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 28
Thông số kỹ thuật:
Nguồn 3-5V DC.
Chuẩn giao tiếp TTL, 1 wire.
Dòng sử dụng: 2.5mA max (khi truyền dữ liệu). Đo tốt độ ẩm 20% -80%RH với sai số ±5%. Đo tốt nhiệt độ 0-50oC sai số ±2%.
Cách kết nối cảm biến DHT11 với Arduino Nano:
Hình 3.12: Kết nối cảm biến DHT11 với Arduino Nano
Cảm biến mực nước
Bên cạnh đó nhóm còn sử dụng cảm biến đo mực nước trong bể chứa nước cung cấp nước cho phun sương phục vụ việc điều khiển độ ẩm không khí, phòng trường hợp không đủ nước cung cấp cho thiết bị phun sương hoạt động.
Hai đầu đo của cảm biến được cắm vào bể chứa nước để đo mực nước. Dùng dây nối giữa cảm biến và module chuyển đổi. Thông tin về mực nước sẽ được đọc và gửi tới module chuyển đổi.
Module chuyển đổi có cấu tạo chính gồm một IC so sánh LM393, một biến trở, 4 điện trở dán 100 Ohm và 2 tụ dán. Biến trở có chức năng định ngưỡng so sánh với tín hiệu mực nước đọc về từ cảm biến. Ngưỡng so sánh và tín hiệu cảm
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 29
biến sẽ là 2 đầu vào của IC so sánh LM393. Khi mực nước thấp hơn ngưỡng định trước, ngõ ra IC là mức cao (1), ngược lại là mức thấp (0).
Hình 3.13: Hình ảnh cảm biến đo mực nước
Thông số kỹ thuật:
Điện áp hoạt động: 3.3V – 5V DC. Độ phân giải: 10 bit.
IC so sánh: LM393.
AO: đầu ra Analog (tín hiệu tương tự).
Cách kết nối giữa cảm biến mực nước và Arduino Nano:
Hình 3.14: Kết nối cảm biến mực nước với Arduino Nano
Khối relay IC ULN2803
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 30
ULN2803 là một vi mạch đệm, bản chất cấu tạo là các mảng darlington chịu được dòng điện lớn và điện áp cao, trong đó có chứa 8 cặp transistor NPN ghép darlington cực góp hở với cực phát chung. Mỗi kênh của ULN2803 có một diode chặn có thể sử dụng trong trường hợp tải có tính năng cảm ứng, cụ thể ở đây là relay.
Hình 3.15: Cấu tạo của IC đệm dòng ULN2803
ULN2803 có khả năng điều khiển 8 kênh riêng biệt, có thể nối trực tiếp với vi điều khiển 5V. Bên cạnh đó mỗi kênh của ULN2803 có khả năng chịu được dòng điện lớn trong một khoảng thời gian dài lên tới 500mA với biên độ đỉnh lên tới 600mA.
Hình 3.16: Sơ đồ nguyên lý 1 kênh của ULN2803
Ứng dụng của ULN2803 được sử dụng trong các mạch đệm điều khiển động cơ một chiều, động cơ bước, khối hiển thị ma trận led, …
Thông số kỹ thuật:
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 31
Điện áp vào max: 30V (Vin).
Dòng điện đầu ra liên tục: Ic = 500mA. Dòng điện đầu vào liên tục: IIN = 25mA.
Công suất tiêu tán trên mỗi cặp darlington: 1W. Nhiệt độ làm việc: -55 ~ 150oC.
Do ULN2803 có nhiệm vụ đệm dòng điều khiển cho Arduino vì thế Arduino sẽ mắc vào các chân I của ULN2803 khi đó các chân O của ULN sẽ được nối với các Relay để điều khiển các Rekay 12v. nguyên nhân phải thông qua IC đệm dòng là Arduino không thể điều khiển các Relay 12v được vì Arduino không có ngõ ra 12v cấp cho các tải và dòng tối đa của chân 5v cũng chỉ đạt 0.5A vì thế không thể cấp cho toàn bộ Relay khi sử dụng.
Cách kết nối giữa IC ULN2803 và Arduino Nano:
Hình 3.17: Kết nối ULN2803 với Arduino Nano
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 32
Yêu cầu khối Relay: tín hiệu điều khiển từ ngõ ra của khối xử lý trung tâm là 5V tuy nhiên các thiết bị lại hoạt động ở nhiều mức điện áp vì thế cần phải có một thiết bị trung gian có thể đóng ngắt với điện áp 12V để điều khiển cho các thiết bị. Ngoài ra thiết bị đó còn cần phải có khả năng cách ly để đảm bảo cho sự an toàn cho khối xử lý trung tâm trong các trường hợp cháy nổ, chập cháy.
Với các yêu cầu đó, nhóm sử dụng Relay. Relay sẽ được sử dụng để đóng ngắt tiếp điểm cũng như là đóng ngắt tải điện.
Hình 3.18: Hình ảnh Relay thực tế
Relay là một loại linh kiện điện tử thụ động rất hay gặp trong ứng dụng thực tế khi gặp các vấn đề liên quan đến công suất và cần sự ổn định cao, ngoài ra có thể để dàng bảo trì.
Relay là một công tắc (khóa K). Nhưng khác công tắc ở chỗ Relay được kích hoạt bằng điện thay vì bằng tay người. Chính vì vậy, Relay được dùng để làm công tắc điện tử. Vì Relay là một công tắc nên có 2 trạng thái: đóng và mở.
Hình 3.19: Sơ đồ nguyên lý của Relay
Để sử dụng được Relay ta phải cấp nguồn vào 2 chân + và – của cuộn dây của Relay, khi cuộn dây chưa có điện thì tiếp điểm của Relay ở vị trí NC, khi cuộn dây
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 33
có điện, nó sẽ hút tiếp điểm của Relay từ vị trí NC sang vị trí NO, ta nối dây của thiết bị cần điều khiển vào 2 chân COM và NO để điều khiển đóng ngắt thiết bị đó.
Ta sử dụng một con led để vào trạng thái hoạt động của Relay. Led cần dòng 10mA và áp 2V. Từ đó suy ra giá trị:
Rled=Vcc−Vled
Iled =12−2