TỔNG QUAN
Đặt vấn đề
Xã hội hiện đại đang phát triển mạnh mẽ nhờ vào công nghệ, dẫn đến nhu cầu gia tăng về các dịch vụ và tiện ích từ khoa học kỹ thuật Việc ứng dụng công nghệ điện tử, công nghệ thông tin và truyền thông vào đời sống hàng ngày ngày càng trở nên quan trọng.
Công nghệ Internet of Things (IoT) và cảm biến không dây đang được ứng dụng rộng rãi trong nhiều lĩnh vực như nghiên cứu, giải trí, sản xuất và kinh doanh Sự phát triển này mở ra nhiều cơ hội cho việc tạo ra các ứng dụng đáp ứng nhu cầu đa dạng Dưới sự hướng dẫn của GVC.Ths Trần Thanh Mai, nhóm chúng tôi đã chọn đề tài: “Thiết kế hệ thống giám sát nhiệt độ, độ ẩm và ánh sáng dựa trên nền tảng IoT qua mạng Lan”.
Mục tiêu
Dựa trên nền tảng IoT thiết kế hệ thống giám sát nhiệt độ - độ ẩm – ánh sáng qua mạng Lan.
Bố cục
QUYỂN ĐỒ ÁN NÀY GỒM CÓ 6 CHƯƠNG
CƠ SỞ LÝ THUYẾT
TỔNG QUAN VỀ IOT( INTERNET OF THINGS)
2.1.1 Giới thiệu Internet of Things:
Khái niệm "the Internet of Things" do Kevin Ashton làm việc tại Procter & Gamble, sau này là MIT's Auto-ID Center, giới thiệu vào năm 1999
Hình 2.1 Kết nối vạn vật
Internet Vạn Vật (IoT) là mạng lưới kết nối các thiết bị và phương tiện vận tải thông qua Internet, cho phép chúng thu thập và truyền tải dữ liệu Các thiết bị này, được gọi là "thiết bị kết nối" và "thiết bị thông minh", có khả năng giao tiếp và tương tác với nhau, tạo ra một hệ sinh thái thông minh và hiệu quả.
HỆ THỐNG IOT
IoT được xem như một tầm nhìn công nghệ rộng lớn, đóng vai trò là hạ tầng toàn cầu cho xã hội thông tin, kết nối các "Things" để cung cấp dịch vụ tiên tiến Nó dự kiến tích hợp nhiều công nghệ mới như machine-to-machine, mạng tự trị, khai thác dữ liệu, bảo mật và điện toán đám mây Hệ thống thông tin trước đây đã tạo ra chiều hướng "Any TIME", mở ra nhiều cơ hội cho sự phát triển và cải tiến trong lĩnh vực này.
“Any PLACE” communication Giờ IoT đã tạo thêm một chiều mới trong hệ thống thông tin đó là “Any THING” Communication (Kết nối mọi vật)
Hình 2.2 Kết nối mọi vật 2.2.2 IoT từ góc nhìn kỹ thuật
Trong IoT, "Things" có thể là đối tượng vật lý hoặc đối tượng thông tin (đối tượng ảo) Hai loại đối tượng này có thể ánh xạ qua lại với nhau Một đối tượng vật lý có thể được đại diện bởi một đối tượng thông tin, nhưng một đối tượng thông tin cũng có thể tồn tại mà không cần ánh xạ từ một đối tượng vật lý.
Hình 2.3 Hệ thống IoT từ góc nhìn kỹ thuật
Các thiết bị có thể giao tiếp với nhau theo ba cách chính: Thứ nhất, thông qua các mạng lưới thông tin gọi là gateway; thứ hai, giao tiếp qua mạng lưới mà không cần gateway; và thứ ba, liên lạc trực tiếp với nhau qua mạng nội bộ.
Hình 2.4 Các loại thiết bị khác nhau và mối quan hệ
Yêu cầu cơ bản của các thiết bị trong Internet of Things (IoT) là khả năng giao tiếp Các thiết bị này được phân loại thành nhiều loại, bao gồm thiết bị mang dữ liệu, thiết bị thu thập dữ liệu, cảm biến (sensor) và thiết bị thực thi.
Thiết bị mang dữ liệu là một thiết bị được gắn vào một vật thể vật lý, nhằm kết nối gián tiếp các vật thể này với các mạng lưới thông tin liên lạc.
Thiết bị thu thập dữ liệu là một thiết bị có khả năng đọc và ghi thông tin, đồng thời tương tác với các đối tượng vật lý.
Thiết bị cảm ứng và thiết bị thực thi là những công cụ quan trọng trong việc phát hiện và đo lường thông tin từ môi trường xung quanh Chúng chuyển đổi thông tin này thành tín hiệu số và có khả năng thực hiện các hành động dựa trên tín hiệu kỹ thuật số nhận được từ các mạng.
General device là thiết bị tích hợp mạng thông qua kết nối có dây hoặc không dây, bao gồm nhiều loại thiết bị phục vụ cho các lĩnh vực khác nhau trong IoT.
2.2.3 Đặc điểm cơ bản và yêu cầu của một hệ thống IoT
2.2.3.1 Đặc tính cơ bản Đặc tính cơ bản của IoT bao gồm:
Tính kết nối liên thông trong IoT cho phép mọi thiết bị kết nối với nhau thông qua mạng lưới thông tin và cơ sở hạ tầng liên lạc toàn cầu.
Những dịch vụ liên quan đến “Things”: hệ thống IoT có khả năng cung cấp các dịch vụ liên quan đến “Things”
Tính không đồng nhất: Các thiết bị trong IoT là không đồng
Thay đổi linh hoạt: Status của các thiết bị tự động thay đổi Hơn nữa, số lượng thiết bị có thể tự động thay đổi
Quy mô lớn: Sẽ có một số lượng rất lớn các thiết bị được quản lý và giao tiếp với nhau
2.2.3.2 Yêu cầu đối với một hệ thống IoT
Một hệ thống IoT phải thoả mãn các yêu cầu sau:
Kết nối trong hệ thống IoT dựa trên việc nhận diện các "Things" thông qua ID riêng biệt Mỗi "Thing" cần có một định danh duy nhất để thiết lập kết nối hiệu quả giữa chúng.
Khả năng cộng tác: hệ thống IoT khả năng tương tác qua lại giữa các mạng và
Khả năng tự quản của mạng: Tự quản lý, tự cấu hình, tự recovery, tự tối ưu hóa và tự có cơ chế bảo vệ
Dịch vụ thoả thuận: Được thiết lập bởi người vận hành hoặc tùy chỉnh bởi các người dùng
Các khả năng dựa vào vị trí (location-based capabilities): Hệ thống IoT có thể biết và theo dõi vị trí một cách tự động
Bảo mật: Trong IoT, nhiều “Things” được kết nối với nhau nên tính bảo mật bị hạn chế
Bảo vệ tính riêng tư trong hệ thống IoT là rất quan trọng, bao gồm các biện pháp bảo vệ trong quá trình truyền dữ liệu, cũng như trong các giai đoạn thu thập, lưu trữ, khai thác và xử lý thông tin.
Plug and play: các Things phải được plug-and-play một cách dễ
Hệ thống IoT cần có khả năng quản lý các "Things" để đảm bảo mạng hoạt động ổn định Quá trình này được giám sát và điều hành bởi các bên liên quan, nhằm duy trì hiệu suất và tính liên tục của mạng.
2.2.4 Mô hình của một hệ thống IoT
Một hệ thống IOT được xây dựng lên từ sự kết hợp của 4 layer sau:
Lớp ứng dụng (Application Layer)
Lớp Hỗ trợ (Service support and application support layer)
Lớp thiết bị (Device Layer)
LÀM QUEN VỚI RASPBERRY PI
Hình 2.6 Sơ đồ khối Raspberry Pi
Raspberry pi 3: hỗ trợ đa kết nối (sẽ được đề cập sau)
Chỉ cần một bàn phím, một tivi hoặc màn hình có cổng HDMI/DVI, nguồn USB 5V và dây micro USB, bạn có thể sử dụng Raspberry Pi như một máy tính thông thường Raspberry Pi cho phép bạn thực hiện các tác vụ văn phòng, nghe nhạc và xem phim với độ nét cao Đặc biệt, thiết bị này rất tiết kiệm điện và có khả năng hoạt động liên tục 24/24.
CPU 64 bit quad-core bộ vi xử lý ARM Cortex A53, tốc độ 1.2GHz
Tích hợp Bluetooth 4.1 (sở hữu tính năng tiết kiệm năng lượng BLE)
Cổng HDMI, hỗ trợ Full HDMI
Cổng Ethernet (hay là cổng mạng LAN)
Giao tiếp Camera qua CSI
Hỗ trợ hiển thị DSI
Khe gắn Micro SD card được hàn chết trên board theo kiểu Push-Pull
Vi xử lý hình ảnh VideoCore IV 3D
Hình 2.8 Sơ đồ cổng kết nối Raspberry Pi Trái tim của Raspberry Pi 3: là bộ vi xử lý ARM Cortex A53, tốc độ 1.2GHz gấp
10 lần so với thế hệ đầu tiên
Hệ thống GPIO (General Purpose Input Output) bao gồm 40 chân được chia thành hai hàng, cho phép người dùng kết nối và điều khiển đa dạng thiết bị điện tử và cơ khí.
Ngõ HDMI: dùng để kết nối Pi với màn hình máy tính hay tivi có hỗ trợ cổng HDMI
Cổng audio 3.5mm cho phép kết nối dễ dàng với loa ngoài và tai nghe Đối với tivi trang bị cổng HDMI, âm thanh đã được tích hợp qua tín hiệu HDMI, do đó không cần sử dụng cổng audio này.
Cổng CSI: khe cắm này là để cắm modul camera vào Raspberry Pi
Cổng DSI: nơi đây sẽ giúp ta có thể kết nối Raspberry Pi với màn hình cảm ứng Cổng USB: Raspberry Pi tích hợp 4 cổng USB
Cổng Ethernet: cho phép kết nối Internet dễ dàng
Khe cắm thẻ SD: Raspberry Pi không tích hợp ổ cứng Thay vào đó nó dùng thẻ
LED trên Raspberry: Raspberry có tổng cộng 4 LED 2 LED trên board (LED PWR (đỏ); LED ACT (xanh)) và 2 LED trong cổng Ethernet (LED trái (vàng); LED phải (xanh))
Nguồn cho Raspberry: Jack nguồn micro USB 5V với nguồn lý tưởng cho Raspberry là nguồn DC 5V-2.5A
Hình 2.9 Sơ đồ kết nối Raspberry Pi
Nhà sản xuất Raspberry sẽ cung cấp một bộ thư viện mã nguồn đóng, cho phép người dùng truy cập vào các tính năng tăng tốc GPU Các thư viện này bao gồm: OpenGL ES 2.0 (opengl), OpenVG, EGL, Openmax và Openmax IL.
2.3.3.2 Hệ điều hành của Raspberry Pi
Raspberry Pi là một máy tính cần cài đặt hệ điều hành để hoạt động Trong thế giới nguồn mở Linux, có nhiều phiên bản hệ điều hành tùy biến (distro) khác nhau Việc lựa chọn distro phù hợp phụ thuộc vào nhu cầu, mục đích và khả năng học hỏi của người dùng.
2.3.3.3 Hệ điều hành chính của Raspberry:
Raspian "wheezy", Soft-float "wheezy", Arch Linux, Pidora, RISC OS
Tuy nhiên với cấu hình tương đối Raspberry Pi 3 Model chạy ổn định nhiều hệ điều hành khác như: CentOS, Fedora, Ubuntu, ATE, Kali Linux, Ubuntu Core, Windows
10 IoT Core, Slackware, Debian, Android Things…
NGÔN NGỮ LẬP TRÌNH PYTHON
Python là một ngôn ngữ lập trình thông dịch được phát triển bởi Guido van Rossum vào năm 1990 Nó có đặc điểm kiểu dữ liệu động và sử dụng cơ chế cấp phát bộ nhớ tự động, tương tự như các ngôn ngữ như Perl, Ruby, Scheme, Smalltalk và Tcl.
Cấu trúc của Python cho phép người dùng viết mã lệnh với số lần gõ phím tối thiểu Ban đầu, Python được phát triển cho nền tảng Unix, nhưng sau đó đã mở rộng ra tất cả các 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
2.4.2 Đặc điểm của ngôn ngữ lập trình Python:
Python được thiết kế để trở thành một ngôn ngữ dễ học, mã nguồn dễ đọc, bố cục trực quan, dễ hiểu, thể hiện qua các điểm sau:
Từ khóa: đơn giản và trực quan với người dùng
Với Python ta chỉ cần thụt các câu lệnh trong khối vào sâu hơn (về bên phải) so với các câu lệnh của khối lệnh cha chứa nó
Ví dụ, giả sử có đoạn mã sau trong C/C++:
6 // Khối lệnh mới bắt đầu từ kí tự {đến}
12 printf("Phuong trinh co hai nghiem phan biet:\n");
16 Đoạn mã trên có thể được viết lại bằng Python như sau:
5 # Khối lệnh mới, thụt vào đầu dòng
8 print "Phuong trinh co hai nghiem phan biet:"
Python cho phép người dùng dễ dàng viết và tích hợp nhiều hàm tùy chỉnh theo nhu cầu, tương tự như các ngôn ngữ lập trình khác Hơn nữa, người dùng có thể mở rộng trình thông dịch để kết nối với các thư viện một cách thuận tiện.
Như đã đề cập ở trên nó có thể tương thích với nhiều trình thông dịch
Lệnh và cấu trúc: Python lệnh đơn giản và khối lệnh đa cấu trúc
Hệ thống kiểu dữ liệu:
Python áp dụng hệ thống kiểu duck typing, hay còn gọi là latent typing, cho phép tự động xác định kiểu dữ liệu mà không cần khai báo trước Khi sử dụng Python, biến được khai báo và xác định kiểu dữ liệu ngay tại lần gán đầu tiên Một số kiểu dữ liệu phổ biến trong Python bao gồm: int, long, float, complex, list, tuple, str, dict và set, bên cạnh nhiều kiểu dữ liệu khác.
Python hỗ trợ chia chương trình thành các module, giúp tái sử dụng trong các ứng dụng khác Ngoài ra, Python cung cấp một bộ module chuẩn phong phú, cho phép lập trình viên dễ dàng sử dụng lại trong dự án của họ Các module này mang lại nhiều chức năng hữu ích, bao gồm hàm truy xuất tập tin, gọi hệ thống và hỗ trợ lập trình mạng (socket).
2.4.4 Các ứng dụng từ Raspberry Pi
Ta có thể sử dụng board Raspberry Pi cho rất nhiều ứng dụng khác nhau, từ đơn giản đến phức tạp
Yêu cầu: Một chiếc Raspberry Pi đã được cài đặt Raspbian và kết nối Internet Thực hiện:
CÀI ĐẶT APACHE WEB SERVER
Apache is the most popular web server application globally and can be installed on a Raspberry Pi, enabling the public hosting of one or multiple websites on the Internet By default, Apache supports only HTML files; however, with the addition of certain modules, it can also run PHP files.
Cài đặt gói dịch vụ Apache bằng cách chạy lệnh sau: sudo apt-get install apache2 -y
Mặc định, sau khi cài đặt, Apache sẽ hiển thị một file HTML test Để kiểm tra, bạn chỉ cần mở trình duyệt và nhập địa chỉ IP của Raspberry Pi trong mạng của bạn, hoặc sử dụng localhost nếu đang thử nghiệm trên chính máy Raspberry Pi.
Hình 2.10 Truy cập webserver THAY ĐỔI TRANG MẶC ĐỊNH CỦA APACHE
Sau khi cài đặt Apache, dữ liệu web sẽ được lưu trữ tại thư mục /var/www/ Trong thư mục này, file index.html là file chính mà chúng ta đã thấy trước đó Để truy cập vào thư mục /var/www và xem danh sách các file, bạn có thể sử dụng hai lệnh: cd /var/www và ls -al.
Chúng ta sẽ nhìn thấy như sau: total 1 drwxr-xr-x 2 root root 4096 Jan 8 01:29 drwxr-xr-x 12 root root 4096 Jan 8 01:28
In the /var/www directory, there is only one file named index.html, as indicated by the permissions -rw-r r 1 root root 177 Jan 8 01:29 index.html The single dot (.) refers to the current directory, /var/www/, while the double dot ( ) points to the parent directory, /var/.
TÍNH TOÁN VÀ THIẾT KẾ
GIỚI THIỆU
Chúng ta sẽ phát triển một ứng dụng giám sát các thông số môi trường quan trọng cho việc bảo quản thực phẩm, đặc biệt là thực phẩm tươi sống trong quá trình vận chuyển, bao gồm nhiệt độ, độ ẩm và ánh sáng Sử dụng thiết bị Raspberry Pi cùng với các cảm biến DHT22 và BH1570, chúng ta sẽ lập trình bằng ngôn ngữ Python và các thư viện chuyên dụng từ Adafruit để thu thập và xử lý dữ liệu từ các cảm biến này.
Sử dụng ngôn ngữ lập trình Python, chúng ta có thể đọc dữ liệu từ các cảm biến như cảm ứng ánh sáng, nhiệt độ và độ ẩm Đồng thời, việc tạo webserver giúp hiển thị dữ liệu từ cảm biến một cách trực quan và dễ hiểu.
Hướng dẫn tạo cơ sở dữ liệu Raspberry Pi với MYSQL và PHPMyAdmin giúp ghi lại dữ liệu từ cảm biến, phục vụ cho việc vẽ đồ thị và sử dụng trong tương lai.
Theo dõi thường xuyên, liên tục các thông số môi trường (để điều chỉnh nếu nhận được sự thay đổi ngoài giới hạn).
THI CÔNG HỆ THỐNG
GIỚI THIỆU
Phần này bao gồm hai nội dung chính: kết quả thi công phần cứng và các kết quả hình ảnh hiển thị trên màn hình, cũng như mô phỏng tín hiệu và thống kê kết quả.
THI CÔNG HỆ THỐNG
Danh sách các linh kiện
- Cảm biến nhiệt độ và độ ẩm DHT22
- Cảm biến cường độ ánh sáng BH1750
4.2.2 Lắp ráp và kiểm tra
Vi điều khiển trung tâm là KIT Raspberry Pi với thiết kế nhỏ gọn
Các module kết nối vào KIT gồm:
Cảm biến nhiệt độ và độ ẩm DHT22
Cảm biến cường độ ánh sáng BH1750
Các module kết nối với KIT thông qua các chân GPIO
Bằng việc điều khiển KIT xuất và nhận tín hiệu tại các chân GPIO, ta điều khiển được các module hoạt động theo ý muốn mình
Lắp ráp module cảm biến
Cảm biến nhiệt độ và độ ẩm DHT22
Thông số kỹ thuật của linh kiện điện tử DHT22: Điện áp hoạt động 3.3V – 5.5V
Sai số độ ẩm ±2% + Dải đo nhiệt độ -40 – 80oC
Sơ đồ và chức năng chân của linh kiện điện tử DHT22
Hình 4.1 Sơ đồ chân DHT22 Chức năng chân của DHT22
Chân 1 - VDD chân nối nguồn (5V)
Chân 2 - DATA chân dữ liệu vào ra
Chân 4 - GND chân nối mass (0V)
Nguyên lý hoạt động của linh kiện điện tử DHT22
Hình 4.2 Sơ đồ kết nối với vi xử lý Để có thể giao tiếp với DHT22 cần 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 độ đo được
Kết nối DHT22: Trong các chân GPIO của KIT Raspberry Pi có 7 chân xuất nhập tín hiệu là: GPIO 4, GPIO 17, GPIO 18, GPIO 21, GPIO 22, GPIO 23, GPIO 24, GPIO 25
Ta có thể chọn các chân này làm chân giao tiếp với các module cảm biến DHT22
Hình 4.3 Sơ đồ chân IO của board Raspberry Pi
Chân Đỏ nối vào 5V (PIN 2)
Chân Nâu nối vào GROUND (PIN 6)
Chân Cam nối vào GPIO 17(PIN 11) a Cảm biến cường độ ánh sáng BH1750
Cảm biến ánh sáng kỹ thuật số BH1750 sử dụng giao tiếp I2C, cho phép nhận diện dữ liệu ánh sáng xung quanh với độ phân giải cao từ 1 đến 65535 lx Linh kiện này rất phù hợp cho việc điều chỉnh độ sáng màn hình LCD và bàn phím đèn nền trên điện thoại di động.
Chân vàng nối vào vcc (PIN 1) chân SDA nối vào SDA (pin 3) chân SCL nối vào SCL (pin 5)
Chân nâu nối tới GND và ADO (PIN 6)
4.2.2.2 Kết nối với Raspberry Pi từ PC
Khi không có sẵn màn hình, bàn phím hoặc chuột để sử dụng Raspberry
Pi, ta có thể kết nối Raspberry Pi với máy tính chạy Windows thông qua
SSH là giao thức mạng thiết lập kết nối bảo mật giữa hai thiết bị trong cùng một lớp mạng Để sử dụng SSH với Raspberry Pi, bạn cần khởi động phần mềm Putty, nhập địa chỉ IP của Raspberry Pi vào ô Host Name và chọn Open Lưu ý rằng sau khi cài đặt hệ điều hành và khởi động Raspberry Pi, bạn có thể tìm địa chỉ IP của thiết bị này.
Pi bằng cách sử dụng một chương trình quét IP ví dụ như Advanced IP
Hình 4.4 Phần mềm Putty Ngoài ra, ta có thể dùng Remote Desktop Connection có sẵn trên
Windows để điều khiển từ xa Raspberry Pi trên giao diện đồ họa
Hình 4.5 Phần mềm Remote Desktop Connection
To initiate a Remote Desktop Connection from Windows, enter the IP address of your Raspberry Pi in the Computer field and click Connect A window will prompt you for a username and password, where you should use the default credentials for Raspberry Pi: username "pi" and password "raspberry."
Thiết lập IP cho Raspberry Pi
Sau khi kết nối với Raspberry Pi, giao diện của Putty sẽ hiển thị dòng lệnh tương tự như Terminal trên Raspberry Pi, cho phép người dùng sử dụng các lệnh giống như khi làm việc trực tiếp trên thiết bị.
Hình 4.6 Giao diện dòng lệnh của Putty
Mặc định Raspberry Pi nhận IP động từ DHCP, ta sẽ thiết lập địa chỉ
IP của Raspberry Pi thành IP tĩnh để thuận tiện cho việc cài đặt webserver lên Raspberry Pi Đầu tiên ta mở file config IP bằng lệnh:
$ sudo nano /etc/dhcpcd.conf
To set a static IP for Raspberry Pi, add the following lines to the network configuration: under interface eth0, specify static ip_address as 2.168.1.150/24, static routers as 2.168.1.1, and static domain_name_servers as 8.8.8.8 and 208.67.222.222 Similarly, for interface wlan0, set static ip_address to 2.168.1.200/24, with the same static routers and domain name servers.
Giao diện (interface) là định dạng của card mạng mà bạn muốn sử dụng, ví dụ như mạng dây (eth0) hoặc Wifi (wlan0) Địa chỉ IP tĩnh (static ip_address) là địa chỉ mà bạn muốn thiết lập cho Raspberry Pi, lưu ý thêm /24 ở cuối hoặc tùy thuộc vào dải mạng mà bạn sử dụng, thường là /24 Địa chỉ IP Gateway (static routers) thường là địa chỉ IP của modem hoặc router trong gia đình Địa chỉ IP DNS (static domain_name_servers) dùng để phân giải tên miền, thường sử dụng DNS của Google và OpenDNS, có thể thêm nhiều DNS cách nhau bằng dấu cách.
Sau đó ta chỉ cần thoát và lưu lại file dhcpcd.conf bằng cách bấm Ctrl + X rồi gõ Y xong Enter là được
Với dòng lệnh trên thì IP tĩnh của Raspberry khi kết nối mạng dây sẽ là
192.168.1.150 (ta cần lưu ý nếu IP Raspberry chỉ khác IP routers dãy số cuối)
Công việc này giúp kết nối với Raspberry Pi dể dàng hơn khi thay đổi WLAN hoặc
THI CÔNG VÀ ĐÓNG GÓI MÔ HÌNH
Hình ảnh thực tế của sản phẩm:
Hình 4.8 Bộ sản phẩm thực tế (1)
LẬP TRÌNH HỆ THỐNG
Mô hình hoạt động biểu diễn trên use-case, tương tác giữa các thành phần, cấu trúc của chương trình:
Hình 4.10 Mô hình hoạt động use-case
Mô hình hoạt động của chương trình biểu diễn dưới dạng sơ đồ:
Hình 4.11 Mô hình hoạt động theo sơ đồ 4.4.2 Phần mềm lập trình cho vi điều khiển
4.4.2.1 Cài đặt hệ điều hành Raspian cho Raspberry Pi: a Lựa chọn và cài đặt hệ điều hành:
Hệ điều hành Raspian được chọn vì nó hỗ trợ giao diện người dùng và giao tiếp mạng hiệu quả, đồng thời tương thích tốt với nhiều ngôn ngữ lập trình, đáp ứng nhu cầu của đề tài Ngoài ra, việc chuẩn bị phần cứng cũng là một yếu tố quan trọng trong quá trình triển khai dự án.
Thẻ nhớ SD: tối thiểu 4 GB Tốt nhất là 8 GB hoặc hơn, tốc độ từ class 6 trở lên
Bàn phím, chuột sử dụng cổng USB
Màn hình kết nối với cổng HDMI hoăc TIVI kết nối với cồng RCA
Dây mạng nếu bạn muốn Raspberry Pi có thể kết nối mạng
Máy tính và đầu đọc thẻ nhớ
Hình 4.12 Sơ đồ kết nối board Pi với các thiết bị
HĐH mà ta sử dụng được gọi là Raspbian, link tải về: http://www.raspberrypi.org/downloads
Bước 2: tải phần mềm Win32DiskImage:
Tải về tại http://sourceforge.net/projects/win32diskimager/
Giải nén và các bạn sẽ được thư mục win32diskimager-binary chứa phần mềm chúng ta cần sử dụng
Bước 3: Nạp Raspbian vào thẻ nhớ:
Cắm thẻ nhớ SD vào máy tính
Chạy phần mềm Win32DiskImage nằm trong thư mục vừa giải nén ở bước 3
Trong ô Image File, chọn file img vừa download lúc nãy
Trong ô Device, chọn thẻ nhớ muốn sử dụng
Bấm Write để bắt đầu ghi, quá trình này sẽ mất vài phút
Hình 4.13 Chạy phần mềm Win32DiskImage Khởi động và thiết lập Raspberry Pi: lần khởi động đầu tiên, các bạn sẽ thấy màn hình như hình 4.14 bên dưới
To start and configure your Raspberry Pi, adjust the timezone or locale settings as desired Finally, select option two: expand_rootfs and confirm with 'yes' to reboot Upon restarting, you will see the Raspberry Pi login screen.
Hình 4.15 Màn hình Raspberry Pi login
Tiếp theo sẽ là Password: gõ pass mặc định là: raspberry Đăng nhập thành công, các bạn sẽ thấy dấu nhắc lệnh pi@raspberry~$
Hình 4.16 Đăng nhập vào Pi thành công
Gõ startx hoặc init 5 để khởi động giao diện đồ họa
Hình 4.17 Giao diện hệ điều hành Raspbian
Cài đặt và khởi động hệ điều hành Raspbian cho KIT Raspberry Pi cần thực hiện theo các bước cần thiết Ngoài Raspbian, bạn có thể tải về nhiều hệ điều hành khác từ trang web http://www.raspberrypi.org/downloads và cài đặt chúng theo cách tương tự.
4.4.2.2 Lựa chọn ngôn ngữ lập trình:
Mỗi phần cứng, bao gồm KIT Raspberry Pi, đều cần một phần mềm để điều khiển và kiểm soát hoạt động của nó Python là một ngôn ngữ lập trình linh hoạt, tương tự như Java và NET, cho phép chạy trên hầu hết các hệ điều hành như Windows, Linux/Unix, Mac OS X, OS/2, Amiga và Palm Handhelds.
Cài đặt Python: Mặc định hệ điều hành Raspbian đã cài sẳn Python, nếu không có Python cài sẵn ta tiến hành cái Python cho Raspberry Pi như sau:
Bước 1: Kết nối dây mạng vào cổng Ethernet của KIT Raspberry Pi
Bước 2: Tại giao diện màn hình của Raspberry Pi ta chạy LX terminal
To install essential Python development tools, open the LX terminal and sequentially enter the following commands: `sudo apt-get install python-dev`, followed by `curl -O http://python-distribute.org/distribute_setup.py`, then execute `python distribute_setup.py` Next, download the pip installation script with `curl -O https://raw.github.com/pypa/pip/master/contrib/get-pip.py` and run it using `python get-pip.py` Finally, install the virtual environment package by executing `sudo pip install virtualenv`.
Sau mỗi lệnh, ta đợi trong vài phút để KIT Raspberry Pi tải và cài đặt các tập tin trực tiếp từ mạng internet
Bước 3: Tiến hành cài đặt thư viện Rpi.GPIO Library nhằm lặp trình điều khiển các chân GPIO tiện lợi hơn
Trên cửa sổ LX Terminal đánh vào dòng lệnh: sudo apt-get update đợi trong vài phút để KIT Raspberry tải và cài đặt các tập tin
Bước 4: Khởi động Python: từ màn hình Desktop, chạy file IDLE3
Tạo file giao tiếp cảm biến
Trên Raspberry tạo file cambien.py để giao tiếp với cảm biến và cập nhập dữ liệu lên database:
Ta dùng lệnh sudo nano cambien.py để tạo file cambien.py với ngôn ngữ lập trình sẽ là python
Code đầy đủ sẽ được để phần PHỤ LỤC ở đây ta chỉ chú ý tới 1 vài dòng lệnh liên quan đến IoT:
Mở kết nối đến database db = MySQLdb.connect("localhost","root","doantotnghiep","nhietdo")
Chuẩn bị một đối tượng cursor vì ta sử dụng phương thức cursor() cursor = db.cursor()
Truy vấn SQL để INSERT một bản ghi vào trong (cập nhập dữ liệu mớí) sql = "INSERT INTO dulieu(tem, \ hum, time,lux) \
(temperature,humidity,datetime.now(),readLight()) try:
Thực thi lệnh SQL cursor.execute(sql)
Commit các thay đổi vào trong Database db.commit() Đến đây ta có thể hình dung Raspberry hiện tại đã là 1 server lưu trữ
Tạo khối chương trình con phụ vụ việc hiển thị
Tạo file NhietDo_model.php
Tạo khối chương trình kết nối với trang hiển thị
Tạo một trang để thể hiện thông tin cho người dùng
Tạo file nhietDo_view.php là bước quan trọng trong việc phát triển các chương trình hỗ trợ người dùng, sử dụng ngôn ngữ lập trình web để giám sát hệ thống IoT từ xa qua trình duyệt Các chương trình này sẽ được trình bày và giải thích chi tiết trong PHỤ LỤC.
Trên các cảm biến của chúng ta, công việc đã được mặc định, vì vậy chỉ cần kết nối đúng chân dữ liệu Các thao tác còn lại sẽ được thực hiện trên khối điều khiển.
KẾT QUẢ, NHẬN XÉT, ĐÁNH GIÁ
Kết quả nghiên cứu
Sau khi thực hiện đề tài “Dựa trên nền tảng IoT thiết kế hệ thống giám sát nhiệt độ - độ ẩm - ánh sáng qua mạng LAN”, chúng tôi đã hoàn thành các nội dung chính liên quan đến việc phát triển và triển khai hệ thống giám sát hiệu quả, ứng dụng công nghệ IoT để theo dõi các thông số môi trường như nhiệt độ, độ ẩm và ánh sáng, đồng thời sử dụng mạng LAN để truyền tải dữ liệu một cách nhanh chóng và chính xác.
Thiết kế được hệ thông với nền tản IoT với webserver trên Raspberry Pi
Nắm được về cấu trúc Raspberry Pi
Tìm hiểu và phân tích các đặc tính kỹ thuật của Raspberry Pi
Trình bày các giao tiếp Raspberry Pi với các thiết bị ngoại vi
Trình bày tổng quát ngôn ngữ lập trình Python
Tìm hiểu về cảm biến nhiệt độ và độ ẩm DHT22, cảm biến cường độ ánh sáng BH1750
Về hệ thống giám sát môi trường:
Sử dụng ngôn ngữ lập trình Python để đọc dữ liệu từ các cảm biến ánh sáng, nhiệt độ và độ ẩm, sau đó hiển thị thông tin này trên giao diện web một cách trực quan và dễ hiểu.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 52
5.1.1 Hình ảnh thực tế của sản phẩm:
Hình 5.1 Bộ sản phẩm thực tế (1)
Hình 5.2 Bộ sản phẩm thực tế (2)
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 53
Hình 5.3 Bộ Kit Raspberry Pi 3
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 54
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 55
5.1.2 Hình ảnh thực tế của hệ thống cơ sở dữ liệu Đăng nhập vào địa chỉ http://192.168.1.8/phpmyadmin/ trong đó 192.168.1.8 là địa chỉ
IP của Raspberry Pi trong WLAN
Hình 5.6 Giao diện đăng nhập cơ sơ dữ liệu
Hình 5.7 Giao diện đăng nhập trên smatphone Ở đây ta đăng nhập bằng tài khoản root với pass là: doantotnghiep
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 56
Hình 5.8 Các dữ liệu update
Hình 5.9 Truy cập trên smatphone
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 57
Hình 5.10 Truy cập cơ sơ dữ liệu bằng smatphone
Để xem đồ thị cùng các giá trị nhiệt độ, độ ẩm và cường độ ánh sáng, hãy đăng nhập vào địa chỉ http://192.168.1.8/nhietdo/index.php/nhietdo#.
Hình 5.11 Giao diện giám sát môi trường
Hình 5.12 Giao diện giám sát môi trường trên smatphone (1)
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 59
Hình 5.13 Giao diện giám sát môi trường trên samtphone (2)
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 60