Chân LCD I/O Mô tả
VSS Nguồn GND
VDD Nguồn Điện áp 5V
VO Điện áp Điều khiển độ tương phản của nền RS Input Lựa chọn thanh ghi
RW Input Đọc/Ghi
E Input Cho phép
D0 I/O Data
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 27 D2 I/O Data D3 I/O Data D4 I/O Data D5 I/O Data D6 I/O Data D7 I/O Data Bảng 2.10. Các lệnh điều khiển LCD16x2 Lệnh RS R W D7 D6 D5 D4 D3 D2 D1 D0 Mô tả
NOP 0 0 0 0 0 0 0 0 0 0 Khơng hoạt động Xóa hiển thị 0 0 0 0 0 0 0 0 0 1 Xóa hiển thị và đặt địa chỉ counter về 0 Con trỏ nhà 0 0 0 0 0 0 0 0 1 0 Đặt địa chỉ counter về 0, đặt màn hình về ban đầu, nội dung DDRAM không đổi
Chế độ nhập
0 0 0 0 0 0 0 1 I/D S Thiết lập hướng cho con trỏ và quy định dịch tự
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 28 động Điều khiển hiển thị 0 0 0 0 0 0 1 D C B Hiển thị lần lượt (D), bật/tắt con trỏ (C) và nhấp nháy con trỏ (B) Con trỏ/dịch hiển thị 0 0 0 0 0 1 S/ L R/ L 0 0 Di chuyển con trỏ và dịch hiển thị, DDRAM có nội dung khơng đổi Hàm thiết lập 0 0 0 0 1 DL N M G 0 Thiết lập giao diện dữ liệu(DL), số dòng hiển thị(N,M) và điện áp điều khiển chung(G) Thiết lập CGRAM
0 0 0 1 Tạo ký tự mới Thiết lập địa chỉ CGRAM
Thiết lập DDRAM
0 0 1 Hiển thị địa chỉ dữ liệu RAM Thiết lập địa chỉ DDRAM Cờ tràn và ADDR 0 0 BF Địa chỉ counter Đọc cở tràn và địa chỉ counter Ghi dữ liệu
1 0 Ghi dữ liệu Đọc dữ liệu từ
CGRAM hoặc DDRAM
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 29
liệu CGRAM hoặc
DDRAM
Như vậy, tùy vào dữ liệu muốn hiển thị mà lập trình cho vi xử lý hiển thi LCD tùy ý muốn của người lập trình.
2.2.8 Bo Arduino Mega 2560
Arduino Mega 2560 là một board vi điều khiển dựa trên con vi xử lý Atmega 2560, bao gồm 54 chân digital, trong đó có 15 chân có thể sử dụng PWM, ngồi ra Arduino Mega 2560 cịn có 16 chân analog, 4 UART, 1 thạch anh 16MHz, 1 cổng kết nối USB, 1 nút reset, 1 jack cắm điện và 1 ICSP.
Arduino Mega2560 khác với tất cả các vi xử lý trước giờ vì khơng sử dụng FTDI chip điều khiển chuyển tín hiệu từ USB để xử lý. Thay vào đó, nó sử dụng ATmega16U2 lập trình như là một cơng cụ chuyển đổi tín hiệu từ USB. Ngồi ra, Arduino Mega2560 cơ bản vẫn giống Arduino Uno R3, chỉ khác số lượng chân và nhiều tính năng mạnh mẽ hơn, nên các bạn vẫn có thể lập trình cho con vi điều khiển này bằng chương trình lập trình cho Arduino Uno R3[8].
BỘ MƠN ĐIỆN TỬ CƠNG NGHIỆP 30
Các đặc điểm chính của Arduino Mega 2560
Vi xử lý Atmega2560 Điện áp hoạt động 5v Điện áp ngõ vào 5v Chân I/O 54 Chân PWM 15 Chân analog 16 Bộ UART 4
Giao tiếp SPI 1
Giao tiếp I2C 1
Dòng DC trên 1 chân I/O 40mA Dòng DC trên chân 3.3V 50mA
Bộ nhớ Flash 256 kB (gồm 8kB dung lượng bootloader)
SRAM 8kB
EEPROM 4kB
Tốc độ xung 16Mhz
Các chuẩn giao tiếp sử dụng SPI, UART, I2C, One-wire
a) Chuẩn SPI
SPI (Serial Peripheral Bus) là một chuẩn truyền thông nối tiếp tốc độ cao do hãng Motorola đề xuất. Đây là kiểu truyền thơng Master-Slave, trong đó có 1 chip Master điều phối quá trình tuyền thông và các chip Slaves được điều khiển bởi Master vì thế truyền thơng chỉ xảy ra giữa Master và Slave. SPI là một cách truyền song công (full duplex) nghĩa là tại cùng một thời điểm quá trình truyền và nhận có thể xảy ra đồng thời. SPI đôi khi được gọi là chuẩn truyền thơng “4 dây” vì có 4 đường giao tiếp trong chuẩn này đó là SCK (Serial Clock), MISO (Master Input Slave Output), MOSI (Master Ouput Slave Input) và SS (Slave Select).
SCK: Xung giữ nhịp cho giao tiếp SPI, vì SPI là chuẩn truyền đồng bộ nên cần 1 đường giữ nhịp, mỗi nhịp trên chân SCK báo 1 bit dữ liệu đến hoặc đi. Đây là điểm khác biệt với truyền thông không đồng bộ mà chúng ta đã biết trong chuẩn UART. Sự
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 31
tồn tại của chân SCK giúp q trình truyền ít bị lỗi và vì thế tốc độ truyền của SPI có thể đạt rất cao. Xung nhịp chỉ được tạo ra bởi chip Master.
MISO– Master Input / Slave Output: Nếu là chip Master thì đây là đường Input cịn nếu là chip Slave thì MISO lại là Output. MISO của Master và các Slaves được nối trực tiếp với nhau.
MOSI – Master Output / Slave Input: nếu là chip Master thì đây là đường Output cịn nếu là chip Slave thì MOSI là Input. MOSI của Master và các Slaves được nối trực tiếp với nhau.
SS – Slave Select: SS là đường chọn Slave cần giap tiếp, trên các chip Slave đường SS sẽ ở mức cao khi không làm việc. Nếu chip Master kéo đường SS của một Slave nào đó xuống mức thấp thì việc giao tiếp sẽ xảy ra giữa Master và Slave đó. Chỉ có 1 đường SS trên mỗi Slave nhưng có thể có nhiều đường điều khiển SS trên Master, tùy thuộc vào thiết kế của người dùng.
.
Hình 2.22. Giao diện SPI
Hoạt động: Mỗi chip Master hay Slave có một thanh ghi dữ liệu 8 bits. Cứ mỗi xung nhịp do Master tạo ra trên đường giữ nhịp SCK, một bit trong thanh ghi dữ liệu của Master được truyền qua Slave trên đường MOSI, đồng thời một bit trong thanh ghi
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 32
dữ liệu của chip Slave cũng được truyền qua Master trên đường MISO. Do 2 gói dữ liệu trên 2 chip được gởi qua lại đồng thời nên quá trình truyền dữ liệu này được gọi là “song cơng”.
Hình 2.23. Truyền dữ liệu SPI. b) Chuẩn UART b) Chuẩn UART
Thuật ngữ USART trong tiếng anh là viết tắt của cụm từ: Universal Synchronous & Asynchronous serial Reveiver and Transmitter, nghĩa là bộ truyền nhận nối tiếp đồng bộ và không đồng bộ. USART hay UART cần phải kết hợp với một thiết bị chuyển đổi mức điện áp để tạo ra một chuẩn giao tiếp nào đó. Ví dụ, chuẩn RS232 (hay COM) trên các máy tính cá nhân là sự kết hợp của chip UART và chip chuyển đổi mức điện áp. Tín hiệu từ chip UART thường theo mức TTL: mức logic high là 5, mức low là 0V. Trong khi đó, tín hiệu theo chuẩn RS232 trên máy tính cá nhân thường là -12V cho mức logic high và +12 cho mức low (tham khảo hình 2.35).
BỘ MƠN ĐIỆN TỬ CƠNG NGHIỆP 33 Hình 2.24. Mức điện áp logic
Truyền thơng nối tiếp: Dữ liệu được truyền từng bit trên một (hoặc một vài) đường truyền. Vì lý do này, cho dù dữ liệu có lớn đến đâu cũng chỉ dùng rất ít đường truyền. Hình 2.24 mơ tả sự so sánh giữa 2 cách truyền song song và nối tiếp trong việc truyền con số 187 thập phân (tức 10111011 nhị phân).
Truyền dữ liệu đồng bộ gồm các đường truyền dữ liệu và tín hiệu xung clock, chức năng của xung Ck là để dịch chuyển dữ liệu, mỗi 1 xung CK là dữ liệu được truyền đi. Trong hệ thống truyền dữ liệu đồng bộ, hệ thống nào cung cấp xung CK thì đóng vai trị là chủ, hệ thống nhận xung CK đóng vai trị là tớ.
Truyền dữ liệu không đồng bộ giống như truyền đồng bộ tuy nhiên lại khơng có xung CK, khơng cịn phân biệt chủ tớ, cả hệ thống là đồng cấp.
c) Chuẩn I2C
I2C là viết tắc của từ Inter-Integrated Circuit là một chuẩn truyền thông do hãng điện tử Philips Semiconductor sáng lập và xây dựng thành chuẩn năm 1990. Chuẩn I2C có hai đường tìn hiệu là SDA và SCL truyền tải xung clock để dịch chuyển dữ liệu. Trong hệ thống, nếu thiết bị nào cung cấp xung clock thì được gọi là chủ (master), thiết bị nhận xung clock được gọi là tớ (slave).
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 34
Với chuẩn I2C, thiết bị chủ chỉ là một nhưng có nhiều thiết bị tớ, mỗi thiết bị tớ có một địa chỉ độc lập, nếu ban đầu dùng địa chỉ 7 bit thì có thể kết nối tới 128 thiết bị tớ
Hình 2.25. Mạng I2C với nhiều thiết bị và 2 điện trở kéo lên cho SDA, SCL
- Quá trình thiết bị chủ ghi dữ liệu vào thiết bị tớ:
Bước 1: Thiết bị chủ tạo trạng thái START để bắt đầu quá trình truyền dữ liệu, các thiết bị tớ sẵn sàng nhận.
Bước 2: Thiết bị chủ gửi địa chỉ của thiết bị tớ cần giao tiếp, mục đích là chọn đúng địa chỉ của thiết bị tớ.
Bước 3: Thiết bị chủ chờ tín hiệu bắt tay từ thiết bị tớ đúng địa chỉ.
Bước 4: Thiết bị chủ tiến hành gửi địa chỉ của ô nhớ bắt đầu cần ghi dữ liệu. Bước 5: Thiết bị chủ chờ nhận tìn hiệu từ thiết bị tớ.
Bước 6: Thiết bị chủ gửi dữ liệu cho thiết bị tớ, mỗi lần ghi 1 byte, sau khi ghi xong thì chờ trả lời từ thiết bị tớ, nếu đã xong thì thiết bị chủ chuyển sang trạng thái STOP. - Quá trình thiết bị chủ đọc dữ liệu từ thiết bị tớ
Bước 1: Thiết bị chủ tạo trạng thái START để bắt đầu quá trình truyền dữ liệu, các thiết bị tớ sẵn sàng nhận.
Bước 2: Thiết bị chủ gửi địa chỉ của thiết bị tớ cần giao tiếp, mục đích là chọn đúng địa chỉ của thiết bị tớ.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 35
Bước 3: Thiết bị chủ chờ tín hiệu bắt tay từ thiết bị tớ đúng địa chỉ.
Bước 4: Thiết bị chủ tiến hành gửi địa chỉ của ô nhớ bắt đầu cần đọc dữ liệu. Bước 5: Thiết bị chủ chờ nhận tìn hiệu từ thiết bị tớ.
Bước 6: Thiết bị chủ sang trạng thái STOP, bắt đầu lại trạng thái START và tiến hành gửi địa chỉ thiết bị.
Bước 7: Thiết bị chủ sau khi nhận sẽ báo tín hiệu trả lời, quá trình này thực hiện cho đến khi nhận hết dữ liệu mong muốn và thiết bị chủ tạo tín hiệu STOP đế chấm dứt.
d) Chuẩn One-wire
Giao thức giao tiếp 1-wire được phát triển bởi Dallas Semiconductor. Giao thức này cho phép giao tiếp nhiều chip đến 1 Master qua 1 chân. Giao thức này gọi là 1- wire vì nó dùng 1 dây để truyền dữ liệu, dùng một điện trở kéo lên để kéo điện áp dịng dữ liệu bên phía Master. Giao thức 1-wire dùng mức logic CMOS/TTL và hoạt động ở dãy điện áp từ 2.8 đến 6v. Master và slave có thể nhận hoặc truyền nhưng tại 1 thời điểm chỉ thực hiện một chức năng. LSB được gởi đi đầu tiên. Dữ liệu trong mạng 1-wire được truyền đi theo khe thời gian. Để viết mức logic 1, Master kéo điện áp xuống thấp trong 15us hoặc thấp hơn. Để viết mức logic 0, Master kéo điện áp xuống thấp trong 60us hoặc thấp hơn.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 36 Hình 2.26. Giản đồ xung chuẩn one-wire.
Trước khi giao tiếp, Master reset lại mạng bằng việc giữ dữ liệu ở mức thấp ít nhất là 480us và sau đó tìm đáp ứng xung từ slave. Master gọi slave bởi địa chỉ duy nhất của nó.
Mỗi thiết bị sẽ có 48 bit(6 byte) địa chỉ duy nhất, thêm 8 bit cuối cùng kiểm tra lỗi CRC nên có 56 bit.
Khi có nhiều hơn 1 chip, thì số slave tối đa là 20, nếu vượt quá thì việc giao tiếp sẽ gặp vấn đề. Chiều dài kết nối slave –master có thể lên đến 200m.Thơng thường, mỗi thiết bị 1-wire được kết nối với 3 chân(power,data,gnd).
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 37 Hình 2.27. Sơ đồ kết nối one-wire
Một số chip có khả năng hoạt động ở chế độ song song.
Hình 2.28. Sơ đồ kết nối mode song song
Ở chế độ này, chip lấy nguồn từ dòng dữ liệu. Điều này cho phép loại bỏ nguồn ngồi nhưng nó gặp một số bất lợi:
Xử lí nhiều hơn.
Trong suốt quá trình giao tiếp song song không thể giao tiếp với slave khác.
Một số chip có thể mất dữ liệu vì khơng có nguồn, vì thế mỗi lần nó sẽ định lại cấu hình.
BỘ MƠN ĐIỆN TỬ CƠNG NGHIỆP 38
Thỉnh thoảng, giải pháp tốt nhất là xài nguồn dự phịng bên phía slave để tiết kiệm bộ đếm dữ liệu. Mode song song hữu ích khi giao tiếp ở khoảng cách xa.
2.3 GIỚI THIỆU VỀ WEBSITE THINGSPEAK
Thingspeak là 1 server miễn phí cho phép thu thập dữ liệu và lưu trữ dữ liệu từ các cảm biến trên đám mây, thực hiện các ứng dụng internet of things. Ngoài ra thingspeak hỗ trợ xử lý dữ liệu theo thời gian thực, xử lý dữ liệu và trực quan hóa giao diện cho người sử dụng. Dữ liệu được truyền và nhận thông qua giao thức đơn giản HTTP (Hypertext Transfer Protocol) và được lưu trữ trong các kênh, mỗi kênh gồm có 8 trường (field)[5].
Hình 2.29.Kết nối Thingspeak
IoT (Internet of Things) mạng lưới các đồ vật có kết nối và điều khiển thông qua Internet. Chủ sở hữu có thể sử dụng các thiết bị thông minh để điều khiển các đồ vật từ xa thơng qua internet.
BỘ MƠN ĐIỆN TỬ CƠNG NGHIỆP 39 Hình 2.30. Mạng các đồ vật kết nối
Khi một thiết bị gửi dữ liệu thông qua một yêu cầu HTTP (giao tiếp), nó được xử lý bởi dịch vụ IOT, giao tiếp với một máy chủ ảo. Cả hai máy chủ và dịch vụ IOT giao tiếp trực tiếp với các ứng dụng. Cuối cùng, ở tất cả các cấp của việc thông tin, liên lạc từ thiết bị đến các ứng dụng có cả các yêu cầu về an ninh và quản lý cho chuyển giao dữ liệu.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 40
Thingspeak dễ dàng cho phép thêm, lưu trữ liệu theo mơ hình IoT, trực quan và dễ dàng cho việc lập trình và biểu đồ theo thời gian thực. Với mã nguồn mở nên thích hợp với Arduino, Raspberry, hoặc các kênh khác cùng loại. Mã API nên có thể chạy cá nhân hoặc cục bộ tùy theo yêu cầu sử dụng.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 41 Chương 3. TÍNH TỐN VÀ THIẾT KẾ
3.1 GIỚI THIỆU
Đề tài xây dựng mơ hình giám sát thông số pH và nhiệt độ trong hồ nuôi tôm, các thông số được liên tục đưa lên lưu trữ trên trang web Thingspeak.com để lưu trữ để người ở xa có thể xem liên tục thơng qua máy tính hoặc smartphone, khi các thông số bất thường hệ thống sẽ gửi tin nhắn hoặc thực hiện cuộc gọi đến số điện thoại của chủ sở hữu cũng như phát tín hiệu báo động kịp thời. Hệ thống tích hợp điều khiển quạt nước theo thời gian thực, tất cả thơng số có thể được xem thơng qua màn hình VGA hoặc một màn hình LCD tích hợp cùng hệ thống. Ngồi ra u cầu thiết kế khối nguồn sao cho mạch hoạt động đủ nguồn, ổn định, có pin hoạt động khi mất điện....
3.2 TÍNH TỐN VÀ THIẾT KẾ HỆ THỐNG
3.2.1 Thiết kế sơ đồ khối hệ thống
Khối nguồn 5V Cảm biến pH Cảm biến nhiệt độ DS18B20 Cảm biến dòng Khối Real time
DS1307 Khối Internet Khối Driver động cơ Khối hiển thị Khối nguồn 4.4V Khối cảnh báo sự cố
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 42 Hình 3.1.Sơ đồ khối hệ thống
Khối nguồn:
Cung cấp nguồn 5V DC cho toàn bộ hệ thống hoạt động ổn định. Ngoài ra, cấp nguồn điện áp từ 3,7 – 4,2 V DC cho modul sim hoạt động.
Khối cảm biến:
Cảm biến nhiệt độ: đo đạc, tính tốn các giá trị nhiệt độ trong mơi trường nước.
Cảm biến pH: đo đạc giá trị pH trong môi trường nước.
Cảm biến dịng: đo đạc, tính giá trị dịng điện qua động cơ quạt nước. Khối xử lý trung tâm:
Thực hiện ra lệnh cho các module cảm biến đọc các giá trị thông số mơi trường sau đó lấy các giá trị trả về của các module cảm biến, tiếp nhận giá trị thời gian thực, đồng thời upload dữ liệu, điều khiển module sim, shield internet và các tác vụ điều khiển động cơ khác. Cảm biến pH Cảm biến nhiệt độ Khối xử lý trung tâm ARDUINO
Khối giao tiếp với Websever
Khối điều khiển động cơ Khối Real time DS1307 Khối cảnh báosự cố Khối hiển thị LCD Cảm biến dịng Hall
BỘ MƠN ĐIỆN TỬ CƠNG NGHIỆP 43
Khối giao tiếp với Websever