Đề tài: Nghiên cứu thiết kế hệ thông tưới tự động trong nhà trồng thông minhĐề tài: Nghiên cứu thiết kế hệ thông tưới tự động trong nhà trồng thông minhới kết cấu nội dung gồm 4 chương, đề tài Nghiên cứu thiết kế hệ thông tưới tự động trong nhà trồng thông minh giới thiệu đến các bạn những nội dung khái quát về nhà trồng thông minh, thiết bị và giải pháp công nghệ, thiết kế, lập trình,lắp đặt mạch và vẽ đồ thị thể hiện giá trị,...
Trang 1TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI
NGHIÊN CỨU THIẾT KẾ HỆ THÔNG TƯỚI TỰ ĐỘNG
TRONG NHÀ TRỒNG THÔNG MINH
Mã số đề tài:
Thuộc nhóm ngành khoa học:Kỹ thuật điện tử và THCN
Hà Nội, 04-2015
Trang 2TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI
BÁO CÁO TỔNG KẾT
ĐỀ TÀI NGHIÊN CỨU KHOA HỌC CỦA SINH VIÊN
ĐỀ TÀI:
NGHIÊN CỨU THIẾT KẾ HỆ THÔNG TƯỚI TỰ ĐỘNG
TRONG NHÀ TRỒNG THÔNG MINH
Người hướng dẫn:Ngô Thanh Bình
Chức danh khoa học, học vị:Tiến sĩ
Sinh viên thực hiện:Nguyễn Văn Giáp Nam, Nữ: Nam
Hoàng Công Hoàn Nam, Nữ: Nam
Nguyễn Thiện Phú Nam, Nữ: Nam
Dân tộc : Kinh Lớp, khoa : Điện – Điện tử Năm thứ : 3
Số năm đào tạo: 4 Ngành học :Kỹ thuật điện tử và THCN
Hà Nội, 04-2015
Trang 3MỤC LỤC
LỜI NÓI ĐẦU 8
Chương 1: KHÁI QUÁT 9
1.1 Khái quát về nhà trồng thông minh 9
1.2 Giới hạn bài toán giám sát nhà trồng 9
Chương 2: THIẾT BỊ VÀ GIẢI PHÁP CÔNG NGHỆ 10
2.1 Giới thiệu chung về Arduino 10
2.2 Giới thiệu về board ArduinoMega 2560 11
2.3 Giới thiệu về board Arduino Data logger 16
2.4 Giới thiệu về Arduino LCD KeyPad Shield 17
2.5 Giới thiệu về cảm biến nhiệt độ LM35 19
2.6 Giới thiệu về cảm biến đo cường độ ánh sang Photo cell (CdS photoresistor) 20
2.8 Giới thiệu chung về phần mềm mô phỏng Proteus 22
2.9 Thư viện Arduino trong Proteus 23
2.10 Giới thiệu về Arduino IDE và ngôn ngữ lập trình cho Arduino 23
2.11 Giới thiệu về phần mềm Visual Studio 2010 25
Chương 3: THIẾT KẾ, LẬP TRÌNH,LẮP ĐẶT MẠCH VÀ 27
VẼ ĐỒ THỊ THỂ HIỆN GIÁ TRỊ 27
3.1 Thiết kế mạch trên Proteus 27
3.2 Lập trình đo nhiệt độ,ánh sang,độ ẩm hiển thị lên LCD 16.2 28
3.2.1 Lập trình đo nhiệt độ,ánh sáng 28
3.2.2 Lập trình hiển thị giá trị lên LCD 16.2 29
3.3 Lập trình điều khiển động cơ và đặt ngưỡng cảnh báo giới hạn 30
3.3.1 Lập trình điều khiển động cơ 30
3.3.2 Lập trình đặt ngưỡng cảnh báo và điều chỉnh động cơ theo hướng cảnh báo 32
3.4 Lập trình sử dụng modul Arduino datalogger và truyền ra cổng Serial 32
3.4.1 Lập trình sử dụng đồng hồ đếm thời gian thực DS1307 trên shieul datalogger 32
1
Trang 43.4.2 Lập trình xuất dữ liệu ra thẻ SD 34
3.4.3 Giao diện cổng kết nối Serial 36
3.5 Lập trình nhận dữ liệu từ cổng COM ảo, file dữ liệu và vẽ đồ thị cho các tham số nhiệt độ,ánh sáng và độ ẩm 36
3.5.1 Thiết kế giao diện 37
3.5.2.Lập trình cho các đối tượng 38
3.5.3 Mô phỏng 39
3.6 Lắp đặt mach đo nhiệt độ,ánh sang ,độ ẩm và thử nghiệm trên các board 40 3.6.1 Lắp đặt cảm biến đo ánh sang ,nhiệt độ và độ ẩm trên Arduino datalogger 40
3.6.2 Lắp đặt mạch điều khiển động cơ 40
3.6.3 Lắp đặt LED giám sát và cảnh báo 41
3.6.4 Tổng thể mạch đang hoạt động khi đã cấp nguồn và nạp Code 42
3.7 Chi phí thực hiện đề tài 43
Chương4: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 44
TÀI LIỆU THAM KHẢO 45
PHỤ LỤC 46
2
Trang 5DANH MỤC HÌNH ẢNH
Hình 1:Hệ thống tưới nước tự động cho cây trồng 9
Hình 2.1: Những thành viên khởi xướng Arduino 10
Hình 1.2 Board Arduino Mega 11
Hinh 2.3 Sơ đồ nguyên lý của boar Arduino mega 2650 12
Hình 2.4 Bảng mạch data logger 16
Hình 2.5.LCD KeyPad Shield 18
Hình 2.6 Cảm biến LM35 19
Hình 2.7 cảm biến đo cường độ ánh sang Photo cell (CdS photoresistor) 20
Hình2.8 hình ảnh IC l293D 21
Hình 2.9 Giao diện khởi động phần mềm Proteus 22
Hình 2.10 Các linh kiện trong thư viện Arduino cho Proteus 23
Hình 2.11 Giao diện phần mềm Arduino IDE 24
Hình 2.12: Giao diện phần mềm Visual Studio 2010 25
Hinh 2.13: Giao diện thiết kế trên C# 26
Hình 3.1 Sơ đồ nguyên lý của mạch 27
Hình 3.2 Lưu đồ thuật toán điều chỉnh động cơ 30
Hình 3.3 IC DS1307 33
Hình 3.4 Lưu đồ thuật toán cho DS1307 33
Hình 3.5 Bảng số liệu đọc từ file Exel của thẻ SD 35
Hình 3.6 Dao diện kết nối cổng Serial 36
Hình 3.7 Giao diện thiết kế 36
Hình 3.8.Giao diện thiết kế phần mềm 37
Hình 3.9 Kết quả mô phỏng 39
Hình 3.10 Sơ đồ kết nối các cảm biến 40
Hình 3.11 Mạch Arduino datalogger sau khi hoàn thành 40
Hình 3.12 Led cảnh báo ngưỡng 41
Hình 3.13 Hình ảnh toàn mạch hoạt động sau khi đã nạp code và cấp nguồn 42
3
Trang 6DANH MỤC BẢNG SỐ LIỆU
Bảng 2.1 Sơ đồ kết nối chân của Arduino LCD KeyPad Shield 18Bảng 3.1 Sơ đồ chân kết nối của các linh kiện 28Bảng 3.2 Bảng chi phí thực hiện đề tài 43
4
Trang 7TRƯỜNG ĐẠI HỌC GTVT
THÔNG TIN KẾT QUẢ NGHIÊN CỨU CỦA ĐỀ TÀI
1 Thông tin chung:
- Tên đề tài: NGHIÊN CỨU THIẾT KẾ HỆ THÔNG TƯỚI TỰ
ĐỘNG TRONG NHÀ TRỒNG THÔNG MINH
- Sinh viên thực hiện: Nguyễn Văn Giáp
Hoàng Công Hoàn Nguyễn Thiện Phú
- Lớp: Kỹ thuật điện tử và THCN
-Khoa: Điên – Điện tử
-Năm thứ: 3
-Số năm đào tạo: 4
- Người hướng dẫn: Ngô Thanh Bình
2 Mục tiêu đề tài:
Thiết kế làm một hệ thống tưới nước, độ ẩm, nhiệt độ tự động được điều khiển bởi mạch điện tử Arduino ứng dụng vào nhà trồng thông minh
3 Tính mới và sáng tạo:
Sử dụng công nghệ arduino còn khá mới lạ
4 Kết quả nghiên cứu:
Chạy thành công mạch arduino và ứng dụng trong thực tế
5 Đóng góp về mặt kinh tế - xã hội,giáo dục và đào tạo, an ninh, quốc phòng và khả năng áp dụng của đề tài:
Ứng dụng trong thực tế đời sống, chế tạo dễ dàng
5
Trang 86.Công bố khoa học của sinh viên từ kết quả nghiên cứu của đề tài (ghi rõ tên tạp
chí nếu có) hoặc nhận xét, đánh giá của cơ sở đã áp dụng các kết quả nghiên cứu (nếu có):
Ngày tháng 04 năm 2015
Sinh viên chịu trách nhiệm chính
thực hiện đề tài
(ký, họ và tên)
Nhận xét của người hướng dẫn về những đóng góp khoa học của sinh viên thực
hiện đề tài (phần này do người hướng dẫn ghi):
Ngày tháng04 năm 2015
Người hướng dẫn
(ký, họ và tên)
6
Trang 9THÔNG TIN VỀ SINH VIÊN CHỊU TRÁCH NHIỆM CHÍNH THỰC HIỆN ĐỀ TÀI
I SƠ LƯỢC VỀ SINH VIÊN:
Họ và tên: Hoàng Công Hoàn
Sinh ngày: 19 tháng:01 năm: 2015
Nơi sinh: TP Nam Định – Nam Định
Lớp: Kỹ thuật điện tử và THCN Khóa:53
Khoa: Điện – Điện tử
Địa chỉ liên hệ: Ngõ 458 Trần Cung, Quận Cầu Giấy, Hà Nội
Điện thoại: 0983213094 Email: conghoan94.utc@gmail.com
Trang 10LỜI NÓI ĐẦU
Ngày nay khoa học công nghệ ngày càng phát triển, vi điều khiển AVR và viđiều khiển PIC ngày càng thông dụng và hoàn thiện hơn , nhưng có thể nói sự xuấthiện
củaArduino vào năm 2005 tại Italia đã mở ra một hướng đi mới cho vi điềukhiển Sự xuất hiện của Arduino đã hỗ trợ cho con người rất nhiều trong lập trình vàthiết kế, nhất là đối với những người bắt đầu tìm tòi về vi điều khiển mà không có quánhiều kiến thức, hiểu biết sâu sắc về vật lý và điện tử Phần cứng của thiết bị đã đượctích hợp nhiều chức năng cơ bản và là mã nguồn mở Ngôn ngữ lập trình trên nền Javalại vô cùng dễ sử dụng tương thích với ngôn ngữ C và hệ thư viện rất phong phú vàđược chia sẻ miễn phí Chính vì những lý do như vậy nên Arduino hiện đang dần phổbiến và được phát triển ngày càng mạnh mẽ trên toàn thế giới
Trên cơ sở kiến thức đã học trong môn học : Tin học đại cương , Điện tử tương
tự và số… cùng với những hiểu biết về các thiết bị điện tử, chúng em đã quyết định
thực hiện đề tài :NGHIÊN CỨU THIẾT KẾ HỆ THÔNG TƯỚI TỰ ĐỘNG TRONG NHÀTRỒNG THÔNG MINH, HIỂN THỊ TRÊN LCD VÀ BIỄU DIỄN TRÊN ĐỒ THỊvới mục đích để tìm hiểu thêm về Arduino, làm quen với các thiết bị
điện tử và nâng cao hiểu biết cho bản thân Do kiến thức còn hạn hẹp, thêm vào đó đây
là lần đầu chúng em thực hiện đề tài nên chắc chắn không tránh khỏi những thiếu sót ,hạn chế vì thế chúng em rất mong có được sự góp ý và nhắc nhờ từ thầy giáo để có thểhoàn thiện đề tài của mình Chúng em xin chân thành cảm ơn thầy giáo TS.Ngô ThanhBình đã giúp đỡ chúng em rất nhiều trong quá trình tìm hiểu ,thiết kế và hoàn thành đềtài này
Hà Nội, ngày 11 tháng 4 năm 2015
8
Trang 11Chương 1: KHÁI QUÁT1.1 Khái quát về nhà trồng thông minh
Tại một số địa phương đã sử dụng nhà trồng để canh tác một số loại cây, hoa, rau cógiá trị kinh tế cao, tuy nhiên hiện nay vẫn chưa có đơn vị nào tiến hành nghiên cứuthiết kế nhà trồng đáp ứng điều kiện kinh tế, môi trường của nước ta
Thực tế trong cuộc sống bận rộn hiện nay, nhiều bạn vẫn có thú vui là trồng những câycảnh, vườn rau trong không gian trống của nhà mình như sân thượng, ban công Tuynhiên, trong những lúc bạn bận đi công tác nhiều ngày thì những cây cảnh và vườn hoa
ở nhà sẽ không ai tưới nước.Nhận thấy sự cần thiết phải phải xây dựng nhà trồng nhằmđẩy mạnh sự nghiệp phát triển nông nghiệp, nông thôn nhóm nghiên cứu chúng em đãthực hiện đề tài tưới nước tự động được điều khiển bởi mạch điện tử Arduino
Hì
nh 1:Hệ thống tưới nước tự động cho cây trồng
Trang 121.2 Thực tiễn áp dụng của Arduino vào đề tài.
Nhóm xin đưa ra một ví dụ về ứng dụng của Arduino về giám sát nhà vườn Họ sẽ
cung cấp cho một liên lạc hiện đại để làm vườn và kết nối một số thông tin về khu vườn của họ với Internet Sử dụng một cảm biến đọ ẩm và nhiệt độ đất kết nối với mộtArduino và một chip Wifi để tự động gửi số đo từ khu vườn của bạn lên Internet Một dịch vụ gọi Carriots để xử lý các dữ liệu và hiển thị nó lên trên một trang Web Sau đó,một email hoặc tin nhắn SMS hiển thị cảnh báo có thể được gửi cho bạn tự động nếu
độ ẩm giảm xuống thấp hơn một ngưỡng nhất định Hình ảnh dưới dạng đại diện cho
hệ thống khi lắp ráp hoàn chỉnh và với bộ cảm biến chôn xuống đất bên cạnh một bo mạch hoàn chỉnh từ ví dụ thực tiễn này cùng với sự giúp đỡ của giáo viên hướng dẫn , nhóm đã lựa chọn và phát triển đề tài theo hướng sử dụng kid Arduino để thực hiện đề tài của mình
1.2 Giới hạn bài toán giám sát nhà trồng
Do đây mới là lần đầu tiên những thành viên trong nhóm làm một đề tài nghiên cứu, cộng với kiến thức còn nhiều hạn chế, đề tài bọn em vẫn còn một số hạn chế như : + Chưa đo đạc được nhiều thông số, quy mô áp dụng còn hạn chế
+ Chưa đẩy được dữ diệu qua mạng
Trang 13Chương 2: THIẾT BỊ VÀ GIẢI PHÁP CÔNG NGHỆ
2.1 Giới thiệu chung về Arduino
Arduino thực sự đã gây sóng gió trên thị trường người dùng DIY trên toàn thếgiới trong vài năm gần đây,gần giống vớnhững gìApple đã làm được trên thị trườngthiết bị di động Số lượng người dùng cực lớn và đa dạng với trình độ trải rộng từ bậcphổ thông lên đến đại học đã làm cho ngay cả những người tạo ra chúng phải ngạcnhiên về mức độ phổ biến
Hình 2.1: Những thành viên khởi xướng Arduino
Arduino là gì mà có thể khiến ngay cả những sinh viên và nhà nghiên cứu tại cáctrường đại học danh tiếng như MIT, Stanford, Carnegie Mellon phải sử dụng;hoặc ngay cả Google cũng muốn hỗ trợ khi cho ra đời bộ kit Arduino Mega ADKdùng để phát triển các ứng dụng Android tương tác với cảm biến và các thiết bị khác?
Arduino thật ra là một bo mạch vi xử lý được dùng để lập trình tương tác với cácthiết bị phần cứng như cảm biến, động cơ, đèn hoặc các thiết bị khác Đặc điểmnổi bật của Arduino là môi trường phát triển ứng dụng cực kỳ dễ sử dụng, với mộtngôn ngữ lập trình có thể học một cách nhanh chóng ngay cả với người ít am hiểu vềđiện tử và lập trình Và điều làm nên hiện tượng Arduino chính là mức giá rất thấp vàtính chất nguồn mở từ phần cứng tới phần mềm Chỉ với khoảng $30, người dùng đã
có thể sở hữu một board Arduino có 20 ngõ I/O có thể tương tác và điều khiển chừng
ấy thiết bị
Arduino ra đời tại thị trấn Ivrea thuộc nước Ý và được đặt theo tên một vị vuavàothế kỷ thứ 9 là King Arduino Arduino chính thức được đưa ra giới thiệu vào năm2005
Trang 14như là một công cụ khiêm tốn dành cho các sinh viên của giáo sư Massimo Banzi, làmột trong những người phát triển Arduino, tại trường Interaction Design InstistuteIvrea(IDII) Mặc dù hầu như không được tiếp thị gì cả, tin tức về Arduino vẫn lantruyền với tốc độ chóng mặt nhờ những lời truyền miệng tốt đẹp của những ngườidùng đầu tiên.
Hiện nay Arduino nổi tiếng tới nỗi có người tìm đến thị trấn Ivrea chỉ để tham quannơi đãsản sinh ra Arduino
2.2 Giới thiệu về board ArduinoMega 2560
Hình 1.2 Board Arduino Mega
Tổng quan
Arduino Mega 2560 là mộtbo mạch chủ sử dụngvi điều khiển ATmega2560 Nó
có 54 chân kỹ thuật số đầu vào / đầu ra (trong đó 15 chân có thể xuất ra xung PWM),
16 đầu vào analog, 4 UARTs (cổng nối tiếp phần cứng),16 MHz dao động tinh thể, kếtnối USB, một jack cắm điện, một tiêu đề ICSP, và một nút reset Nó chứa tất cả mọithứ cần thiết để hỗ trợ các vi điều khiển; chỉ cần kết nối nó với máy tính bằng cáp USBhoặc điện nó với một bộ chuyển đổi AC-to-DC hoặc pin để bắt đầu Mega là tươngthích với hầu hết các lá chắn được thiết kế cho các Arduino Duemilanove hoặcDiecimila
Mega 2560 là một bản cập nhật cho Mega Arduino , mà nó thay thế
Các Mega2560 khác với tất cả các bảng trước ở chỗ nó không sử dụng các FTDI chip điều khiển USB-to-serial Thay vào đó, nó có tính năng ATmega16U2
Sơ đồ nguyên lý
Trang 15Hinh 2.3 Sơ đồ nguyên lý của boar Arduino mega 2650
Trang 16CHI TIẾT VỀ THÔNG SỐ
Điện áp đầu vào (được đề
Điện áp đầu vào (giới hạn) 6-20V
Digital I / O Pins 54 (trong đó 15 người cung cấp đầu ra PWM)
DC hiện tại mỗi I / O Pin 40 mA
DC hiện tại cho 3.3V Pin 50 mA
Bộ nhớ flash 256 KB trong đó 8 KB sử dụng bởi bộ nạp khởi
Bo mạch có thể hoạt động trên một nguồn cung cấp bên ngoài của 6-20volt Nếu cung cấp ít hơn 7V, tuy nhiên, pin 5V có thể cung cấp ít hơn năm volt và bomạchcó thể không ổn định Nếu sử dụng nhiều hơn 12V, bộ điều chỉnh điện áp có thể
bị quá nóng và làm hỏng các bảng mạch Phạm vi đề nghị là 7-12 volt
Các chân điện như sau:
VIN Các điện áp đầu vào cho các board Arduino khi nó được sử dụng mộtnguồn điện bên ngoài (như trái ngược với 5 volts từ các kết nối USB hoặc nguồn điệnquy định khác) Bạn có thể cung cấp điện áp thông qua pin này, hoặc, nếu cung cấpđiện áp thông qua jack cắm điện, truy cập thông qua pin này
5V pin này xuất ra một 5V quy định từ điều trên diễn đàn Hội đồng quản trị
có thể được cung cấp nguồn điện hoặc từ các jack cắm điện DC (7 - 12V), kết nối USB(5V), hoặc pin VIN của hội đồng quản trị (7-12V) Cung cấp điện áp qua các 5V hoặc3.3V chân đi qua bộ điều chỉnh, và có thể làm hỏng máy của bạn Chúng tôi không báocho nó
Trang 17 3v3 Một nguồn cung cấp 3,3 volt được tạo ra bởi những điều trên tàu Vẽhiện hành tối đa là 50 mA.
GND trệt chân
IOREF pin này trên bảng Arduino cung cấp các tài liệu tham khảo điện áp
mà các vi điều khiển hoạt động Một lá chắn cấu hình đúng cách có thể đọc các pinđiện áp IOREF và chọn nguồn năng lượng thích hợp hoặc cho phép dịch điện áp trêncác kết quả đầu ra để làm việc với các 5V hoặc 3.3V
Bộ nhớ
Các ATmega2560 có 256 KB bộ nhớ flash để lưu trữ mã (trong đó có 8 KBđược sử dụng cho các bộ nạp khởi động), 8 KB của SRAM và 4 KB của EEPROM(mà có thể được đọc và ghi với các thư viện EEPROM )
Đầu vào và đầu ra
Mỗi phòng trong số 54 chân kỹ thuật số trên Mega có thể được sử dụng nhưmột đầu vào hoặc đầu ra, sử dụngpinMode () , digitalWrite () , và digitalRead () chứcnăng Chúng hoạt động tại 5 volts Mỗi pin có thể cung cấp hoặc nhận được tối đa 40
mA và có một điện trở kéo lên bên trong (ngắt kết nối theo mặc định) 20-50kOhms Ngoài ra, một số chân có chức năng đặc biệt:
Serial: 0 (RX) và 1 (TX); Nối tiếp 1: 19 (RX) và 18 (TX); Nối tiếp 2: 17(RX) và 16 (TX); Nối tiếp 3: 15 (RX) và 14 (TX) Được sử dụng để nhận (RX) vàtruyền (TX) TTL dữ liệu nối tiếp Pins 0 và 1 cũng được kết nối với các chân tươngứng của ATmega16U2 USB-to-TTL nối tiếp chip
Ngắt ngoài: 2 (gián đoạn 0), 3 (gián đoạn 1), 18 (gián đoạn 5), 19 (giánđoạn 4), 20 (gián đoạn 3) và 21 (gián đoạn 2) Các chân này có thể được cấu hình đểkích hoạt một ngắt trên một giá trị thấp, một góc lên và xuống, hoặc một sự thay đổitrong giá trị Xem cácattachInterrupt () chức năng để biết chi tiết
PWM: 2-13 và 44-46 Cung cấp 8-bit đầu ra PWM với analogWrite () chứcnăng
SPI: 50 (MISO), 51 (MOSI), 52 (SCK), 53 (SS) Các chân này hỗ trợ SPIgiao tiếp bằng cách sử dụng thư viện SPI Các chân SPI cũng được chia ra trên tiêu đềICSP, đó là chất tương thích với Uno, Duemilanove và Diecimila
LED: 13 Có một built-in LED kết nối với pin số 13 Khi pin là giá trị cao,đèn LED được bật, khi pin là LOW, nó ra
Trang 18 TWI: 20 (SDA) và 21 (SCL) Hỗ trợ TWI giao tiếp sử dụng các thư việnWire Lưu ý rằng các chân không ở cùng một vị trí như các chân TWI trênDuemilanove hoặc Diecimila.
Các Mega2560 có 16 đầu vào analog, mỗi trong số đó cung cấp 10 bit độ phângiải (tức là 1024 giá trị khác nhau).Theo mặc định họ đo từ mặt đất đến 5 volts, mặc
dù là nó có thể thay đổi vào cuối trên của phạm vi của họ bằng cách sử dụng pin Aref
Truyền thông kết nối với máy tính
Arduino Mega2560 có một số phương tiện truyền thông với một máy tính, mộtArduino, hoặc vi điều khiển khác.Các ATmega2560 cung cấp bốn phầncứng UARTs cho TTL (5V) giao tiếp nối tiếp Một ATmega16U2 ( ATmega 8U2 vềsửa đổi 1 và phiên bản 2 bảng) trên kênh board một trong những trên USB và cung cấpmột cổng com ảo với phần mềm trên máy tính (máy tính Windows sẽ cần một file inf,nhưng OSX và Linux máy sẽ công nhận hội đồng quản trị như một cổng COM tựđộng Các phần mềm Arduino bao gồm một màn hình nối tiếp cho phép dữ liệu vănbản đơn giản được gửi đến và đi từ hội đồng quản trị Các RX và TX đèn LED trênbảng sẽ nhấp nháy khi dữ liệu đang được truyền đi thông qua ATmega8U2 /ATmega16U2 chip và USB kết nối với máy tính (nhưng không cho giao tiếp nối tiếptrên các chân 0 và 1)
Một thư viện SoftwareSerial cho phép giao tiếp nối tiếp trên bất kỳ của các chân kỹ thuật số của Mega2560
Các ATmega2560 cũng hỗ trợ TWI và SPI truyền thông Các phần mềmArduino bao gồm một thư viện Wire để đơn giản hóa việc sử dụng các bus TWI; Đốivới SPI giao tiếp, sử dụng cácthư viện SPI
Lập trình
Arduino Mega có thể được lập trình với các phần mềm ArduinoCác ATmega2560 trên Mega Arduino đi kèm preburned với một bộ nạp khởi động
Trang 19cho nó mà không sử cho phép bạn tải lên mã mới dụng một lập trình viên phần cứngbên ngoài Nó giao tiếp bằng cách sử dụng gốc STK500 giao thức ( tài liệu thamkhảo , các tập tin tiêu đề C ).
2.3 Giới thiệu về board Arduino Data logger
Hình 2.4 Bảng mạch data loggerCác bo mạch datalogger có một vài điều để làm cho nó một cách tuyệt vời đểtheo dõi dữ liệu Top Left - Có một đồng hồ thời gian thực (RTC) trong đó có một chipDS1307, và pin dự phòng có thể sử dụng trong 7 năm Điện áp cấp của board là 3.3Vđến 3V để mạch có thể hoạt động một cách tốt nhất có 1 LED màu xanh lá cây PWRbáo nguồn (Power) - Một thẻ SD lớn có thể phù hợp với bất kỳ lưu trữ SD / MMC lênđến 32G bạn cũng có thể dung 1 thẻ microSD và một khay chứa thẻ cũng có thể chovào và sử dụng bình thường Đơn giản chỉ cần đẩy hoặc kéo thẻ vào khe cắm này Cóhai đèn LED sử dụng configuratble.Kết nối một chân từ bất kỳ từ Arduino và nối
L1 hoặc L2 vào chân kết nối bằng 1 sợi dây dẫn để bật LED1 hoặcLED2sáng
Một nút reset sẽ thiết lập lại toàn bộ Arduino, tiện dụng khi bạn muốn reset lạichương trình của boar Arduino chính Một shifter mức giữ thẻ SD an toàn từ các tínhiệu 5V có khả năng gây hại từ Arduino.Nó sẽ làm việc với các tín hiệu 3V là tốt
3V - đây là 3V đầu ra Một mức điện áp tham chiếu 3.3V chất lượng tốt
của nó mà bạn có thể sử dụng đến một cách rất tốt
Trang 20 SQ - đây là squarewave tùy chọn từ RTC Bạn phải dung lệnh để kích
hoạt nó một cách tùy chọn nhận được một squarewave chính xác
WP - này là viết vàbảo vệ pad trên thẻ SD, bạn có thể sử dụng điều này
để phát hiện nếu các tab bảo vệ ghi trên thẻ bằng cách kiểm tra pin này
CD - đây là thẻ phát hiện pad trên thẻ SD Khi điều này được kết nối với
đất, một thẻ SD được chèn vào Nên sử dụng pullup nội bộ trên một pin Arduino nếubạn muốn sử dụng pad này
CS - đây là Chip Select pin cho thẻ SD Nếu bạn cần phải cắt giảm các
dấu vết để pin 10 vì nó là mâu thuẫn, pad này có thể được hàn với bất kỳ pin kỹ thuật
số và các phần mềm tái tải lên
L2 và L1 - đây là những tùy chọn sử dụng đèn LED Kết nối với bất kỳ
pin kỹ thuật số,chọn mức cao để bật đèn LED tương ứng Các đèn LED đã có 470 ohmđiện trở trong series
2.4 Giới thiệu về Arduino LCD KeyPad Shield
Các tấm LCD Bàn phím được phát triển cho tương thíchvớicác boar Arduino,
để cung cấp một giao diện người dùng thân thiện cho phép người dùng kiểm tra thông
số, thực hiện lựa chọn vv….Nó bao gồm một 1602 ký tự trắng đèn nền màu xanhLCD Bàn phím bao gồm 5 phím -, xuống chọn, lên, phải và bỏ đi Để lưu các chân IO
kỹ thuật số, giao diện bàn phím chỉ sử dụng một kênh ADC Giá trị quan trọng đượcđọc thông qua một điện áp chia 5 giai đoạn
Trang 222.5 Giới thiệu về cảm biến nhiệt độ LM35
Cảm biến LM35 là bộ cảm biến nhiệt mạch tích hợp chính xác cao mà điện ápđầu ra của nó tỉ lệ tuyến tính với nhiệt độ thang Celsius Chúng không yêu cầu cânchỉnh ngoài vì vốn chúng đã được cân chỉnh
Đặc điểm chính của cảm biến LM35 :
- Điện áp đầu vào từ 4V đến 30V
- Độ phân giải điện áp đầu ra là 10mV/˚C
- Độ chính xác cao ở 25 ˚C là 0.5˚
- Trở kháng đầu ra thấp 0.1 cho 1mA tải
Dải nhiệt độ đo được của LM35 là từ -55˚C đến 150˚C với các mức điện áp rakhác nhau Xét một số mức điện áp sau :
- Nhiệt độ 55˚C điện áp đẩu ra -550mV
- Nhiệt độ 25˚C điện áp đầu ra 250mV
- Nhiệt độ 150˚C điện áp đầu ra 1500mV
Tùy theo cách mắc của LM35 để ta đo các giải nhiệt độ phù hợp Đối với hệthống
này thì đo từ 0˚C đến 150˚C
Trang 232.6 Giới thiệu về cảm biến đo cường độ ánh sang Photo cell (CdS photoresistor)
Hình 2.7 cảm biến đo cường độ ánh sang Photo cell (CdS photoresistor)
Tổng quan
Tế bào CdS là bộ cảm biến ánh sáng nhỏ Như mặt nguệch ngoạc được tiếp xúcvới ánh sáng nhiều thì điện trở đi xuống Khi ánh sáng của nó,về 5-10KΩ, khi tối nó đilên đến 200KΩ
Để sử dụng, kết nối một bên của tế bào ảnh (một trong hai, đối xứng của nó) đểđiện (ví dụ 5V) và phía bên kia để pin đầu vào analog vi điều khiển của bạn Sau đókết nối một 10K kéo xuống điện trở từ đó pin analog mặt đất Các điện áp trên pin sẽđược 2.5V hoặc cao hơn khi ánh sáng của nó ra và gần mặt đất khi tối của nó
Kích thước:Length: 4.46mm / 0.18in
Chiều rộng: 5mm / 0.20in
Chiều cao: 2.09mm / 0.08in
Trang 24 2.7 giới thiệu về IC mạch cầu H L293D
Hình2.8 hình ảnh IC l293DL293D là IC cầu H điều khiển động cơ
điều khiển 2 L293D gồm 4 kênh điều khiển có thể động cơ DC hoặc 1 động cơbước 4 pha (5 dây) Để điều khiển động cơ DC, bạn sẽ sử dụng 2 kênh của L293D cho
1 động cơ
L293D đã được tích hợp sẵn đi ốt bảo vệ vi điều khiển chống lại dòng cảm ứngkhi động cơ khởi động hoặc tắt Vì vậy, bạn chỉ cần gắn motor vào L293D và các châncủa vi điều khiển tương ứng, là có thể làm cho động cơ chạy ngay Dòng L293D có 2loại: L293B/E và L293D, dòng L293B có khả năng chịu tải cao hơn (1A so với600mA của L293D) nhưng không có đi ốt bảo vệ vi điều khiển
Với mỗi motor, bạn cần 3 chân từ vi điều khiển kết nối với L293D, trong đó có
1 chân điều khiển tốc độ đông cơ dùng xung PWM, 2 chân còn lại là logic 0 hoặc 1dùng điều chỉnh chiều quay của motor
Tín hiệu điều khiển được xử lý độc lập với nhau với từng đầu ra Ví dụ: bạn cóthể điều khiển 2 động cơ DC chạy với tốc độ khác nhau, hướng khác nhau, 1 động cơdừng còn 1 động cơ chạy
Mỗi kênh 600mA và dòng đỉnh là 1A
Trang 25Để sử dụng các động cơ công suất của L293D chịu được tải cao hơn, bạn chỉviệc gắn song song 2 hoặc nhiều L293 lại với nhau Với 2 IC L293, bạn sẽ có tải chịuđược là 1.2A và tải đỉnh là 2A.
Ngoài ra, L293D có chức năng tự động ngắt khi bị nóng quá mức nhằm bảo vệ IC.Lưu ý: tuyệt đối không bao giờ làm chập mạch các ngõ ra motor của L293D,nếu không bạn sẽ làm cháy một bên cầu H ngay lập tức
2.8 Giới thiệu chung về phần mềm mô phỏng Proteus
Phần mềm Proteus là phần mềm cho phép mô phỏng hoạt động của mạch điện
tử bao gồm phần thiết kế mạch và viết chương trình điều khiển cho các họ vi điềukhiển như MCS-51, PIC, AVR, … Proteus là phần mềm mô phỏng mạch điện tử củaLancenter Electronics, mô phỏng cho hầu hết các linh kiên điện tử thông dụng, đặnbiệt hỗ trợ cho
các MCU như PIC, 8051, AVR, Motorola
Phần mềm bao gồm 2 chương trình: ISIS cho phép mô phỏng mạch và ARES
dùngđể vẽ mạch in Proteus là công cụ mô phỏng cho các loại vi điều khiển khá tốt, nó
hỗ trợcác dòng vi điều khiển PIC, 8051, PIC, dsPIC, AVR, HC11,…các giao tiếp I2C,SPI,CAN, USB, Ethenet…ngoài ra còn mô phỏng các mạch số, mạch tương tự mộtcách hiệu quả
Hình 2.9 Giao diện khởi động phần mềm Proteus
Trang 262.9 Thư viện Arduino trong Proteus
Thư viện Arduino là một bổ sung rất hay cho phần mềm mô phỏng Proteus nó giúpcho việc mô phỏng Arduino được thuận tiện và dễ dàng hơn thay vì chỉ mô phỏng đượcchip ATmega328(nhân của Arduino), thư viện này được phát triển bởi các kĩ sư Cesar
Osaka, Daniel Cezar, Roberto Bauer và được đăng tải trên blog tiếng Bồ Đào Nha:http://blogembarcado.blogspot.de/
Thư viện bao gồm các linh kiện sau:
- Arduino Uno (Phiên bản chip ATmega328 chân DIP)
- Arduino Uno (Phiên bản chip ATmega328 chân SMD
- Arduino Mega
- Arduino Lilypad
- Arduino Nano
- Cảm biến siêu âm Ultrasonic V2
Hình 2.10 Các linh kiện trong thư viện Arduino cho Proteus
2.10 Giới thiệu về Arduino IDE và ngôn ngữ lập trình cho Arduino
Thiết kế bo mạch nhỏ gọn, trang bị nhiều tính năng thông dụng mang lại nhiềulợithế cho Arduino, tuy nhiên sức mạnh thực sự của Arduino nằm ở phần mềm Môitrường lập trình đơn giản dễ sử dụng, ngôn ngữ lập trình Wiring dễ hiểu và dựa trên
Trang 27nền tảng C/C++ rất quen thuộc với người làm kỹ thuật Và quan trọng hơn là số lượngthư viện code được viết sẵn và chia sẻ bởi cộng đồng nguồn mở là cực kỳ lớn.
Hình 2.11 Giao diện phần mềm Arduino IDE
Arduino là phần mềm dùng để lập trình cho arduino Môi trường lập trình cho arduino làIDE có thể chạy trên ba nền tảng phổ biến nhất hiện nay là Windows, Macintosh OSX và Lunix Do có tính chất nguồn mở nên môi trường lập trình này hoàn toàn miễn phí và có thể mở rộng hơn bởi người dùng có kinh nghiệm
Ngôn ngữ lập trình có thể được mở rộng thông qua các thư viện C++.Và ngôn ngữ lập trình này dựa trên nền tảng của ngôn ngữ C của AVR nên người dùng hoàn toàn cóthể nhúng thêm code viết bằng AVR vào chương trình nếu muốn Hiện tại, Arduino IDE có thể download từ trang chủ http://arduino.cc/
Trang 282.11 Giới thiệu về phần mềm Visual Studio 2010.
- Visual Studio 2010 là công cụ xây dựng , lập trình mã nguồn để quản trị thôngtin hệ thống phát triển phần mềm của doanh nghiệp , xây dựng các ứng dụng cho máy
để bàn và các ứng dụng web
- Visual Studio 2010 Ultimate được xem như là một trong những công cụ thiết
kế tốt nhất hiện nay với việc phát triển phần mềm, triển khai các giải pháp doanhnghiệp
Hình 2.12: Giao diện phần mềm Visual Studio 2010
- Visual Studio 2010 Ultimate được tăng cường thêm những giải pháp giảmthiểu nguy cơ trong quá trìh phát triển thiết kế
- Visual Studio 2010 Ultimate tạo ra những giải pháp về phần mềm , phát triểnmột số cung cụ tuyệt vời của ứng dụng lập trình
- Có thể nói Visual Studio 2010 Ultimate là phần mềm không thể thiếu dànhcho các kỹ thuật viên phần mềm và một số công ty phát triển phần mềm
Những chức năng chính của Visual Studio 2010 Ultimate.
Trang 29- Tạo ra các ứng dụng trên máy tính có cài đặt NET Framework 2.0.
- Sử dụng không gian System Windown.Form
- Thiết kế giao diện trực quan
b Thiết kế giao diện quản lý thông số nhà trồng
* Giao diện thiết kế
Hinh 2.13: Giao diện thiết kế trên C#
Trang 30Chương 3: THIẾT KẾ, LẬP TRÌNH,LẮP ĐẶT MẠCH VÀ
VẼ ĐỒ THỊ THỂ HIỆN GIÁ TRỊ3.1 Thiết kế mạch trên Proteus
Nhóm nhiệt rồi tín hiệu từ này lại được truyền Arduino ra LCD.Ngoài ra,ngoàigiá trị nhiệtđộ,cường độánh sang, giá trịđộẩmđượcđọc từ một biến trở10K mang giáđãđồng ý với phương án thiết kế mạch đo nhiệt độ, ánh sáng hiển thị lên LCD bao gồmcác chức năng hiển thị độ C và cường độánh sáng.Ở phương pháp này, tín hiệu đượctruyền từ cảm biến LM35,cảm biến ánh sáng photocell vào Arduino và được tính toán
ra trị tượng trưng có thể điều chỉnhđược cho phù hợp với môi trường
Tiếp đến là phần kết nối với IC L293D để điều khiển 2 động cơ DC một chiều12V IC L293D được kết nối trực tiếp vớiArduino mega sử với mỗi động cơphải sửdụng 3 chân điều khiển.Và mỗi động cơ có thểđiều chỉnhđược tốc độ qua các biến trở100K được kết nối trực tiếp vào các cổnganalog của Arduino mega.Ngoài ra các động
cơ có thểđảo chiều bằng cách nhấn dữ phím bấm cũngđược kết nối trực tiếp vào bomạch chủ
Cuối cùng làđặt ngưỡng cảnh báo giám sát nhiệt độ cho phù hợp với nhu cầungười dung, bằng các LED LED màuđỏ thể hiện nhiệt độđang cao.LED màu xanh thểhiện nhiệt độ vừađủ LED màu trắng thể hiện nhiệtđộđang thấp.Các LED cũngđượckết nối trực tiếp với Arduino mega
Hình 3.1 Sơđồ nguyên lý của mạch
Trang 31Bảng 3.1 Sơ đồ chân kết nối của các linh kiệnTên linh kiện Chân linh kiện Chân kết nối với Arduino
EN2 Vin1Vin2Vin3Vin4
502848463032
894567
Như chương trước đã giới thiệu, cảm biến LM35 đo nhiệt độ và thể hiện nhiệt
độ đó dưới dạng điện áp (cứ 10mV là 1 độ, tối đa điện áp cung cấp là 5000mV –10bit), nhiệt độ chính do vậy để cho ra được giá trị xác, trước hết, ta sử dụng hàmanalogRead() để đọc giá trị điện áp từ cảm biến LM35 dưới dạng nhiệt độ Giá trị điện
áp này sẽ được tính toán để ra giá trị nhiệt độ theo công thức:
tempC=(val/(1024*10))*5000 = val* 0.48828125 (trong đó: val là giá trị đọcvào từ cảm biến, tempC là giá trị nhiệt độ thang Celsius) Chuyển đổi sang nhiệt độthang Farenheit (oF) ta dùng công thức: tempF=(tempC*9)/5+32 = tempC*1.8+32
Trang 32Cònđối với cảm biến ánh sáng photocell việc đọc giá trịđo là thực sự rất đơngiản Chỉđơn giản làđọc trực tiếp từ cổnganalog A0, để đo cường độ ánh sáng Giá trị này
sẽ rơi vào khoảng từ 0-700 Tùy vào các thí nghiệm thực tế mà người dung quan sátđược
để khuyến cáođược giá trị cần thiết cho phù hợp với nhu cầu sử dụng của mình
Giá trị của độẩm sẽđược lấy một cách tượng trưng từ một chiếtáp 50K đượcnối trực tiếp vào chânanalog của Arduino mega
Sau đây là code đầy đủ của phần đo nhiệt độ, ánhsáng và độẩm
int tempReading = analogRead(tempPin);
float voltage = tempReading * aref_voltage / 1024;
float temperatureC = tempReading * 0.48828125;
float temperatureF = (temperatureC * 9 / 5) + 32;
3.2.2 Lập trình hiển thị giá trị lên LCD 16.2
Sau khi các giá trị của các cảm biến được đọc thì shieuld LCD sẽ có nhiệmvụđọc các giá trị lên màn hình.Do màn hình LCD 16.2 chỉ hiển thịđược 2 dòng nênởđây bọn em ưu tiên hiển thị giá trị cường độ sang ở dòng thứ nhất,giá trị nhiệt độởdòng thứ 2 với kiểuđộ C,lấy chính xác giá trịđọcđược sau dấu phẩy 2 ký tự
Các chân BS E D4 D5 D6 D7 của LCD sẽ lần lượtđược kết nối trực tiếp vàocác chân digital sau 8 9 4 5 67 để giúp cho nó có thể hiển thị.Tất cả quá trìnhđọc vàghi dữ liệu sẽđược tạo trễ là 500ms
Code kết nối chân và hiển thị giá trị lên LCD
Trang 33lcd.setCursor(6, 1);
lcd.print(temperatureC);
delay(500);
3.3 Lập trình điều khiển động cơ và đặt ngưỡng cảnh báo giới hạn
3.3.1 Lập trình điều khiển động cơ
Hình 3.2 Lưu đồ thuậttoán điều chỉnh động cơ
Các chân của IC L293D được Pin vào Arduino mega cho phù hợp và chính xácTrong vòng lặp,giá trị điều khiển tốc độ động cơ được thực hiện bằng cách chiaviệc đọc tương tự từ các chếtáp xoay với 4
KHAI BÁO
KHAI XUẤT CỔNG RA
VÒNG LẶP CHÍNH
CÀI ĐẶT
Trang 34Phải chia cho 4 vì giá trị analog nhận được ở khoãng giữa 0 và 1023 màđầu raanalog cần được từ 0 đến 255.
Nếu nút được nhấn, động cơ đảo chiều quay, nếu không nó sẽ chạy theo hướngngược lại.Việcđảo chiều động cơ nàyđược thực hiện bằng chân pin switch Vì vậy, nếucác nút không được nhấn, đây sẽ quay theo chiều thuận, nếu không nó sẽ quay theochiều nghich
Tốc độ của động cơ và chức năng đảo chiều sẽ được chuyển tới một chức nănggọi là 'setMotor' rằng sẽ thiết lập các chân thích hợp trên chip điều khiển để điều khiểnđộng cơ
void setMotor(int speed, boolean reverse)
Đâu tiên, tốc độ được dùng một thiết lập bằng cách sử dụnganalogWrite cho
phép pinđược chọn làm việc Việc cho phép pin của L293D có thểđiều chỉnh hoặc tắtbất kể các chân in1, in2, in3 và in4 của L293Dkhi được thiết lập để
Để điều khiển hướng của động cơ, các chân in1 và in2,in3 và in4 phải đượcthiết lập các giá trị trái ngược nhau
Trang 35DigitalWrite tiếp theo Điều này có nghĩa rằng nó sẽ luôn luôn là đối lập vớicác mức giá trị ở in1.
3.3.2 Lập trình đặt ngưỡng cảnh báo và điều chỉnh động cơ theo hướng cảnh báo
Ở đây nhóm thiết kế và sử dụng 3 đèn led mầu
+ Nếu ở nhiệt độ thấp thì led mầu trắng sáng và đồng thời cho một động cơ quay+ Nếu ở nhiệt độ thấp thì led mầu trắng và xanh sáng và đồng thời cho haiđộng cơ quay
+ Nếu ở nhiệt độ thấp thì cả 3 đèn led sáng và đồng thời cho ba động cơ quay
=>động cơ quay sẽ tượng trưng cho tưới việc
Giá trị nhiệt độđượcđọcở thang đo độ C sẽđược lấy và đặt ngưỡng cảnh báo vàgiám sát cho hệthống
if (temperatureC < 21) lightLED(whitePin);
if (temperatureC >= 21 && temperatureC <= 24) lightLED(greenPin);
if (temperatureC > 24) lightLED(redPin);
void lightLED(byte whatLED){
digitalWrite(whitePin, LOW); //white led is off
digitalWrite(redPin, LOW); //red led is off
digitalWrite(greenPin, LOW); //green led is off
Ởđây nhiệt độ sẽđược phân chia thành các mức khác nhau theo nhu cầu củangười sữ dụng để bật các led tương ứng với các đặc trưng phù hợp
3.4 Lập trình sử dụng modul Arduino datalogger và truyền ra cổng Serial
3.4.1 Lập trình sử dụng đồng hồ đếm thời gian thực DS1307 trên shieul datalogger
Các RTC (read time clock) sẽ được sử dụng là DS1307 Đây là IC có chi phí
thấp và nó cóthểsử dụng trong một khoảng thời gian dài nhờ một quả Pin nhỏ
Trang 36Hình 3.3 IC DS1307Khi có Pin, DS1307 sẽ đánh dấu cho một thời gian dài, ngay cả khi các Arduino mấtnguồn, hoặc được lập trình lại.
Hình 3.4 Lưu đồ thuật toán cho DS1307
Vòng lặp chính
Trong vòng lặpnày ,có các phần chính như sau
1 Thiết lập thời gian chờ cho đến khung làm việc của mình và các lượt tiếp theo
2 Yêu cầu thời gian và ngày tháng hiện From RTC
3 Đăng nhập thời gian và ngày tháng vào thẻ SD
4 Đọc cảm biến ánh sang,nhiệt độ vàđộẩm
5 Đăng những bài đọc vào thẻ SD
6 Dữ liệu đồng bộ hóa vào thẻ theo thời gian định sẵn
Điều quan trọng đầu tiên là khâu Delay () gọi hàm, đây là bước Arduino mega
chờ để thực hiện mệnh lệnh Sau đó, nhóm lần lập trình cho sang đèn LED màu xanh,điều này cho chúng ta biết rằng chúng tađang có quá trình đọc / ghi dữ liệu
Tiếp theo chúng ta gọi millis () để có được những "thời gian kể từ Arduino bật
'và đăng đó vào thẻ
Sau đó,rất quan trọng là sữ dụng câu lệnh RTC.now () gọi để có được một bản
chụp của thời gian Một khi chúng ta có điều đó, ta sẽ viết một dấu thời gian (seconods
Trang 37kể từ năm 2000) cũng như các ngày trong YY / MM / DD HH: SS: MM định dạng
thời gian mà có thể dễ dàng được công nhận bởi một bảng tính
3.4.2 Lập trình xuất dữ liệu ra thẻ SD
Thẻ SD dung để ghi lại tất cả dữ liệu mà các cảm biếnđo được bao gồm cả thời gian được cập nhập từ RTC của IC DS1307.dữ liệu sẽđược lưu vào một file định dạng là một file exel
char filename[] = "LOGGER00.CSV";
for (uint8_t i = 0; i < 100; i++) {
filename[6] = i/10 + '0';
filename[7] = i%10 + '0';
if (! SD.exists(filename)) {
logfile = SD.open(filename, FILE_WRITE);
break; // leave the loop!
Trang 38ra LOGGER00.CSV và cách tăng thời gian mỗi khi các tập tin đã tồn tại, cho đến khi chúng tôi nhận được để LOGGER99.csv , nhómđã lập trình để cho sẽ có một tập tin
mới mỗi khi khởi động Arduino
Để tạo ra một tập tin, nhómsử dụng một số Unix cờ lệnh mà bạn có thể nhìn
thấy trong logfile.open () FILE_WRITE nghĩa để tạo ra các tập tin và ghi dữ liệu
vào nó
Nếu chúng ta quản lý để tạo ra một tập tin thành công và ghi vào thẻ SD, nhóm
in ra tên vào cổng Serial để quan sát trực tiếp bằng cổng nối tiếp với máy tính
Hình 3.5 Bảng số liệu đọc từ file Exel của thẻ SD
3.4.3 Giao diện cổng kết nối Serial
Trang 39Hình 3.6 Dao diện kết nối cổng Serial
3.5 Lập trình nhận dữ liệu từ cổng COM ảo, file dữ liệu và vẽ đồ thị cho các tham
số nhiệt độ,ánh sáng và độẩm
Hình 3.7 Giao diện thiết kế
Các bước thiết kế giao diện giám sát:
- Thiết kế giao diện
- Lập trình
- Mô phỏng
3.5.1 Thiết kế giao diện.
>>>Từ thanh công cụ Toolbox kéo thả các hình được giao diện như trên
Trang 40Hình 3.8.Giao diện thiết kế phần mềm.
>>> Thiết lập thuộc tính cho các đối tượng.
btketnoi Kết Nối Kết nối cổng Com
4 Nút nhấn
Thoát
btthoat Thoát Thoát khỏi giao diện
5 Nút nhấn Start btmode Start Vẽ đồ thị nhiệt độ,ánh sáng,
13 Text Data bits cbbits No Hiển thị số bit dữ liệu
14 Text Parity cbparity No Hiển thị bit kiểm tra chẵn lẻ