ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ MÔN HỌC VI XỬ LÝ, VI ĐIỀU KHIỂN ĐỀ TÀI MỞ RỘNG HỆ THỐNG TƯỚI CÂY TỰ ĐỘNG VÀ ĐIỀU KHIỂN BẰNG WEB SERVER Giảng viên PGS TS Phạm Mạnh Thắng Thành viên Ngu[.]
ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ MÔN HỌC VI XỬ LÝ, VI ĐIỀU KHIỂN ĐỀ TÀI MỞ RỘNG: HỆ THỐNG TƯỚI CÂY TỰ ĐỘNG VÀ ĐIỀU KHIỂN BẰNG WEB SERVER Giảng viên: PGS TS Phạm Mạnh Thắng Thành viên : Nguyễn Đức Minh - 19021081 Lê Quang Nam - 19021085 Nghiêm Quang Huy - 19021063 Hà Nội-2022 A Phần cứng I Giới thiệu Raspberry Pi Tổng quát: Lịch sử đời phát triển: 3 Sơ đồ chân Raspberry Pi 3: 4 Cấu trúc phần cứng: 5 Hệ điều hành cho Raspberry Pi 3: Các ứng dụng Raspberry Pi II Modun rơ le kênh III Cảm biến độ ẩm đất Giới thiệu module cảm biến Thông số kỹ thuật Động bơm nước IV V B Sơ đồ dây kết nối phần cứng Phần Code 10 I Cài hệ điều hành cho Raspberry Pi: 10 II Code điều hành Raspberry Pi đẩy liệu lên Firebase: 11 Các thư viện sử dụng: 11 khai báo chân biến cần dùng : 11 Lập trình hoạt động raspberry Pi: 11 Code hồn chỉnh 14 Giới thiệu ngơn ngữ thiết kế website 17 HTML 17 III a) Ưu điểm: 17 b) Nhược điểm: 17 CSS 18 Javascript 19 a) Ưu điểm Javascript 19 b) Nhược điểm Javascript 19 IV a) Phần Code web 20 Code chỉnh web css 20 Giải thích sơ qua code 20 b) 21 Code HTML 22 a) Giải thích sơ qua code 22 b) Code hoàn chỉnh 23 V Code hoàn chỉnh Code Javascript 24 a) Giải thích sơ qua code 24 b) Code hoàn chỉnh 26 Khảo sát yêu cầu kết 28 Yêu cầu 28 Kết 28 A Phần cứng I Giới thiệu Raspberry Pi Tổng quát: Raspberry Pi board máy tính đơn nhỏ, giá rẻ, kích thước thẻ tín dụng, tiết kiệm điện (vì nguồn điện cung cấp cho RPi có 5V) giới thiệu Raspberry Pi Foundation, kèm với CPU, GPU, cổng USB chân I/O có khả thực số chức đơn giản máy tính thơng thường Máy tính nhỏ bé phát triển với mục đích làm cho q trình học máy tính trở nên dễ dàng để học sinh trung bình nhận lợi ích dự đốn máy tính tiên tiến làm Lịch sử đời phát triển: Raspberry Pi (Model B hệ đầu tiên) đời vào năm 2012 sớm tiếng dễ sử dụng tính sẵn có Tương tự, Raspberry Pi giới thiệu vào tháng năm 2015 với chút cải tiến thiết kế có thêm RAM so với phiên trước Được giới thiệu vào năm 2016, Raspberry Pi Model B kèm với xử lý lõi tứ cho thấy hiệu mạnh mẽ gấp 10 lần Raspberry Pi Và tốc độ Raspberry Pi cao 80% so với Raspberry Pi Sơ đồ chân Raspberry Pi 3: Cấu trúc phần cứng: Đầu nối nguồn điện phần board mạch sử dụng để cung cấp nguồn V cho bo mạch Raspberry Pi Model B kèm với xử lý lõi tứ 64 bit, board mạch với tính WiFi Bluetooth USB Nó có tốc độ xử lý từ 700 MHz đến 1,4 GHz nhớ RAM dao động từ 256 đến 1GB CPU thiết bị coi não thiết bị chịu trách nhiệm thực thi câu lệnh dựa hoạt động toán học logic GPU (bộ xử lý đồ họa) chip tiên tiến khác tích hợp board mạch có chức tính tốn hình ảnh Pi kèm chân GPIO (General Purpose Input Output) cần thiết để trì kết nối với thiết bị điện tử khác Ngồi Raspberry Pi tích hợp cổng như: Ethernet, cổng USB, cổng xuất hình ảnh: HDMI RCA Video Hệ điều hành cho Raspberry Pi 3: Raspbian Linux hệ điều hành thức chạy Pi Hệ điều hành bên thứ ba khác hoạt động thiết bị RISC OS, OSMC, Windows 10 loT Core, Ubuntu MATE,… Tất hệ điều hành tải trực tiếp website thức địa chỉ: https://www.raspberrypi.org/downloads/ Thơng số kỹ thuật chính: ● 1,4 GHz 64 bit, Bộ xử lý lõi tứ Broadcom BCM2387 ARM Cortex-A53, nhanh 10 lần so với Raspberry Pi ● RAM 1GB (LPDDR2 SDRAM) cho phép bạn chạy ứng dụng nâng cao ● 802.11 b/g/n Wireless LAN ● On-board Bluetooth 4.1 ● cổng USB 2.0 ● Ethernet 300Mbit/s ● 40 chân GPIO ● HDMI hỗ trợ phiên 1.3/1.4 Composite RCA (PAL and NTSC) ● 10/100 BaseT Ethernet socket ● Camera interface (CSI), để kết nối với camera ● Display interface (DSI): sử dụng để kết nối Raspberry Pi với hình cảm ứng ● Khe cắm thẻ microSD: đễ lưu trữ liệu ● Micro USB power source ● VideoCore IV multimedia/3D graphics core @ 400MHz/300MHz Các ứng dụng Raspberry Pi Raspberry Pi kèm với loạt ứng dụng với khả thực hầu hết chức máy tính để bàn Ngồi ra, ta lập trình điều khiển Raspberry Pi vào ứng dụng khác như: ● ● ● ● ● ● ● II Máy chơi game Máy nghe nhạc, máy đọc sách Camera an ninh, quan sát từ xa Tự động hóa tịa nhà Điều khiển robot Internet Radio Máy pha cà phê Modun rơ le kênh Đây bảng giao diện Tiếp sức kênh 5V, Có thể điều khiển thiết bị khác thiết bị khác có dịng điện lớn - Dễ dàng điều khiển nhiều điều khiển Micro - Bo mạch có bốn lỗ bắt vít cố định xung quanh, đường kính lỗ 3,1mm, thuận tiện việc lắp đặt sửa chữa - Mô-đun tiếp sức sử dụng rơle SONGLE, Ném đôi cực, COM, KHÔNG, NC - Opto-couplers cách ly, chống nhiễu tốt - Kéo mức thấp, nhả mức cao. khi trạng thái kéo, đèn sáng; khi trạng thái thay được, đèn tắt - VCC nguồn cấp hệ thống, JD_VCC nguồn cung cấp relay, gửi relay 5V, Chỉ cần cắm Jumper Cap - Đầu tối đa rơ le: DC 30V, AC 250V - Hướng dẫn kết nối: - VCC: cực dương nguồn cấp điện hệ thống - GND: cực âm nguồn cấp hệ thống - IN1 - IN4: cổng điều khiển rơ le - Kích thước: 75 x 55 x 18,5 mm III Cảm biến độ ẩm đất Giới thiệu module cảm biến - Module Cảm Biến Độ Ẩm Đất sử dụng IC LM393, cảm biến độ ẩm đất kỹ thuật số dễ sử dụng Chỉ cần lắp cảm biến vào đất đo hàm lượng độ ẩm mực nước Nó cho đầu kỹ thuật số 5V độ ẩm cao 0V độ ẩm đất thấp - Cảm biến bao gồm biến trở để đặt ngưỡng độ ẩm mong muốn Đầu kỹ thuật số kết nối với điều khiển vi mô để cảm nhận mức độ ẩm Cảm biến xuất đầu tương tự kết nối với ADC điều khiển vi mơ để có mức độ ẩm xác đất, phù hợp để thực dự án làm vườn nước, cảm biến nước, v.v - Trạng thái đầu mức thấp (0V), đất thiếu nước đầu mức cao (5V), độ nhạy cao điều chỉnh biến trở Cảm biến độ ẩm đất sử dung tưới hoa tự động khơng có người quản lý khu vườn bạn dùng ứng dụng tương tự trồng - Độ nhạy cảm biến độ ẩm đất tùy chỉnh (bằng cách điều chỉnh chiết áp màu xanh board mạch) Phần đầu DO cắm vào đất để phát độ ẩm đất, độ ầm đất đạt ngưỡng thiết lập, đầu DO chuyển trạng thái từ mức thấp lên mức cao Thông số kỹ thuật ● Điện áp làm việc 3.3V ~ 5V ● Có lỗ cố định để lắp đặt thuận tiện ● Kích thước: 59 * 1.5 * 19.6 mm ● Sử dung chip LM393 để so sánh, ổn định làm việc ● Đầu kết nối sừ dung dây VCC 3.3V ~ 5V GND GND nguồn DO Đầu tín hiệu số (mức cao mức thấp) AO Đầu tín hiệu tương tự (Analog) IV Động bơm nước ● Sử dụng nguồn - 12V DC ● Điều khiển mạch nút nhấn ● Bơm có cánh quạt bọc nhựa cứng an tồn không rỉ sét ● Motor chạy êm, cuộn dây đồng nguyên chất V ● ● ● ● ● Sơ đồ dây kết nối phần cứng Cảm biến: Rơ le VCC - pin 17 GND - pin 39 GND - pin 25 In1 - pin 40 D0 - pin 29 Vcc - pin Vcc cấp nguồn Gnd nối đất D0 vs in1 nhận xuất tín hiệu Chỗ tất nối thường đóng Cách nối rơ-le: ngắt in1 = bật in1=0 B I Phần Code Cài hệ điều hành cho Raspberry Pi: Đầu tiên, tải xuống hệ điều hành Raspberry Pi OS (Raspbian) trực tiếp từ Website nhà sản xuất: https://www.raspberrypi.org/downloads/raspberry-pi-os/ Ở đây, nhóm em chọn RP OS (32-bit) with desktop and recommended software Sau tải xong, Flash image vào thẻ nhớ SD để cài hệ điều hành Balena Giao diện BalenaEtcher Sau cài xong thẻ, rút thẻ khỏi máy tính cắm vào Raspberry Pi để boot Giao diện Desktop khi khởi động lần data = {"TongSoGiayTuoiCay":sogiaytuoicay,"ThoiDiemTuoiCayCuoiCung":tdtccc.strftim e("%H:%M:%S, %d/%m/%Y"),"TongSoLanTuoiCay":solantuoicay} db.child("HeThongTuoiCayTuDong").set(data) demtg = {"DemThoiGian":batdaudem} db.child("BamNutTuoiCay").set(demtg) try: while True: while btht.val()== 1: print("Da san sang.") GPIO.output(40, GPIO.HIGH) btht = db.child("CheDo").child("SoThuTu").get() batdaudem = time.sleep(.1) while btht.val() == 2: print("Tuoi cay tu dong.") if (GPIO.input(29))==0: GPIO.output(40, GPIO.HIGH) btht = db.child("CheDo").child("SoThuTu").get() batdaudem = if i==1: solantuoicay = solantuoicay + i=0 db.child("HeThongTuoiCayTuDong").update({"TongSoLanTuoiCay":solantuoicay}) elif (GPIO.input(29))==1: GPIO.output(40, GPIO.LOW) if i==0: i=1 tdtccc = datetime.datetime.now() 14 db.child("HeThongTuoiCayTuDong").update({"TongSoGiayTuoiCay":sogiaytuoicay ,"ThoiDiemTuoiCayCuoiCung":tdtccc.strftime("%H:%M:%S, %d/%m/%Y”)}) db.child("BamNutTuoiCay").update({"DemThoiGian":batdaudem}) sogiaytuoicay = sogiaytuoicay + 32 sogiaytuoicay = round(sogiaytuoicay,2) batdaudem = batdaudem + 32 batdaudem = round(batdaudem,2) btht = db.child("CheDo").child("SoThuTu").get() time.sleep(.1) while btht.val()==3: print("Khoi dong may bom.") GPIO.output(40, GPIO.LOW) btht = db.child("CheDo").child("SoThuTu").get() time.sleep(.1) finally: GPIO.cleanup() if name ==" main ": main() III Giới thiệu ngôn ngữ thiết kế website HTML HTML viết tắt Hyper Text Markup Language (ngôn ngữ đánh dấu siêu văn bản) HTML cho phép người dùng tạo cấu trúc hóa thành phần trang web đoạn văn, tiêu đề, liên kết, trích dẫn, bảng biểu ⮚ Các phần tử HTML khối trang web HTML, đại diện thẻ đánh dấu (tag) ⮚ Thẻ đánh dấu HTML chứa nội dung ‘paragraph’, ‘heading’, ‘table’ ⮚ Trình duyệt khơng hiển thị thẻ HTML dùng chúng để hiển thị nội dung trang 15 Một số thuật ngữ HTML thường gặp để sử dụng dễ dàng thuận tiện hơn: ⮚ Elements: Là định xác định nội dung, cấu trúc đối tượng Website Tên Element bao quang, xác định dấu ngoặc < > Những yếu tố sử dụng phổ biến đoạn văn (), cấp độ tiêu đề (từ đến ), danh sách tiếp tục bao gồm , , , , ,… ⮚ Tags: Một Element bao quanh dấu ngoặc < > tạo thẻ Ví dụ thẻ mở dấu hiệu cho bạn biết bắt đầu Element (ví dụ: ) Thẻ đóng đánh dấu vào cuối Element, có hình thức dấu ngoặc nhỏ + dấu chéo + dấu ngoặc lớn (ví dụ: ) Ở thẻ mở thẻ đóng nội dung Element ⮚ Attributes: Là thuộc tính sử dụng để cung cấp thông tin bổ sung Element Các Attributes bao gồm tên giá trị, xác định sau tên thành phần thẻ mở Attributes có định dạng sau: tên thuộc tính + dấu + giá trị thuộc tính trích dẫn Ví dụ Element gồm Attribute href: Shay Howe Một số thuộc tính mà tơi thường dùng Attribute Class, ID, SRC, thuộc tính href,… a) Ưu điểm: ● ● ● ● ● ● ● Ngôn ngữ sử dụng rộng rãi với nhiều nguồn tài nguyên hỗ trợ cộng đồng sử dụng vơ lớn đằng sau Có thể hoạt động mượt mà hầu hết trình duyệt hành Quá trình học HTML đơn giản Mã nguồn mở hồn tồn miễn phí Các Markup sử dụng HTML thường ngắn gọn đồng Chuẩn web vận hành World Wide Web Consortium (W3C) Dễ dàng tích hợp với ngơn ngữ backend PHP, Node.js, b) Nhược điểm: Ngôn ngữ áp dụng chủ yếu cho trang web tĩnh Đối với tính động, bạn cần sử dụng JavaScript ngơn ngữ backend bên thứ ví dụ PHP ● Người dùng phải tạo trang web riêng lẻ cho HTML, phần tử giống ● Một số trình duyệt chấp nhận tính cách chậm chạp Đơi trình duyệt cũ khơng phải lúc hiển thị thẻ ● CSS CSS là ngôn ngữ tạo phong cách cho trang web – Cascading Style Sheet language Nó dùng để tạo phong cách định kiểu cho yếu tố viết dạng ngôn ngữ đánh dấu, là HTML Nó điều khiển định dạng nhiều trang web lúc để tiết kiệm cơng sức cho người viết web Nó phân biệt cách hiển thị trang web với nội dung trang cách điều khiển bố cục, màu sắc, font chữ 16 Mối tương quan HTML CSS mật thiết HTML ngôn ngữ markup (nền tảng site) CSS định hình phong cách (tất tạo nên giao diện website), chúng tách rời Nếu website load CSS có trắng chữ xuất màu đen xanh Trước sử dụng CSS hầu hết phong cách CSS đính kèm bên HTML markup Chính vậy, bạn cần thực tách để dễ dàng xác định cho thành phần như: background, font colors, canh hàng, Vậy, ưu điểm CSS sau: ⮚ CSS giúp bạn thực định kiểu thứ muốn lên file khác Nhờ vậy, bạn tạo phong cách phù hợp tích hợp file CSS lên file HTML Điều giúp cho HTML makup rõ ràng người dùng quản lý website dễ dàng hơn. ⮚ Sử dụng CSS giúp bạn không cần thực lặp lại mơ tả cho thành phần Từ đó, bạn tiết kiệm tối đa thời gian làm việc với nó, làm code ngắn lại giúp kiểm sốt dễ dàng lỗi khơng đáng có. ⮚ CSS giúp người dùng nhiều styles trang web HTML nên khả điều chỉnh trang bạn trở nên vơ hạn. CSS có vai trị quan trọng website ⮚ Nhờ CSS mà mã nguồn trang Web tổ chức gọn gàng hơn, trật tự hơn, nội dung trang web tách bạch việc định dạng hiển thị Từ đó, trình cập nhập nội dung dễ dàng hạn chế tối thiểu làm rối cho mã HTML. ⮚ CSS tạo nhiều kiểu dáng nên áp dụng với nhiều trang web, từ giảm tránh việc lặp lại định dạng trang web giống nhau. Javascript Javascript là ngơn ngữ lập trình website phổ biến nay, tích hợp nhúng vào HTML giúp website trở nên sống động JavaScript đóng vai trị phần trang web, thực thi cho phép Client-side script từ phía người dùng phía máy chủ (Nodejs) tạo trang web động 17 JavaScript là ngơn ngữ lập trình hỗ trợ tất trình duyệt Firefox, Chrome, … chí trình duyệt thiết bị di động JavaScript là một ngơn ngữ lập trình thơng dịch với khả hướng đến đối tượng Là ngơn ngữ lập trình web có mối liên hệ lẫn để xây dựng website sống động, chuyên nghiệp: ● HTML: Hỗ trợ việc xây dựng layout, thêm nội dung dễ dàng website ● CSS: Hỗ trợ việc định dạng thiết kế, bố cục, style, màu sắc,… ● Javascript: Tạo nên nội dung “động” website a) Ưu điểm Javascript JavaScript có ưu điểm xem vượt trội so với đối thủ khác trường hợp thực tế như: ● ● ● ● ● ● ● Chương trình JavaScript dễ học Lỗi JavaScript dễ phát giúp bạn sửa lỗi nhanh Các trình duyệt web dịch HTML mà khơng cần compiler JS hoạt động nhiều tảng trình duyệt khác Được đánh giá ngơn ngữ lập trình nhẹ, nhanh so với ngơn ngữ khác JS gắn số element events trang web Khi website có sử dụng JS giúp cho trang web tương tác tăng trải nghiệm người dùng truy cập ● Bạn tận dụng JavaScript để kiểm tra input thay kiểm tra thủ cơng thơng qua việc truy xuất database ● Giao diện phong phú gồm thành phần Drag and Drop, Slider để cung cấp Rich Interface (Giao diện giàu tính năng) b) Nhược điểm Javascript Mặt khác, ưu điểm ngơn ngữ lập trình khác có nhược điểm riêng như: ● ● ● ● ● ● Dễ bị khai thác từ hacker scammer Có thể dụng để thực thi mã độc máy tính người dùng JS code snippet lớn Các thiết bị khác thực JS khác dẫn đến khơng đồng Vì tính bảo mật nên client-side JavaScript không cho phép đọc ghi file JS không hỗ trợ sử dụng kết nối mạng ● JavaScript khơng có khả đa luồng đa xử lý IV Phần Code web Code chỉnh web css a) Giải thích sơ qua code 18 Đầu tiên xây dựng phần body lệnh background-image backgroundcolor để tạo phông màu cho trang web Tiếp theo thiết kế màu chữ phồng thơng số dãn cách dịng cho trang web Cuối ta tạo hiệu ứng lên cho nút bấm trang web đưa chuột vào click chuột 19 ... sogiaytuoicay = sgtc.val() solantuoicay = sltc.val() tdtccc = tdcc.val() battat = {"SoThuTu": 1} db.child("CheDo").set(battat) 13 data = {"TongSoGiayTuoiCay":sogiaytuoicay,"ThoiDiemTuoiCayCuoiCung":tdtccc.strftim... qua website Bật rơle để c? ??p nguồn cho m? ?y bơm 12 Hệ thống liên t? ?c cập nhật chế độ * m? ?y bơm tiếp t? ?c hoạt động người dùng chuyển sang chế độ kh? ?c Hàm sleep để hệ thống dừng ch? ?y code cho m? ?y bơm... relay 5V, Chỉ c? ??n c? ??m Jumper Cap - Đầu tối đa rơ le: DC 30V, AC 250V - Hướng dẫn kết nối: - VCC: c? ? ?c dương nguồn c? ??p điện hệ thống - GND: c? ? ?c âm nguồn c? ??p hệ thống - IN1 - IN4: c? ??ng điều khiển