Xã hội ngày càng phát triển với những công nghệ hiện đại và gần gũi với con người. Với mức sống và nhu cầu của con người ngày càng cao, đòi hỏi nền kỹ thuật phải luôn thay đổi, hoàn thiện để đáp ứng và nâng cao chất lượng cuộc sống. Trong đó ngành điện tử góp phần lớn và quan trọng mang lại những thành tựu to lớn đó. Với đặc thù của ngành là luôn đón đầu công nghệ, ngành điện tử luôn cho ra các sản phẩm mới để phục vụ con người, không chỉ trong cuộc sống mà còn trong khoa học, quân sự, y tế,… Điều đó không chỉ góp phần thúc đẩy chất lượng cuộc sống ngày càng tốt hơn, mà còn mở ra nhiều hướng đi mới hỗ trợ con người nhiều hơn trong tương lai.Kỹ thuật điện tử kết hợp với sự phát triển của công nghệ thông tin đã, đang và sẽ tiếp tục cho ra những sản phẩm công nghệ mới, không những đa chức năng, đa ứng dụng mà kích thước cũng ngày càng nhỏ hơn, tiện lợi hơn. Một trong những sản phẩm ấy chính là sự ra đời và phát triển của dòng sản phẩm Raspberry Pi. Kích thước nhỏ gọn cộng với những tính năng như một máy tính tí hon, Raspberry Pi là một công cụ tuyệt vời giúp con người dễ dàng tiếp cận thế giới công nghệ hơn với những ứng dụng, sáng tạo gần gũi với cuộc sống. Là một nước đang phát triển và trong giai đoạn “Công nghiệp hóa, hiện đại hóa”, Việt Nam rất cần tiếp cận với những thiết bị khoa học kỹ thuật để đáp ứng và hoàn thành chiến lược đặt ra. Vì thế, Việt Nam đã và đang đầu tư nhiều vào nguồn nhân lực để có thể nắm bắt và dần làm chủ được công nghệ. Với sự ra đời và phát triển của Raspberry Pi cộng với việc sản phẩm đã du nhập về Việt Nam, đây là cơ hội để đội ngũ kỹ thuật vừa có cơ hội tiếp cận với nền kỹ thuật tiên tiến của thế giới, vừa góp phần sáng tạo thêm những ứng dụng mới để đưa vào đời sống, nhằm cải thiện và nâng cao chất lượng cuộc sống ngày càng tốt đẹp hơn. Việc thu thập dữ liệu của các thiết bị, máy móc, động cơ… là điều cần thiết để đảm bảo tính hoạt động ổn định, liên tục, giảm sự cố từ đó tối ưu năng suất sản xuất. Vì thế mà khâu quản lý bảo trì rất được chú trọng tại các đơn vị sản xuất, tùy vào từng điều kiện hoàn cảnh sẽ có phương pháp công nghệ khác nhau để thu thập dữ liệu.Việc nghiên cứu và ứng dụng Raspberry Pi vào thực tế cuộc sống là một điều rất mới mẻ và cũng rất cần thiết cho những người đam mê ngành kỹ thuật nói chung và ngành điện tử nói riêng trong vai trò làm chủ công nghệ hiện nay. Python là một ngôn ngữ hỗ trợ mẫu đa lập trình bao gồm lập trình hướng đối tượng, lập trình hàm và mệnh lệnh. Python là ngôn ngữ lập trình chính và được cài đặt sẵn trên Raspberrry Pi và có vai trò rất quan trọng không những trên Raspberry Pi, Python không chỉ làm việc trên lĩnh vực đặc biệt như lập trình web, và đó là lí do tại sao ngôn ngữ này là đa mục đích bởi vì nó có thể được sử dụng với web, enterprise, 3D CAD…Để góp phần tạo nên nền tảng ban đầu vững chắc cho việc học tập, tìm hiểu kỹ thuật vi xử lý và quen với lập trình bằng ngôn ngữ cấp cao, em đã tập trung nghiên cứu đề tài: “Thu thập dữ liệu qua mạng Internet trên cơ sở ngôn ngữ Python và Raspberry Pi”.Những kiến thức, năng lực đạt được trong quá trình học tập ở trường sẽ được đánh giá qua đợt bảo vệ đồ án cuối khóa. Vì vậy em sẽ cố gắng tận dụng những kiến thức đã học ở trường cùng với sự tìm tòi, nghiên cứu, dưới sự hướng dẫn tận tình của giáo viên hướng dẫn cùng thầy cô thuộc Viện Kỹ thuật và Công Nghệ để có thể hoàn thành tốt đồ án này.Mặc dù đã cố gắng hoàn thành nhiệm vụ của đề tài đặt ra và đúng thời hạn nhưng chắc chắn sẽ không tránh khỏi những thiếu sót, mong quý thầy cô và các bạn sinh viên thông cảm. Em mong nhận được những ý kiến đóng góp của quý thầy cô và các bạn sinh viên. Em xin chân thành gửi lời cảm ơn đến Thầy giáo ThS. Hồ Sỹ Phương đã trực tiếp hướng dẫn và tận tình giúp đỡ, tạo điều kiện để em hoàn thành tốt đề tài.Bên cạnh đó, em cũng xin chân thành gửi lời cảm ơn đến các quý thầy cô trong trường Đại học Vinh nói chung và Viện Kỹ thuật và Công nghệ nói riêng đã truyền đạt những kiến thức quý báu, tạo dựng nền móng đầu tiên cho em thực hiện có cơ sở cũng như nền tảng kiến thức cần thiết để em hoàn thành tốt đề tài Đồ Án Tốt nghiệp cũng như định hướng nghề nghiệp tương lai sau này.
Trang 1TRƯỜNG ĐẠI HỌC VINH
VIỆN KỸ THUẬT VÀ CÔNG NGHỆ
GV hướng dẫn: ThS HỒ SỸ PHƯƠNG
NGHỆ AN - 2017
Trang 2LỜI MỞ ĐẦU
Xã hội ngày càng phát triển với những công nghệ hiện đại vàgần gũi với con người Với mức sống và nhu cầu của con ngườingày càng cao, đòi hỏi nền kỹ thuật phải luôn thay đổi, hoàn thiện
để đáp ứng và nâng cao chất lượng cuộc sống Trong đó ngànhđiện tử góp phần lớn và quan trọng mang lại những thành tựu tolớn đó Với đặc thù của ngành là luôn đón đầu công nghệ,ngành điện tử luôn cho ra các sản phẩm mới để phục vụ conngười, không chỉ trong cuộc sống mà còn trong khoa học, quân sự,
y tế,… Điều đó không chỉ góp phần thúc đẩy chất lượng cuộc sốngngày càng tốt hơn, mà còn mở ra nhiều hướng đi mới hỗ trợ conngười nhiều hơn trong tương lai
Kỹ thuật điện tử kết hợp với sự phát triển của công nghệthông tin đã, đang và sẽ tiếp tục cho ra những sản phẩm côngnghệ mới, không những đa chức năng, đa ứng dụng mà kích thướccũng ngày càng nhỏ hơn, tiện lợi hơn Một trong những sản phẩm
ấy chính là sự ra đời và phát triển của dòng sản phẩm Raspberry
Pi Kích thước nhỏ gọn cộng với những tính năng như một máy tính
tí hon, Raspberry Pi là một công cụ tuyệt vời giúp con người dễdàng tiếp cận thế giới công nghệ hơn với những ứng dụng, sángtạo gần gũi với cuộc sống Là một nước đang phát triển và tronggiai đoạn “Công nghiệp hóa, hiện đại hóa”, Việt Nam rất cần tiếpcận với những thiết bị khoa học kỹ thuật để đáp ứng và hoànthành chiến lược đặt ra Vì thế, Việt Nam đã và đang đầu tư nhiềuvào nguồn nhân lực để có thể nắm bắt và dần làm chủ được côngnghệ Với sự ra đời và phát triển của Raspberry Pi cộng với việcsản phẩm đã du nhập về Việt Nam, đây là cơ hội để đội ngũ kỹthuật vừa có cơ hội tiếp cận với nền kỹ thuật tiên tiến của thế giới,vừa góp phần sáng tạo thêm những ứng dụng mới để đưa vào đời
Trang 3sống, nhằm cải thiện và nâng cao chất lượng cuộc sống ngày càngtốt đẹp hơn
Việc thu thập dữ liệu của các thiết bị, máy móc, động cơ… làđiều cần thiết để đảm bảo tính hoạt động ổn định, liên tục, giảm
sự cố từ đó tối ưu năng suất sản xuất Vì thế mà khâu quản lý bảotrì rất được chú trọng tại các đơn vị sản xuất, tùy vào từng điềukiện hoàn cảnh sẽ có phương pháp công nghệ khác nhau để thuthập dữ liệu
Việc nghiên cứu và ứng dụng Raspberry Pi vào thực tế cuộcsống là một điều rất mới mẻ và cũng rất cần thiết cho những ngườiđam mê ngành kỹ thuật nói chung và ngành điện tử nói riêngtrong vai trò làm chủ công nghệ hiện nay Python là một ngôn ngữ
hỗ trợ mẫu đa lập trình bao gồm lập trình hướng đối tượng, lậptrình hàm và mệnh lệnh Python là ngôn ngữ lập trình chính vàđược cài đặt sẵn trên Raspberrry Pi và có vai trò rất quan trọngkhông những trên Raspberry Pi, Python không chỉ làm việc trênlĩnh vực đặc biệt như lập trình web, và đó là lí do tại sao ngôn ngữnày là đa mục đích bởi vì nó có thể được sử dụng với web,enterprise, 3D CAD…
Để góp phần tạo nên nền tảng ban đầu vững chắc cho việchọc tập, tìm hiểu kỹ thuật vi xử lý và quen với lập trình bằng ngôn
ngữ cấp cao, em đã tập trung nghiên cứu đề tài: “Thu thập dữ
liệu qua mạng Internet trên cơ sở ngôn ngữ Python và Raspberry Pi”.
Những kiến thức, năng lực đạt được trong quá trình học tập ởtrường sẽ được đánh giá qua đợt bảo vệ đồ án cuối khóa Vì vậy
em sẽ cố gắng tận dụng những kiến thức đã học ở trường cùng với
sự tìm tòi, nghiên cứu, dưới sự hướng dẫn tận tình của giáo viênhướng dẫn cùng thầy cô thuộc Viện Kỹ thuật và Công Nghệ để cóthể hoàn thành tốt đồ án này
Trang 4Mặc dù đã cố gắng hoàn thành nhiệm vụ của đề tài đặt ra vàđúng thời hạn nhưng chắc chắn sẽ không tránh khỏi những thiếusót, mong quý thầy cô và các bạn sinh viên thông cảm Em mongnhận được những ý kiến đóng góp của quý thầy cô và các bạn sinhviên
Em xin chân thành gửi lời cảm ơn đến Thầy giáo ThS Hồ Sỹ
Phương đã trực tiếp hướng dẫn và tận tình giúp đỡ, tạo điều kiện
để em hoàn thành tốt đề tài
Bên cạnh đó, em cũng xin chân thành gửi lời cảm ơn đến các
quý thầy cô trong trường Đại học Vinh nói chung và Viện Kỹ
thuật và Công nghệ nói riêng đã truyền đạt những kiến thức quý
báu, tạo dựng nền móng đầu tiên cho em thực hiện có cơ sở cũngnhư nền tảng kiến thức cần thiết để em hoàn thành tốt đề tài Đồ
Án Tốt nghiệp cũng như định hướng nghề nghiệp tương lai saunày
Em cũng xin chân thành gửi lời đồng cảm ơn đến các bạnsinh viên cùng lớp 53K2-108 đã chia sẻ, trao đổi những kiến thứccũng như những kinh nghiệm quý báu của mình để góp phần giúp
em thực hiện hoàn thành đề tài tốt hơn
Xin chân thành cảm ơn!
Nghệ An, ngày 22 tháng 7 năm 2017
Sinh viên thực hiện
Nguyễn Ngọc Lĩnh
Trang 5TÓM TẮT ĐỒ ÁN
Trong đồ án này cho thấy rằng trong nhiều trường hợp, bạncần phải tìm ra câu trả lời để tìm khu vực nóng và ẩm của tủ lưutrữ Một khi chỉ số vượt qua con số báo động mà chính bạn khôngbiết, chi phí duy trì hoặc thay thế thiết bị lưu trữ là rất lớn Vì vậy,luận án này chúng tôi nghiên cứu, thiết kế, lắp ráp các tủ để cảnhbáo nhiệt độ và độ ẩm Raspberry Pi là một thiết bị giám sát cóquyền truy cập vào cơ sở dữ liệu SQL và lấy dữ liệu từ các cảmbiến tích hợp Màn hình hiển thị nhiệt độ với biểu đồ giao diện web,qua đó cho phép dễ dàng đọc dữ liệu và lưu trữ kết quả đến một
cơ sở dữ liệu hiệu quả về chi phí để bảo trì hoặc thay thế các dịch
vụ cho thiết bị an ninh
ABSTRACT
In this thesis shows us that in many cases, you need to findthe answer to finding the hot and humid area of the storagecabinets Once the index overcomes the alarming number thatyourself do not know, the cost of maintaining or replacing thestored equipment is very significant So this thesis we researches,designs, assembles the cabinets to alert the temperature andhumidity Raspberry Pi is as a monitoring device with access to theSQL database and retrieves data from integrated sensors Thedisplay monitors the temperature with the web interface graph,thereby allowing for easy reading of data and storing results to acost-effective database for maintenance or replacement servicesfor a security appliance
Trang 6MỤC LỤC
LỜI MỞ ĐẦU i
TÓM TẮT ĐỒ ÁN iv
MỤC LỤC v
DANH MỤC HÌNH vii
DANH MỤC BẢNG viii
PHẦN MỞ ĐẦU ix
CHƯƠNG 1 TỔNG QUAN VỀ THU THẬP DỮ LIỆU DÙNG RASPBERRY PI 1 1.1 Tổng quan về thu thập dữ liệu 1
1.1.1 Các phương pháp thu thập dữ liệu 1
1.1.2 Ứng dụng trong thực tiễn 3
1.2 Thu thập dữ liệu dùng Raspberry Pi 3
1.2.1 Raspberry Pi 3
1.2.2 Cảm biến DHT22 15
1.2.3 Web server 20
1.2 Kết luận chương 1 23
CHƯƠNG 2 PYTHON VÀ ỨNG DỤNG PYTHON TRONG RASPBERRY PI 24
2.1 Tổng quan về ngôn ngữ lập trình Python 24
2.1.1 Giới thệu về ngôn ngữ lập trình Python 24
2.1.2 Lịch sử phát triển Python 24
2.1.3 Đặc điểm Python 26
2.1.4 Cú pháp Python 33
2.1.5 Ứng dụng Python 36
2.2 Python trên Raspberry Pi và ứng dụng 38
2.2.1 Python trên Raspberry Pi 38
2.2.2 Ứng dụng Python trên Raspberry Pi 51
2.3 Kết luận chương 2 52
CHƯƠNG 3 THIẾT KẾ HỆ THỐNG THU THẬP DỮ LIỆU QUA MẠNG INTERNET TRÊN CƠ SỞ NGÔN NGỮ PYTHON VÀ RASPBERRY PI 53
3.1 Thiết kế phần cứng cho hệ thống 53
Trang 73.2 Lập trình cho hệ thống sử dụng ngôn ngữ Python và HTML 54
3.2.1 Lập trình ngôn ngữ Python 54
3.2.2 Lập trình ngôn ngữ HTML 64
3.3 Kết quả nghiên cứu 66
3.3.1 Kết quả phần cứng 66
3.3.2 Kết quả xây dựng web server 66
3.3.3 Kết quả tổng quát hệ thống thu thập dữ liệu 67
3.4 Kết luận chương 3 67
KẾT LUẬN 68
TÀI LIỆU THAM KHẢO 69
PHỤ LỤC 70
Trang 8DANH MỤC HÌNH
Hình 1.1 Hình ảnh thực tế Raspberry Pi 3 4
Hình 1.2 Cấu tạo của Raspberry Pi 8
Hình 1.3 Sơ đồ chân GPIO của Raspberry Pi 10
Hình 1.4 Phụ kiện kèm theo với Raspberry Pi 12
Hình 1.5 Một số ứng dụng của Raspberry Pi 14
Hình 1.6 Cảm biến nhiệt độ, độ ẩm DHT22 15
Hình 1.7 Kích thước thực tế của cảm biến DHT22 (đơn vị mm) 17
Hình 1.8 Cảm biến DHT22 kết nối với vi xử lý 17
Hình 1.9 Quá trình gửi tín hiệu của vi xử lí 18
Hình 1.10 Dữ liệu bit 0 nhận đươc từ DHT22 19
Hình 1.11 Dữ liệu bit 1 nhận được từ DHT22 19
Hình 1.12 Web Server 20
Hình 2.1 Bảng xếp hạng sử dụng ngôn ngữ lập trình trên thế giới (năm 2016) 36
Hình 2.2 Biểu đồ thống kê việc giảng dạy ngôn ngữ lập trình 37
Hình 2.3 Truy nhập Python từ Menu 39
Hình 3.1 Sơ đồ khối hệ thống thu thập dữ liệu dùng Raspberry Pi 53
Hình 3.2 Hình ảnh thực tế phần cứng hệ thống thu thập dữ liệu 66
Hình 3.3 Hình ảnh thực tế giao diện web thu thập dữ liệu 66
Hình 3.4 Biểu đồ thể hiện giá trị nhiệt độ và độ ẩm theo thời gian 67
Hình 3.5 Chương trình nhậ dữ liệu trên Raspberry Pi 67
Trang 9DANH MỤC BẢNG
Bảng 1.1 Các thông số kỹ thuật của cảm biến DHT22 16
Bảng 2.1 Các từ khóa trong Python 28
Bảng 2.2 Chức năng tích hơp trên Python 39
Bảng 3.1 Một số thư viện trên cần quan tâm với người dùng Raspberry Pi 60
Trang 10dữ liệu.
Đề tài “Thu thập dữ liệu qua mạng Internet trên cơ sở ngôn
ngữ Python và Raspberry Pi” được nghiên cứu nhằm tìm hiểu về
các phương pháp thu thập dữ liệu, tìm hiểu về Raspberry Pi và thuthập dữ liệu dùng Raspberry Pi và ngôn ngữ lập trình Python
Cấu trúc của đồ án được trình bày trong 3 chương:
Chương 1 Tổng quan về thu thập dữu liệu dùng Raspberry Pi
Giới thiệu tổng quan về thu thập dữ liệu, các phương phápthu thập dữ liệu, ứng dụng của thu thập dữ liệu trong thực tiễn vàthu thập dữ liệu dùng Raspberry Pi
Chương 2 Python và ứng dụng của Python trong Raspberry Pi
Trong chương này giới thiệu về ngôn ngữ lập trình Python vàứng dụng Python trên Raspberry Pi
Chương 3 Thiết kế hệ thống thu thập dữ liệu qua mạng Internet trên cơ sở ngôn ngữ Python và Raspberry Pi
Chương này thực hiện đi vào thiết kế hệ thống thu thập dữliệu và lập trình cho chương trình thu thập dữ liệu bằng hai ngônngữ Python tích hợp HTML
Trang 11CHƯƠNG 1 TỔNG QUAN VỀ THU THẬP DỮ LIỆU
DÙNG RASPBERRY PI
Giới thiệu tổng quan về thu thập dữ liệu, các phương phápthu thập dữ liệu, ứng dụng của thu thập dữ liệu trong thực tiễn vàthu thập dữ liệu dùng Raspberry Pi
1.1 Tổng quan về thu thập dữ liệu
Thu thập dữ liệu là quá trình thu thập và xử lý thông tin cầnquan tâm một cách có hệ thống nhằm kiểm tra, nắm bắt tìnhtrạng, phân tích để đưa ra kết quả của vấn đề nghiên cứu Từ đócho phép xây dựng một hệ thống thu thập dữ liệu hoàn chỉnh vàđáng tin cậy phù hợp với yêu cầu thay đổi cho từng mục đích cụthể được đặt ra Thu thập dữ liệu là công việc quan trọng và cầnthiết trong nhiều lĩnh vực bao gồm khoa học tự nhiên và xã hội,sản xuất và kinh doanh…
Quá trình thu thập dữ liệu đòi hỏi sự chính xác và mang tínhđáp ứng linh hoạt, đồng thời phải bao quát tất cả các khả năng xảy
ra sự thay đổi của thông tin cần nghiên cứu Bởi vì thông tin sai sót
sẽ dẫn đến lãng phí nguồn nhân lực, gây nhầm lẫn cho các nhànghiên cứu, gây thiệt hại trong sản xuất kinh doanh…
Trong quá trình thu thập dữ liệu thường sử dụng các phươngpháp cơ bản sau để thu thập thông tin:
- Phương pháp nghiên cứu tài liệu: là phương pháp thu thậpthông tin hoàn toàn gián tiếp, không tiếp xúc với đối tượng khảosát
Ví dụ: Khi cần biết thông tin cấu tạo, lịch sử hoạt động và bảotrì của một chiếc máy bay, người nghiên cứu sẽ rất khó có điềukiện quan sát, tiếp xúc với đối tượng mà thường phải thu thậpthông tin qua các tài liệu chuyên ngành, các ghi chép của ngườitrực tiếp vận hành, bảo trì
Trang 12Ưu điểm: không cần phải tiếp xúc trực tiếp với đối tượng Nhược điểm: khó khăn trong việc tìm kiếm tài liệu, không cập
nhật được tình trạng tức thời của đối tượng
- Phương pháp phi thực nghiệm: là phương pháp thu thậpthông tin trực tiếp trên đối tượng khảo sát nhưng không tác độnglên đối tượng khảo sát
Ví dụ: Muốn biết các thông số vận hành của 1 thiết bị máymóc, động cơ thì người thu thập có thể trực tiếp quan sát, tiếp xúcvới đối tượng hoặc thông qua các thiết bị đo để thu thập thông tinchỉ cho phép lấy được thông tin tại nơi đặt thiết bị đo
Đặc biệt người thu thập có thể lấy thông tin từ thiết bị đo màkhông cần có mặt tại nơi đặt thiết bị và máy đo Thông tin từ thiết
bị và máy đo thông qua môi trường GPRS truyền đến điện thoạihoặc thông qua môi trường internet truyền đến một web server đểngười thu thập truy cập vào lấy thông tin
Ưu điểm: dữ liệu được cập nhật liên tục, độ chính xác tương
đối cao
Nhược điểm: chi phí đầu tư cao.
- Phương pháp thực nghiệm: là phương pháp thu thập thôngtin trực tiếp, có tác động gây biến đổi đối tượng khảo sát và môitrường xung quanh đối tượng khảo sát
Ví dụ: Khi cần thu thập dữ liệu địa chất thì người khảo sát địachất phải thực hiện công việc đào, lấy mẫu, đo đạc Từ đó phântích, thống kê các dữ liệu có được
Ưu điểm: độ chính xác cao, nắm bắt cặn kẽ thông tin.
Nhược điểm: tốn nhiều thời gian và công sức.
- Phương pháp trắc nghiệm: Trong nghiên cứu công nghệ gọi
là thử nghiệm Là phương pháp thu thập thông tin có tác động gâybiến đổi các biến của môi trường khảo sát Không gây tác độngnào làm biến đổi các thông số trạng thái của bản thân đối tượngkhảo sát
Trang 13Ví dụ: Trong cuộc điều tra ý kiến của người dân để kiểm traphản ứng của dư luận về quy định đi xe chính chủ, người thu thậpthông tin sẽ lập ra một bảng liệt kê các câu hỏi để lấy ý kiến củangười dân Sau đó sẽ xử lý và thống kê các ý kiến để có đượcthông tin cần thiết.
Ưu điểm: Ít tốn chi phí nhất trong tất cả các phương pháp Nhược điểm: Mức độ phức tạp của thông tin gây khó khăn
trong việc phân tích và đưa ra kết luận
Ở đồ án này sử dụng phương pháp thu thập dữ liệu phi thựcnghiệm, thông qua thiết bị đo, gửi thông tin qua môi trường truyền
dữ liệu, có hai môi trường truyền thông dụng là GPRS và Internet
GPRS là dịch vụ vô tuyến gói tổng hợp dành cho những ngườidùng hệ thống thông tin di động toàn cầu GSM và điện thoại diđộng IS-136 Nó cung cấp dữ liệu ở tốc độ từ 56 đến 114 Kb/s Hạnchế của GPRS là tốc độ và băng thông thấp
Internet là một hệ thống thông tin toàn cầu có thể được truynhập công cộng gồm các máy tính được liên kết với nhau, có tốc
độ truyền nhận dữ liệu cao (Mb/s), ứng dụng rộng rãi
Vì nhu cầu truyền nhận dữ liệu lớn và tính tiện lợi cho người
sử dụng nên đồ án này sử dụng môi trường truyền Internet
- Trong sản xuất: thu thập các số liệu của máy móc, sảnphẩm trong dây chuyền sản xuất, giám sát tình trạng hoạt độngcủa thiết bị máy móc…
Trang 14- Trong kinh doanh: khảo sát nhu cầu tiêu dùng của kháchhàng, điều tra hoạt động các đối thủ cạnh tranh để có phương áncạnh tranh thích hợp…
Một ứng dụng thực tiễn là trong kinh doanh của công ty sảnxuất thiết bị điện công nghiệp ABB, các nhân viên quản lý sẽ cậpnhật thông tin về số lượng, chủng loại, giá thành, các thông số kỹthuật của các mặt hàng kinh doanh từ các giấy tờ nhập hàng vàcập nhật dữ liệu đo đếm từ các thiết bị đo trong quá trình sản xuấtlên trang chủ của công ty
1.2 Thu thập dữ liệu dùng Raspberry Pi
Đề tài này thực hiện việc thu thập dữ liệu về nhiệt độ và độ
ẩm liệu dùng Raspberry Pi
1.2.1 Raspberry Pi
Giới thiệu về Raspberry Pi
Raspberry Pi là một chiếc máy tính tí hon giá chỉ 35$ chạy hệđiều hành Linux ra mắt vào tháng 2 năm 2012 Ban đầu Raspberry
Pi được phát triển dựa trên ý tưởng tiến sĩ Eben Upton tại đại họcCambridge muốn tạo ra một chiếc máy tính giá rẻ để học sinh cóthể dễ dàng tiếp cận và khám phá thế giới tin học Dự định khiêmtốn của ông đến cuối đời là có thể bán được tổng cộng 1000 bomạch cho các trường học Vậy thì điều gì đã làm nên thành côngngoài sức tưởng tượng của Raspberry Pi khi đã bán được hơn mộttriệu bo mạch chỉ trong vòng chưa đầy một năm?
Trang 15Hình 1.1 Hình ảnh thực tế Raspberry Pi 3
Một số ưu điểm của Raspberry Pi:
- Raspberry Pi có mức giá hấp dẫn: 35$ cho một chiếc bomạch có thể làm được hầu như mọi ứng dụng hằng ngày như lướtweb, học lập trình, xem phim HD đến những ý tưởng không ngờđến như điều khiển robot, nhà thông minh…
- Raspberry Pi chạy hệ điều hành Linux: 99% những thứ làm
trên máy tính Windows đều có thể thực hiện được trên Linux vàquan trọng là tất cả đều miễn phí
- Raspberry Pi có 8 ngõ GPIO: có thể kết nối và điều khiểncác thiết bị trong cuộc sống thực tế như đèn, động cơ, GPS… Rấtnhiều ứng dụng nhà thông minh đã sử dụng Raspberry Pi làm bộđiều khiển trung tâm
- Raspberry Pi có kích thước tí hon: chỉ tương đương mộtchiếc thẻ ATM và nặng khoảng 50 gram Gắn với chiếc tivi,Raspberry có thể biến thành một thiết bị giải trí thông minh trongphòng khách Gắn với màn hình và bàn phím, chuột, Raspberry cóthể biến thành một chiếc máy tính đúng nghĩa Nhỏ gọn và tiện lợi
- Cộng đồng Raspberry Pi phát triển rất nhanh trên thếgiới: hầu hết những thắc mắc của người dùng đều được giải đáprất nhanh và còn hơn thế nữa người dùng có thể tìm thấy hàngngàn dự án đã thực hiện và vô số ý tưởng độc đáo
Trang 16Với những ưu điểm độc đáo trên, Raspberry Pi đã vượt ra khỏibiên giới của trường học và trở thành thiết bị ưa thích của rấtnhiều người đam mê điện tử và lập trình Sự thành công của nó đã
mở ra một bước phát triển mới cho tin học, đem máy tính và cảmhứng lập trình đến gần mọi người hơn bao giờ hết
- RPi model B: Có 2 cổng USB và một cổng Ethernet (kết nốimạng LAN), có 26 chân GPIO Model B lại có 2 phiên bản khácnhau Về cơ bản, 2 phiên bản này giống nhau, chỉ khác ở dunglượng bộ nhớ RAM
Raspberry Pi model B v1: RAM có dung lượng 256MB
Raspberry Pi model B v2: RAM có dung lượng 512MB
- Raspberry Pi model B+: Có sự cải tiến về cổng kết nối cũngnhư số lượng chân GPIO Ở mẫu B+ này, Raspberry Pi có 4 cổngUSB (nhiều hơn model B 2 cổng, nhiều hơn model A 3 cổng) giúptăng khả năng kết nối thiết bị ngoại vi, có đến 40 chân GPIO (nhiềuhơn 13 chân so với model A và model B) Ngoài ra, mẫu B+, ngõvideo và ngõ audio được tích hợp thành một cổng duy nhất (thay
vì hai cổng riêng biệt như model A và model B)
Lịch sử phát triển của Raspberry Pi
Vào năm 2006, Eben Upton cùng các đồng nghiệp làm việctại phòng thí nghiệm máy tính đại học Cambridge bắt đầu cảmthấy quan ngại về việc trình độ đầu vào của các tân sinh viên ngày
Trang 17càng giảm Vào thời điểm những năm 90, các sinh viên khi mớinhập học ngành khoa học máy tính đều đã có những kinh nghiệmnhất định về lập trình; nhưng mọi chuyện rất khác vào những năm
2000, khi mà ngay cả những sinh viên khá nhất cũng chỉ biết đôichút về lập trình web
Có điều gì đó đã thay đổi cái cách mà trẻ em tương tác vớimáy tính Một vài nguyên nhân được tìm ra như: những chứng chỉthông dụng hay mà trẻ em bây giờ hay phải học là về Word vàExel; sự đi xuống của kỉ nguyên dot-com (.com); và sự phát triểnnhư vũ bão của video game cũng như game pc đã thế chỗ choAmigas, BBC Micros 63 hay là Spectrum ZX những công cụ mà thế
hệ trước dùng để lập trình (bởi thế các bậc phụ huynh có xu hướngcấm đoán con em với máy tính dù cho bọn trẻ có làm những việc
có ích hơn là chơi game, như học lập trình chẳng hạn)
Eben Upton và các đồng nghiệp muốn làm điều gì đó để thayđổi thực trạng này Họ nảy ra ý tưởng về những chiếc máy tínhmini, giá rẻ và có khả năng lập trình được dành cho trẻ em Họ dựtính vào ngày mở của đại học Cambridge sẽ trao chúng cho các
em học sinh có đam mê với khoa học máy tính; rồi sau đó vàitháng họ sẽ liên lạc để tìm hiểu xem bọn trẻ đã làm được gì vớinhững mini pc này Như vậy, những thiết kế đầu tiên củaRaspberry Pi ra đời vào năm 2006
Đến năm 2008, Eben Upton vào làm việc tại Broadcom vớivai trò thiết kế chip Công việc này giúp ông có nhiều điều kiện tốthơn để phát triển Raspberry Pi Ông đã sử dụng các linh kiện vàchip điện tử có hiệu năng cao (nhưng giá thành rẻ gấp nhiều lầnngoài thị trường) ở chính công ty ông làm việc để hoàn thiện sảnphẩm của mình Ông cùng các cộng tác của mình cũng chọn Linux
sẽ là hệ điều hành cho Raspberry Pi bởi đặc điểm đòi hỏi cấu hình
pc thấp, “nguồn mở” và quan trọng nhất là nó có “tính lập trình”cao hơn so với Windows Với những nỗ lực của Eben Upton và đồng
Trang 18nghiệp, đến năm 2011, Raspberry Pi Model B, phiên bản hoànthiện của Raspberry Pi, đã chính thức được tung ra thị trường vớigiá chỉ 35$.
Về nguồn gốc của cái tên Raspberry Pi, phòng thí nghiệmmáy tính của đại học Cambridge thường đặt tên các sản phẩm củamình bằng tên các loại trái cây, “Raspberry” nghĩa là “quả dâu”còn “Pi” là ám chỉ “python” ngôn ngữ lập trình chính thức củaRaspberry Pi
Làm việc với Raspberry Pi qua máy tính
Trong nhiều ứng dụng có không gian hạn chế chẳng hạn nhưdùng Raspberry Pi để điều khiển cửa tự động thì người ta thườngkhông muốn kết nối rườm rà màn hình, bàn phím, chuột lênRaspberry Pi mà vẫn có thể khiển được nó Khi đó ta có thể sửdụng 2 công nghệ phổ biến để điều khiển Raspberry Pi từ xa bằngmột máy tính khác là SSH và Remote Desktop Connection Mỗicông nghệ có đặc điểm riêng phù hợp với từng ứng dụng trênRaspberry Pi
Giao tiếp Raspberry Pi bằng SSH:
SSH (viết tắt của từ Secure Socket Shell) là một giao thứcmạng được sử dụng để đăng nhập vào một máy tính từ xa Chẳnghạn bạn có một máy tính ở nhà cài Linux có cài SSH thì bạn có thểđăng nhập vào máy tính đó từ xa để quản lý dữ liệu Các dữ liệu
mà bạn gửi đi hoặc nhận thông qua giao thức SSH sẽ đều được mãhóa lại để bảo mật thông tin an toàn hơn Để sử dụng SSH ta phảicài đặt trên cả Raspberry Pi lẫn máy tính
Giao tiếp với Raspberry bằng Remote Desktop Connection:Remote Desktop Connection là công nghệ cho phép máy tínhtruy cập vào môi trường desktop lẫn bàn phím và chuột của mộtmáy tính khác Để sử dụng thì ta cần cài đặt Remote DesktopConnection lên máy tính được điều khiển Trong trường hợp này
Trang 19muốn điều khiển Raspberry Pi từ xa thì ta cài Remote DesktopConnection lên Raspberry Pi.
Nguồn điện cung cấp cho Raspberry Pi
Nguồn điện cung cấp cho Raspberry Pi là một yếu tố rất quantrọng trong quá trình sử dụng Việc dung nguồn điện không đảmbảo công suất, chất lượng có thể dẫn đến tình trạng hỏng mạch
Nguồn điện cung cấp cho Raspberry Pi thông qua cổng MicroUSB hàn chết trên board mạch, hiệu điện thế 5.1V Ngoài nguồnchính hãng, có thể dùng nguồn ZEQI 5V-2.5A hoặc nguồn của cácthiết bị có sẵn như điện thoại, máy tính bảng…
Dòng điện cung cấp cho Raspberry Pi phụ thuộc vào một sốthiết bị ngoại vi kết nối đến nó Nếu chỉ có riêng mỗi Raspberry Pi
mà không có kết nối với bất kỳ thiết bị nào hết thì dòng model Bchỉ cần 700mA đến 1000mA là có thể hoạt động được, với dòngsản phẩm model A thì có thể thấp hơn, dòng này chỉ cần 500mA làhoạt động được Tuy nhiên, khác với các phiên bản trước,Raspberry Pi3 sử dụng CPU có xung nhịp 1.2GHz nên tiêu tốn điệnnăng hơn vì vậy nên sử dụng dòng 2.5A Khi sử dụng Raspberry Picần lưu ý đến dòng điện như:
- Các chân GIPO mỗi chân dòng an toàn ở mức 16mA, toàn
bộ chân an toàn ở mức 50mA
- Cổng HDMI sử dụng ở mức 50mA
- Bàn phím và chuột sử dụng từ 100mA đến 1000mA…
Các hệ điều hành trên Raspberry Pi
Raspberry Pi có rất nhiều hệ điều hành hỗ trợ, trong đó cóRaspbian là hệ điều hành thông dụng và là hệ điều hành chínhthức của Raspberry Pi Foundation, ngoài ra có 7 hệ điều hành khácđược xác nhận hỗ trợ hệ điều hành do các nhà phát triển tự tối ưu.Một số hệ điều hành thông dụng cho Raspberry Pi:
- Raspbian
- Ubuntu Mate
Trang 20- Snappy Core Ubuntu
- Windows 10 loT Core
là cho người mới bắt đầu làm quen với Raspberry Pi
Cấu tạo Raspberry Pi
Phần cứng
Hình 1.2 Cấu tạo của Raspberry Pi
- Trái tim của Raspberry Pi là chip SOC Chip) Broadcom BCM2837 chipset chạy ở tốc độ 1.2GHz Chip nàytương đương với nhiều loại được sử dụng trong smartphone phổthông hiện nay, và có thể chạy được hệ điều hành Linux Tích hợptrên chip này là nhân đồ họa (GPU) Broadcom VideoCore IV GPUnày đủ mạnh để có thể chơi 1 số game phổ thông và phát videochuẩn full HD
(System-On Có 40 chân ngõ GPIO (General Purpose Input Output): đúngnhư tên gọi của nó, chúng ta có thể kết nối và điều khiển rất nhiềuthiết bị điện tử/cơ khí khác
Trang 21- Ngõ HDMI: dùng để kết nối Raspberry Pi với màn hình máy
tính hay tivi có hỗ trợ cổng HDMI
- Ngõ RCA Video (analog): khi thiết kế Raspberry Pi người tacũng tính đến trường hợp người sử dụng ở các nước đang pháttriển không có điều kiện sắm một chiếc tivi đời mới tích hợp cổngHDMI Vì vậy cổng video analog này được thêm vào, giúp ngườidùng có thể kết nối với chiếc tivi đời cũ mà không phải lo lắng
- Ngõ audio 3.5mm: kết nối dễ dàng với loa ngoài hayheadphone
- Cổng HDMI hỗ trợ full HDMI, nếu kết nối với tivi ngõ âmthanh được tích hợp theo đường tín hiệu HDMI nên không cần sửdụng ngõ audio
- Cổng USB: Có thể mở rộng phạm vi ứng dụng nhờ vào việctích hợp 4 cổng USB 2.0 để có thể kết nối với bàn phím, chuột haywebcam, bộ thu GPS… Vì Raspberry Pi chạy Linux nên hầu hếtthiết bị chỉ cần cắm-và-chạy (Plug-&-Play) mà không cần cài driverphức tạp
- Cổng Ethernet: cho phép kết nối Internet tốc độ tối đa100Mbps
- Khe cắm thẻ SD: Raspberry Pi không tích hợp ổ cứng Thayvào đó nó dùng thẻ SD để lưu trữ dữ liệu Toàn bộ hệ điều hànhLinux sẽ hoạt động trên thẻ SD này vì vậy nó cần kích thước thẻnhớ tối thiểu 4 GB và dung lượng hỗ trợ tối đa là 32GB Khe gắnMicro SD card được hàn chết trên board theo kiểu Push-Pull (nghĩa
là bạn muốn gắn vào thì đẩy thẻ vào, lấy ra thì kéo ra), theo nhưhãng giải thích sẽ tốt hơn kiểu Push-Push trước kia
- Đèn LED: trên Pi có 5 đèn LED để hiển thị tình trạng hoạtđộng
- Jack nguồn micro USB 5V, tối thiểu 700mA: nhờ thiết kế này
mà chúng ta có thể tận dụng hầu hết các sạc điện thoại di độngtrên thị trường để cấp nguồn điện cho Raspberry Pi
Sơ đồ các chân ngõ vào/ra trên Raspberry Pi
Trang 22Hình 1.3 Sơ đồ chân GPIO của Raspberry Pi
- Đặc tính điện của các chân GPIO:
Có tổng cộng 40 chân được chia thành 2 hàng
Các chân GPIO có điện áp ngõ ra là 3V3 hoặc 5VDòng điện ngõ ra max trên các chân GPIO là 50 mA.Các chân có nhiều chức năng bao gồm:
Trang 23Pin 19 = SPI0 MOSIPin 21 = SPI0 MISOPin 23 = SPI0 SCLKPin 24 = SPI0 CE0Pin 26 = SPI0 CE1Phần mềm
- Tích hợp sẵn Wifi, bluetooth BLE tiết kiệm điện
- Vi xử lý hình ảnh VideoCore IV 3D
- Hỗ trợ hiển thị DSI
- Bộ nhớ RAM 1G
- Giao tiếp Camera qua CSI
Phụ kiện hỗ trợ kèm theo Raspberry Pi
Raspberry Pi được bán dưới dạng một board mạch đơn lẻkhông đi kèm phụ kiện nhằm giảm chi phí sản xuất, vì vậy người
sử dụng có thể tự lựa chọn phụ kiện tùy theo mục đích sử dụng.Sau đây sẽ là tổng hợp một số phụ kiện hữu ích cho Raspberry Pi
Phụ kiện cơ bản:
- Nguồn: loại có jack micro USB, 5V, tối thiểu 700mA
- Thẻ nhớ SD: đây là nơi lưu trữ toàn bộ hệ điều hành củaRaspberry Pi và cả dữ liệu do đó nên đầu tư thẻ nhớ thật tốt, tốc
độ từ class 6 trở lên Pi hoạt động trên thẻ nhớ có dung lượng ítnhất là 4 GB
- Bàn phím và chuột: là hai thành phần nhập liệu cơ bản củamáy tính
- Cáp mạng: để kết nối Internet hoặc kết nối với máy tính Chỉcần cáp RJ45 bình thường, bắt chéo hay không đều được
- Cáp màn hình: tùy theo loại màn hình sử dụng mà tươngthích với cáp HDMI-HDMI hoặc HDMI-DVI hoặc HDMI-VGA hay RCAVideo
Trang 24- Case bảo vệ: để tránh vô tình chạm vào mạch điện củaRaspberry Pi hoặc bảo vệ Raspberry Pi khi đặt ở ngoài trời thì casebảo vệ là rất cần thiết.
Hình 1.4 Phụ kiện kèm theo với Raspberry Pi
Phụ kiện mở rộng:
Webcam hoặc Pi camera module (25$): cả hai đều hoạt độngtốt trên Raspberry Pi Điểm khác biệt là webcam kết nối qua USBcòn camera module sử dụng khe cắm CSI có sẵn trên Raspberry Pi.Chất lượng của camera module được đánh giá rất tốt so với giátiền và quan trọng hơn là nó có thể tận dụng sức mạnh của bộ xử
lý đồ họa Video Core IV trên Pi mà webcam không truy cập được.Ngoài ra thì webcam được bán dưới dạng sản phẩm đóng gói hoànchỉnh còn camera module thì dưới dạng board module nên ngườidùng phải sử dụng cẩn thận hơn
Wifi USB dongle: Raspberry Pi hỗ trợ dùng thiết bị wifi dongle
để kết nối Pi với mạng wifi thông qua qua cổng USB Hai sản phẩmđược sử dụng phổ biến là Edimax EW-7811Un và Ralink RT5370 vì
Trang 25rất nhỏ gọn, giá thành rẻ (khoảng 10$) và hoạt động tốt trên Pi.Riêng loại Ralink thì còn có thể kiêm luôn chức năng hot spot phátwifi.
Màn hình cảm ứng: gắn lên Raspberry Pi thay cho bàn phím
và chuột giá bán khoảng 30$
Ứng dụng của Raspberry Pi
Raspberry Pi không chỉ là một nền tảng phần cứng thú vị đểứng dụng cho các dự án IoT (Internet of Things) mà còn là công cụgiúp các nhà phát triển học hỏi và hoàn thiện kĩ năng Internet kếtnối vạn vật IoT được cho là chủ đề nóng nhất trong lĩnh vực côngnghệ thông tin hiện nay Mọi tổ chức muốn tham gia vào xu hướngIoT thì luôn đòi hỏi các chuyên gia công nghệ thông tin phải đượctrang bị các kỹ năng, kinh nghiệm cho các dự án của mình Có rấtnhiều tùy chọn cho việc học về IoT, nhưng không có gì tốt hơnngoài những kinh nghiệm thực tế Một trong những nền tảng quantrọng cho việc học IoT là mạch tính toán nhỏ và đơn giản, nhắmđến khả năng tạo một máy tính nhỏ gọn, giá rẻ phục vụ cho côngtác học tập, nghiên cứu và thử nghiệm Nhưng cùng với đó, chiếcmáy tính giá 35 USD này lại có một mảng ứng dụng khác rất có giátrị trong ngành công nghệ thông tin truyền thống và doanhnghiệp Trong thực tế, phần khó khăn nhất của việc sử dụngRaspberry Pi để học về IoT là lựa chọn các dự án phù hợp để bắtđầu Trên Internet, chúng ta có thể tìm thấy hàng ngàn dự án dựatrên Raspberry Pi Một số trong đó chứa đầy tham vọng, một sốkhác thì khá vô bổ nhưng hầu hết đều là những ví dụ tuyệt vời choviệc tương tác với Raspberry Pi cũng như nguồn thông tin hữu íchcho IoT Điều gì làm cho dự án trải nghiệm IoT thành công? Đầutiên là việc sử dụng nhiều loại cảm biến hoặc các hệ thống điềukhiển phổ biến Phần cứng có thể được tùy chỉnh theo sở thíchtừng người nhưng đối với một dự án nghiêm túc thì mọi thứ cần có
Trang 26những tiêu chuẩn nhất định Tiếp theo đó là phần mềm điều khiểnphải có điểm thú vị, tính năng đặc trưng.
Một trong những sản phẩm công nghệ đột phá nhất thế kỷ có
lẽ phải nhắc tới Raspberry Pi, chiếc máy tính chạy hệ điều hànhLinux có giá 35 USD này không những giúp ích cho người dùngđược tiếp cận tin học với giá thành thấp Raspberry Pi còn dần trớthành món đồ yêu thích của những người có sở thích chế tạo, chiếcmáy tính này có thể được sử dụng để chế tạo robot, quản lí nhữngthiết bị khác hay đơn giản là dùng làm một chiếc máy tính
Được ra mắt từ khá lâu nhưng những chiếc máy tínhRaspberry Pi thế hệ 1 không nhận được nhiều sự chú ý của rấtnhiều người do mọi người chưa hiểu rõ được khả năng của nó.Thay vì sử dụng những cỗ máy tính đắt tiền để vận hành mộtrobot, với Raspberry Pi người dùng chỉ cần chút trình độ lập trìnhLinux kèm theo đó là cỗ máy tính nhỏ gọn với giá chỉ 35 USD Vậy
từ khi ra mắt, ngoài việc làm một máy tính, Raspberry Pi còn được
sử dụng vào những mục đích nào? Dưới đây là một vài sáng tạobất ngờ được làm nên từ Raspberry Pi
Phần lớn người dùng đều sử dụng Raspberry Pi để điều khiểncác thiết bị trong gia đình, hình ảnh trên là ví dụ điển hình khiRaspberry Pi điều khiển hệ thống cửa cuốn, tiết kiệm chi phí, antoàn và chính xác hơn rất nhiều
Biến chiếc Raspberry Pi thành một hệ thống mạng nội bộ,cách thức thực hiện này giúp tiết kiệm được chi phí đáng kể chonhững công ty nhỏ, không có yêu cầu quá lớn về phần cứng
Sử dụng Raspberry Pi để điều khiển hệ thống đèn, giúp chocác thao tác với thiết bị đơn giản hơn và không cần tới vô số côngtắc như trước đây nữa
Trang 27Hình 1.5 Một số ứng dụng của Raspberry Pi
Sử dụng Raspberry Pi để điều khiển một chiếc chân giả, nếuquá trình nghiên cứu thành công, người khuyết tật sẽ có cơ hội sửdụng các linh kiện máy với giá thành rẻ và khả năng điều khiểnlinh hoạt hơn rất nhiều
Nhiều hãng sản xuất cũng đang tạo nên những robot "giúpviệc" được vận hành bằng những chiếc Raspberry Pi
Làm xe ô tô điều khiển từ xa với việc lắp đặt lên đó một bộmáy tính Raspberry Pi
Thiết bị hỗ trợ chụp time-lapse với giá thành rẻ hơn rất nhiều
so với một thiết bị hỗ trợ chụp time-lapse chuyên nghiêp rất nhiều
Raspberry Car là hệ thống máy tính trên ô tô Tính đến thờiđiểm này, đã có vài hệ thống máy tính cho xe hơi được phát triển
từ Raspberry Pi, thậm chí chúng còn đi kèm với một màn hình cảmứng
Hoặc đơn giản để biến thành một chiếc máy tính đúng vớinhững gì Raspberry Pi được thiết kế
Trang 28Ngoài tác dụng là một chiếc máy tính giá siêu rẻ, Raspberry
Pi còn đang mở ra con đường mới cho công nghệ khi được sử dụngvới nhiều mục đích khác nhau
1.2.2 Cảm biến DHT22
Giới thiệu về cảm biến nhiệt độ và độ ẩm DHT22:
Cảm biến nhiệt độ và độ ẩm/module DHT22 (DHT22 cũng cótên là AM2302) là cảm biến rất thông dụng hiện nay do kích thước
nỏ gọn, chi phí rẻ và vì được tích hợp trên một mạch nên rất dễdàng lấy dữ liệu thông qua giao tiếp 1 wire (giao tiếp digital mộtdây truyền dữ liệu duy nhất) Đầu ra DHT22 hiệu chỉnh tín hiệu kỹthuật số Nó sử dụng duy nhất kỹ thuật số tín hiệu thu kỹ thuật vàcông nghệ cảm biến độ ẩm, đảm bảo độ tin cậy và sự ổn định Cácyếu tố cảm biến được kết nối với 8-bit đơn chip máy tính
Hình 1.6 Cảm biến nhiệt độ, độ ẩm DHT22
Thứ tự và chức năng các chân trên DHT22 (từ trái qua phải):
- Chân 1: VCC - Nguồn
- Chân 2: Data - Truyền dữ liệu/tín hiệu
- Chân 3: NC (not connect) - Không có kết nối
- Chân 4: GND - Đất
Tính năng và ứng dụng của DHT22 là dùng để đo nhiệt độ và
độ ẩm tương đối của không khí và môi trường xung quanh nó
Một số ưu điểm của DHT22
Kích thước nhỏ và tiêu thụ điện năng thấp
Khoảng cách truyền dẫn dài (khoảng 20m) cho phép DHT22được tích hợp ở tất cả các loại ứng dụng khắc nghiệt
Trang 29Thời gian dò Khoảng 2s
Khả năng hoán đổi Có thể hoán đổi cho nhau
Trang 30Nguyên lý hoạt động
Trạng thái mặc định của chân data là 1 Khi giao tiếp bắtđầu, Raspberry Pi sẽ kéo chân data xuống 0 trong 18ms (StartSignal) DHT22 sẽ phát hiện tín hiệu này Sau đó, Raspberry Pi sẽkéo chân data lên 1 trong 20-40us để chờ DHT22 phản hồi KhiDHT22 nhận được Start Signal, sẽ kéo chân data xuống 0(Response Signal) trong 80us Sau đó kéo chân data lên 1 trong80us, và chuẩn bị gửi dữ liệu
Trong quá trình truyền dữ liệu, mỗi 1 bit dữ liệu trước khitruyền được bắt đầu bằng một tín hiệu mức thấp 50us Sau đó dữliệu được truyền qua tín hiệu ở mức 1, với bit 0 được biểu hiệnbằng một tín hiệu mức 1 với độ rộng 26-28us, bit 1 được biểu hiệnbằng một tín hiệu mức 1 với độ rộng 70us
Sơ đồ kết nối với vi xử lí:
Hình 1.8 Cảm biến DHT22 kết nối với vi xử lý
Để có thể giao tiếp với DHT22 theo chuẩn 1 chân vi xử lýthực hiện theo 2 bước:
- Gửi tín hiệu muốn đo (Start) tới DHT22, sau đó xác nhận lại
- Khi đã giao tiếp được với DHT22, cảm biến sẽ gửi lại 5 byte
dữ liệu và nhiệt độ
Bước 1: gửi tín hiệu muốn đo (tín hiệu start)
Trang 31Hình 1.9 Quá trình gửi tín hiệu của vi xử lí
MCU thiết lập chân DATA là đầu ra kéo chân DATA xuốngmức 0 trong khoảng thời gian lớn hơn 1ms Khi đó DHT22 sẽ hiểu
là MCU muốn đo nhiệt độ độ ẩm
MCU đưa chân DATA lên mức 1 sau đó thiết lâp lại là chânđầu vào
Sau khoảng 20-40us DHT22 sẽ kéo chân DATA xuống thấp.Nếu lớn hơn 40us mà chân DATA chưa được kéo xuống thấp nghĩa
là chưa giap tiếp được với DHT22
Chân DATA sẽ ở mức thấp 80us sau đó được DHT22 kéo lênmúc cao trong 80 us Bằng việc giám sát chân DATA, MCU có thểbiết được có giao tiếp được với DHT22 hay không? Nếu tín hiệu đođược lên cao khi đó hoàn thiện quá trình giao tiếp của MCU vớiDHT22
Bước 2: Đọc giá trị trên DHT22
DHT22 sẽ trả giá trị nhiệt độ và độ ẩm về dưới dạng 5 bytetrong đó:
Byte 1 giá trị phần nguyên của độ ẩm
Byte 2 giá trị phần thập phân của độ ẩm
Byte 3 giá trị phần nguyên của nhiệt độ
Byte 4 giá trị phần thập phân của nhiệt độ
Byte 5 kiểm trả tổng
Nếu Byte 5= Byte1+Byte2+Byte3+Byte4 thì giá trị nhiệt độ
và độ ẩm là chính xác còn nếu không thì kết quả đo bị sai
Trang 32Cách tính nhiệt độ và độ ẩm : (byt e cao × 256+byt e thấp)
Hình 1.11 Dữ liệu bit 1 nhận được từ DHT22
Sau khi tín hiệu được đưa về 0 ta đợi chân DATA của MCUđược DHT22 kéo lên 1 Nếu chân 1 DATA trong khoảng 26-28 usthì là 0 còn nếu tồn tại trong khoảng 70 us thì là 1 Do đó trong lậptrình ta bắt sườn lên của DATA sau đó delay 50 us Nếu giá trị đođược là 0 thì đọc được bit 0 nếu giá trị đo được là 1 thì đọc được bit1cứ thế ta đọc các bit tiếp theo
Một số chú ý khi sử dụng DHT22
Cảm biến nhiệt độ và độ ẩm DHT22 là một linh kiện đơn giản,gọn nhẹ và tiện sử dụng Mặc dù vậy, việc lắp đặt và sử dụngDHT22 vẫn có những yêu cầu đáng chú ý như sau:
- Không nên áp dụng DHT22 để đo ngoài phạm vi quy địnhdẫn đến hỏng hóc không đáng có DHT22 có thể phục hồi sau khi
Trang 33làm việc trong điều kiện không bình thường nhưng nó sẽ là tăngnguy cơ giảm tuổi thọ của nó.
- Hơi từ các nguyên liệu hóa chất có thể gây trở ngại cho quátrình đo của DHT22 làm giảm độ chính xác của các giá trị nhiệt độ
và độ ẩm
- Độ ẩm phụ thuộc tương đối nhiều vào nhiệt độ, đó là lý dotại sao cần sử dụng công nghệ để nhiệt độ được đo một cách chínhxác
- Tiếp xúc với ánh sáng mạnh hoặc tia cực tím trong thời giandài có thể làm giảm độ chính xác khi làm việc của DHT22
- Chất liệu dây dẫn là chì hoặc nhôm được khuyến khích khikết nối với DHT22 để tăng hiệu quả
- Hạn chế sử dụng DHT22 trong điều kiện có sương hoặc hơinước nhiều
- Không sử dụng DHT22 trong bất kỳ trường hợp nào khi nó
đã bị hỏng, để tránh nguy cơ gây nguy hiểm cho người sử dụng
1.2.3 Web server
Tổng quan về Internet và Web
Mạng máy tính là một hệ thống các máy tính được kết nối vớinhau, có thể chia sẽ dữ liệu cho nhau World Wide Web (WWW) làmột hệ thống server chứa thông tin (siêu văn bản) mà người dùng
có thể sử dụng thông qua web browser
Hình 1.12 Web Server
Mô hình mạng máy tính có dạng Client - Server trong đóServer (máy chủ) là máy tính sử dụng để các máy tính truy cập,
Trang 34các máy tính truy cập được gọi là Client Ví dụ khi người dùng truy
cập vào một trang web www.google.com thì Server là máy chủ chứa dữ liệu của www.google.com còn Client là máy tính cá nhân
của người dùng
TCP/IP là giao thức truyền dữ liệu giữa 2 máy tính, mỗi máytính có một địa chỉ IP (Internet Protocol) xác định Địa chỉ IP là cụmgồm 4 số giới hạn từ 0 - 255 có dạng A.B.C.D Ví dụ như193.168.1.93
Domain name (tên miền) là một định danh để xác định vị trícủa một máy tính trên mạng internet Domain name chỉ có duynhất và không trùng nhau Ví dụ như www.google.com là duy nhất
Website được chia thành 2 dạng: website tĩnh và websiteđộng Website tĩnh là những website không có khả năng tương tácvới người dùng, thường sử dụng các ngôn ngữ như HTML, DHTML…Website động là những website có tính tương tác cao giữa ngườidùng và quản trị, được xây dụng bằng ngôn ngữ ASP, PHP… cùngvới sự kết hợp của cơ sở dữ liệu Website động có phần quản trịweb để cập nhập nội dung website như website tin tức, bán hàng…
có phần bình luận cho các thành viên trong diễn đàn…
Như vậy, để tạo một web server đòi hỏi người dùng cầnchuẩn bị cho mình:
- Web browser (trình duyệt web) như Internet Explorer,Google Chrome, Mozzila Firefox…
- Trình soạn thảo văn bản: Notepad, Notepad ++, PHPDesigner…
- Chương trình chạy web server
Thiết lập webserver bằng Apache
Apache là một phần mềm có nhiều tính năng mạnh và linhhoạt dùng để làm webserver Raspberry Pi sử dụng hệ điều hànhLinux là Raspbian, được tạo ra từ nền tảng của hệ điều hànhDebian Nên việc cài đặt Apache cũng tương tự, ngoài ra do nhà
Trang 35phát triển cũng đã tích hợp Apache sẵn có trong kho ứng dụng nênchỉ cần dùng lệnh để cài đặt nó.
Sau khi xây dựng trang web hoàn chỉnh, copy trang web vàothư mục /var/www/ Như vậy mỗi lần truy cập địa chỉ IP củaRaspberry trên trình duyệt web thì sẽ chạy trang web thu thập dữliệu đã xây dựng Tuy nhiên web server chỉ mới hoạt động trongmạng LAN, muốn trang web hoạt động trên mạng Internet cầnphải xuất bản web server lên internet Nếu muốn thử nghiệm trangweb có thể dùng ứng dụng miễn phí như No-IP và đăng ký miễnphí tên miền để xuất bản web server lên Internet
Một số đặc điểm của Apache như sau:
- Hỗ trợ đầy đủ những giao thức HTTP trước đây nhưHTTP/1.1
- Miễn phí và được cộng đồng người dùng hỗ trợ lớn
- Có thể cấu hình và mở rộng những module
- Cung cấp mã nguồn đầy đủ và đăng ký không hạn chế
- Chạy trên nhiều hệ điều hành như Linux, Windows…
Bố cục trang web
Giao diện trang web được viết bằng các ngôn ngữ thườnggặp trong lập trình web như HTML, Javascript, Jquery (một modulecủa Javascript)… Trong đề tài này có sử dụng ngôn ngữ HTML tíchhợp với Python chủ yếu để tạo nên bố cúc cho trang web
HTML là một ngôn ngữ đánh dấu siêu văn bản chứ khôngphải một ngôn ngữ lập trình, nhằm tạo ra các trang web tĩnh dựatrên các thẻ (tags) đánh dấu, dựa vào các thẻ đánh dấu để trìnhduyệt cách hiển thị HTML chứa các thành phần định dạng để báocho trình duyệt web biết cách để hiển thị một trang web Một trangweb thông thường gồm có 2 thành phần chính:
- Dữ liệu của trang web (văn bản, âm thanh, hình ảnh…)
- Các thẻ tag HTML dùng để định dạng mô tả cách thức các
dữ liệu được hiển thị trên trình duyệt
Trang 36HTML bao gồm một loạt các mã ngắn nhập vào một tệp tinvăn bản của tác giả trang web Văn bản được lưu dưới dạng tệp
“html” và được xem qua trình duyệt, như Internet (Web Browser),Internet Explorer, Mozzila Firefox, Google Chrome… Trình duyệtnày đọc tệp và dịch văn bản sang dạng hiển thị, hy vọng hiển thịtrang như tác giả đã dự định Viết HTML đòi hỏi sử dụng các thẻmột cách chính xác để tạo tầm nhìn thích hợp Có thể sử dụng bất
cứ thứ gì từ trình soạn thảo văn bản thô sơ đến một trình biên tập
đồ hoạ mạnh mẽ để tạo các trang HTML.Các phần tử HTML là cáckhối xây dựng của các trang HTML Với các cấu trúc HTML, hìnhảnh và các đối tượng khác, chẳng hạn như các mẫu tương tác, cóthể được nhúng vào trang được hiển thị Nó cung cấp một phươngtiện để tạo các tài liệu có cấu trúc bằng cách biểu diễn ngữ nghĩakết cấu cho văn bản như tiêu đề, đoạn, danh sách, liên kết, dấunháy kép và các mục khác Các phần tử HTML được mô tả bởi cácthẻ, được viết bằng các dấu ngoặc góc Ví dụ như:
1.2Kết luận chương 1
Chương 1 trong đề tài này trình bày khái quát về tổng quanthu thập dữ liệu, các phương pháp cũng như ứng dụng của việc thuthập dữ liệu đối với đời thực Ngoài ra chương này còn giới thiệu
Trang 37sâu hơn về thu thập dữ liệu trên Raspberry Pi, giới thiệu tổng quát
về chiếc máy tính thu nhỏ Raspberry Pi, cảm biến DHT22 cũng nhưcác đặc điểm và ứng dụng của nó để ta thấy được sự phổ biến vàlợi ích từ ứng dụng của việc thu thập dữ liệu trong cuộc sống
Trang 38CHƯƠNG 2 PYTHON VÀ ỨNG DỤNG PYTHON
TRONG RASPBERRY PI
Chương này giới thiệu về ngôn ngữ lập trình Python, các cúpháp, đặc điểm của ngôn ngữ được xem là phổ biến nhất hiện naynày và ứng dụng của Python trên Raspberry Pi cũng như trong cáclĩnh vực khác trong cuộc sống
2.1 Tổng quan về ngôn ngữ lập trình Python
2.1.1 Giới thệu về ngôn ngữ lập trình Python
Python là một ngôn ngữ hỗ trợ mẫu đa lập trình bao gồm lậptrình hướng đối tượng, lập trình hàm và mệnh lệnh Python rấtthông dụng và dùng để viết các tiện ích hệ thống và các đoạn mãtrên Internet, Python không chỉ làm việc trên lĩnh vực đặc biệt nhưlập trình web, và đó là tại sao ngôn ngữ này là đa mục đích bởi vì
nó có thể được sử dụng với web, enterprise, 3D CAD… Nó cũngđược sử dụng như ngôn ngữ kết dính đóng vai trò tích hợp haingôn ngữ lập trình C và C++ Python là ngôn ngữ có hình thức đơngiản, cấu trúc rõ ràng, thuận tiện cho người mới học lập trình.Python hoàn toàn tạo kiểu động và dùng cơ chế cấp phát bộ nhớ
tự động Cấu trúc của Python còn cho phép người sử dụng viết mãlệnh với số lần gõ phím tối thiểu Quan trọng hơn là có rất nhiềungười dùng khác chia sẻ mã và đặt câu hỏi về vấn đề liên quanđến nó Python trở thành một ngôn ngữ giải thích, có nghĩa là bạn
có thể viết một chương trình và thực hiện nó trực tiếp chứ khôngphải ghi nó vào máy dưới dạng mã Với Python, việc phát triển ứngdụng và debug trở nên nhanh hơn bởi vì không cần đến bước biêndịch và chu trình edit-test-debug của Python là rất nhanh Ví dụ,trong Python bạn không phải nói rõ ràng cho máy tính hiểu đây làmột biến hay một chuỗi mà chương trình sẽ tìm ra các kiểu dữ liệukhi bạn thực thi nó Trình thông dịch Python có thể chạy theo haicách như là tương tác để thực hiện các lệnh cá nhân hoặc như một
Trang 39chương trình dòng lệnh để thực hiện các bài toán độc lập Môitrường phát triển tích hợp (IDE) đi kèm với Python và Rasberry Piđược gọi là IDLE.
2.1.2 Lịch sử phát triển Python
Guido van Rossum tạo ra Python vào cuối năm 1989 trênRecog-nized và sử dụng nó như là một ngôn ngữ lập trình đầu tiêncủa máy tính Năm 1999, Guido van Rossum đưa ra một đề xuấtđược biết đến với cái tên “Computer Pro-gramming for Everybody”
để dạy lập trình trong các trường tiểu học và trung học về cách sửdụng ngôn ngữ Python Hơn một thập kỷ sau đó, đề xuất đó đãthành sự thưc với sự xuất hiện của Raspberry Pi Ban đầu, Pythonđược phát triển để chạy trên nền Unix Nhưng rồi theo thời gian, nó
đã "bành trướng" sang mọi hệ điều hành từ MS-DOS đến Mac OS,OS/2, Windows, Linux và các hệ điều hành khác thuộc họ Unix.Mặc dù sự phát triển của Python có sự đóng góp của rất nhiều cánhân và được quản lí bới tổ chức phi lợi nhuận Python SoftwareFoundation, nhưng Guido van Rossum hiện nay vẫn là tác giả chủyếu của Python Ông giữ vai trò chủ chốt trong việc quyết địnhhướng phát triển của Python
Tính đến thời điểm hiện nay, Python đã trải qua các giaiđoạn:
- Python 1: bao gồm các bản phát hành 1.x Giai đoạn này,kéo dài từ đầu đến cuối thập niên 1990 Từ năm 1990 đến 1995,Guido làm việc tại CWI (Centrum voor Wiskunde en Informatica -Trung tâm Toán-Tin học tại Amsterdam, Hà Lan) Vì vậy, các phiênbản Python đầu tiên đều do CWI phát hành Phiên bản cuối cùngphát hành tại CWI là 1.2
Vào năm 1995, Guido chuyển sang CNRI (Corporation forNational Research Initiatives) ở Reston, Virginia Tại đây, ông pháthành một số phiên bản khác Python 1.6 là phiên bản cuối cùngphát hành tại CNRI
Trang 40Sau bản phát hành 1.6, Guido rời bỏ CNRI để làm việc với cáclập trình viên chuyên viết phần mềm thương mại Tại đây, ông có ýtưởng sử dụng Python với các phần mềm tuân theo chuẩn GPL.Sau đó, CNRI và FSF (Free Software Foundation - Tổ chức phầnmềm tự do) đã cùng nhau hợp tác để làm bản quyền Python phùhợp với GPL Cùng năm đó, Guido được nhận Giải thưởng FSF vì Sựphát triển Phần mềm tự do (Award for the Advancement of FreeSoftware).
Phiên bản 1.6.1 ra đời sau đó là phiên bản đầu tiên tuân theobản quyền GPL Tuy nhiên, bản này hoàn toàn giống bản 1.6, trừmột số sửa lỗi cần thiết
-Python 2: vào năm 2000, Guido và nhóm phát triển Pythondời đến BeOpen.com và thành lập BeOpen PythonLabs team Phiênbản Python 2.0 được phát hành tại đây Sau khi phát hành Python2.0, Guido và các thành viên PythonLabs gia nhập DigitalCreations
Python 2.1 ra đời kế thừa từ Python 1.6.1 và Python 2.0 Bảnquyền của phiên bản này được đổi thành Python SoftwareFoundation License Từ thời điểm này trở đi, Python thuộc sở hữucủa Python Software Foundation (PSF), một tổ chức phi lợi nhuậnđược thành lập theo mẫu Apache Software Foundation
- Python 3, còn gọi là Python 3000 hoặc Py3K: Dòng 3.x sẽkhông hoàn toàn tương thích với dòng 2.x, tuy vậy có công cụ hỗtrợ chuyển đổi từ các phiên bản 2.x sang 3.x Nguyên tắc chủ đạo
để phát triển Python 3.x là "bỏ cách làm việc cũ nhằm hạn chếtrùng lặp về mặt chức năng của Python"