Chương 1: Giới thiệu: Trong chương này, nhóm thực hiện đề tài trình bày tổng quan về vấn đề nghiên cứu và triển khai của hệ thống nhà xưởng thông minh. Mục tiêu, đối tượng và giới hạn của đề tài nghiên cứu. Chương 2: Cơ sở lý thuyết: Ở chương này nhóm thực hiện đề tài sẽ giới thiệu sơ lược lý thuyết kit raspberry ngôn ngữ Python, ngôn ngữ lập trình web và web server do an 3 Chương 3: Thiết kế hệ thống: Giới thiệu về phần cứng, các công cụ và phần mềm hổ trợ trong quá trình xây dựng và thiết kế phần cứng, phần mềm. Đưa ra giải thuật để xử lý và giải thích lưu đồ, cách thức hoạt động của các phần bên trong.
Chương 4: thi công hệ thống: thực hiện các kết nối phần cứng Chương 5: Kết quả thực hiện: Kiểm nghiệm hoạt động của toàn bộ hệ thống, kết quả hoạt động của hệ thống. Chương 6: Kết luận và hướng phát triển: Chương này trình bày những kết luận chung về đề tài, những mặt còn hạn chế và hướng phát triển. do an 4 Chương 2.1 CẤU TRÚC PHẦN MỀM CHO BOARD RASPBERRY được truy cập thông qua Image Firmware được nạp vào GPU vào lúc khởi động từ thẻ SD. Image Firmware được gọi là đốm màu nhị phân (Binary Blob), trong khi ARM liên kết với mã trình điều khiển Linux ban đầu được dựa vào nguồn đóng.
Một phần của mã điều khiển đã được giãi được thực hiện bằng cách sử dụng mã nguồn đóng GPU. Phần mềm ứng dụng sử dụng các cuộc gọi đến thư viện thời gian chạy nguồn đóng (OpenMax, OpenGL ES hay OpenVG). Nó sẽ gọi một trình điều khiển nguồn mở bên trong lõi Linux, sau đó gọi mã điều khiển nguồn đóng GPU VideoCore IV. Các API của trình điều khiển lõi là cụ thể cho những thư viện đóng.
Các ứng dụng Video sử dụng OpenMax, ứng dụng 3D sử dụng OpenGL ES và ứng dụng 2D sử dụng OpenVG và cả hai lần lượt sử dụng EGL. OpenMax và EGL sử dụng trình điều khiển n Hình 2.1 do an 5 OpenGL ES 2.0 (opengl) là một thư viện 3D, rất thường được sử dụng trên máy tính để bàn và các hệ thống nhúng. Nó được định nghĩa bởi Khronos Group. OpenVG là một thư viện bản vẽ véc tơ 2D, cũng thường được sử dụng trên máy tính để bàn và các hệ thống nhúng.
Một lần nữa, được định nghĩa bởi Khronos Group. ES hay OpenVG và hệ thống cửa sổ nền tảng nguồn gốc cơ bản. thói quen sử dụng trong âm thanh, video, vàxử lý hình ảnh tĩnh. OpenMax định nghĩa ba lớp, đây là lớp IL, cung cấp một giao diện giữa các khuôn khổ đa phương tiện như Gstreamer và một tập hợp các thành phần đa phương tiện (như bảng mã).
Openmax IL khôn Broadcom 2.2 Hệ điều hành Linux 2.1 Khái quát Linux là tên gọi của của một hệ điều hành máy tính và nó cũng là tên hạt nhân của hệ điều hành được tạo ra bởi Linus Torvalds năm 1991 và sau đó được phát hành vào năm 1992 dưới giấy phép GNU/GPL. do an 6 Linus Torvalds làm việc một cách hăng say trong vòng 3 năm liên tục và cho ra đời phiên bản Linux 1. Bộ phận chủ yếu này được phát triển và tung ra trên thị trường dưới bản quyền GNU General Public License. Do đó mà bất cứ ai cũng có thể tải và xem mã nguồn của Linux.
Một cách chính xác, thuật ngữ "Linux" được sử dụng để chỉ Nhân Linux, nhưng tên này được sử dụng một cách rộng rãi để miêu tả tổng thể một hệ điều hành giống Unix (còn được biết đến dưới tên GNU/Linux) được tạo ra bởi việc đóng gói nhân Linux cùng với các thư viện và công cụ GNU, cũng như là các bản phân phối Linux. Thực tế thì đó là tập hợp một số lượng lớn các phần mềm như máy chủ web, các ngôn ngữ lập trình, các hệ quản trị cơ sở dữ liệu, các môi trường làm việc desktop như GNOME và KDE, và các ứng dụng thích hợp cho công việc văn phòng như OpenOffice, LibreOffice. Khởi đầu, Linux được phát triển cho dòng vi xử lý 386, hiện tại hệ điều hành này hỗ trợ một số lượng lớn các kiến trúc vi xử lý, và được sử dụng trong nhiều ứng dụng khác nhau từ máy tính cá nhân cho tới các siêu máy tính và các thiết bị nhúng ví dụ như các máy điện thoại di động.2 Các thư mục trên linux Hệ thống tập tin của Linux và Unix được tổ chức theo một hệ thống phân bậc tương tự cấu trúc của một cây phân cấp. Bậc cao nhất của hệ thống tập tin là thư mục gốc, được ký hiệu bằng gạch chéo “/” (root directory).
Đối với các hệ điều hành Unix và Linux tất các thiết bị kết nối vào máy tính đều được nhận dạng như các tập tin, kể cả những linh kiện thiết bị như ổ đĩa cứng, các phân vùng đĩa cứng và các ổ USB. Điều này có nghĩa là tất cả các tập tin và thư mục đều nằm dưới thư mục gốc, ngay cả những tập tin biểu tượng cho các ổ đĩa cứng. Nằm dưới thư mục gốc (/) có một loạt các thư mục quan trọng của hệ thống tập tin được công nhận ở tất cả các bản phân phối Linux khác nhau. Sau đây là danh sách các thư mục thông thường được nhìn thấy dưới thư mục gốc (/) : /bin – chứa các ứng dụng quan trọng (binary applications).
do an 7 /boot – các tập tin cấu hình cho quá trình khởi động hệ thống (boot configuration files). /dev – chứa các tập tin là chứng nhận cho các thiết bị của hệ thống (device files) /etc – chứa các tập tin cấu hình của hệ thống, các tập tin lệnh để khởi động các dịch vụ của hệ thống. /home – thư mục này chứa các thư mục cá nhân của những người có quyền truy cập vào hệ thống (local users' home directories). /lib – thư mục này lưu các thư viện chia sẻ của hệ thống (system libraries).
/lost+found – thư mục này được dùng để lưu các tập tin không có thư mục mẹ mà được tìm thấy dưới thư mục gốc (/) sau khi thực hiện lệnh kiểm tra hệ thống tập tin (fsck). /media – thư mục này được dùng để tạo ra các tập tin gắn (loaded) tạm thời được hệ thống tạo ra khi một thiết bị lưu động (removable media) được cắm vào như đĩa CDs, máy ảnh kỹ thuật số. /mnt – thư mục này được dùng để gắn các hệ thống tập tin tạm thời (mounted filesystems), /opt – thư mục dùng dể chứa các phần mềm ứng dụng (optional applications) đã được cài đặt thêm. /proc – đây là một thư mục đặc biệt linh động để lưu các thông tin về tình trạng của hệ thống, đặc biệt về các tiến trình (processes) đang hoạt động.
/root – đây là thư mục nhà của người quản trị hệ thống (root). /sbin – thư mục này lưu lại các tập tin thực thi của hệ thống (system binaries). /sys – thư mục này lưu các tập tin của hệ thống (system files). /tmp – thư mục này lưu lại các tập tin được tạo ra tạm thời (temporary files).
/usr – thư mục này lưu và chứa những tập tin của các ứng dụng chính đã được cài đặt cho mọi người dùng (all users). /var – thư mục này lưu lại tập tin ghi các số liệu biến đổi (variable files) như các tập tin dữ liệu và tập tin bản ghi (logs and databases). do an 8 Hình 2.3 Tổng quan về ngôn ngữ Python 2.1 Khái niệm Python là một ngôn ngữ lập trình thông dịch do Guido van Rossum tạo ra năm 1990. Python hoàn toàn tạo kiểu động và dùng cơ chế cấp phát bộ nhớ tự động; do an 9 Python được phát triển trong một dự án mã mở, do tổ chức phi lợi nhuận Python Software Foundation quản lý.
Python là một ngôn ngữ dễ học và mạnh mẽ. Nó có những cấu trúc dữ liệu cấp cao hiệu quả và hướng lập trình đối tượng đơn giản. Cú pháp tao nhã và kiểu dữ liệu động của Python, cùng với bản chất thông dịch biến nó thành một ngôn ngữ bậc nhất để viết kịch bản và phát triển ứng dụng nhanh trong nhiều lĩnh vực và trên hầu hết mọi hệ thống. Trình thông dịch Python và bộ thư viện chuẩn đầy đủ được cung cấp miễn phí ở dạng nguồn hoặc nhị phân cho mọi hệ thống chính từ trang chủ Python.2 Đăc điểm 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.
Python tăng cường sử dụng từ khóa tiếng Anh, hạn chế các kí hiệu và cấu trúc, cú pháp so với các ngôn ngữ khác. Python là một ngôn ngữ phân biệt kiểu chữ HOA, chữ thường. Như C/C++, các từ khóa của Python đều ở dạng chữ thường. Trong các ngôn ngữ khác, khối lệnh thường được đánh dấu bằng cặp kí hiệu hoặc từ khóa.
Ví dụ, trong C/C++, cặp ngoặc nhọn { } được dùng để bao bọc một khối lệnh. Python, trái lại có một cách rất đặc biệt để tạo khối lệnh, đó là 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 chứa nó. Python được viết từ những ngôn ngữ khác, tạo ra những bản hiện thực khác nhau. Bản hiện thực Python chính, còn gọi là Cpython, được viết bằng C, và được phân phối kèm một thư viện chuẩn lớn được viết hỗn hợp bằng C và Python.
Cpython có thể chạy trên nhiều nền và khả chuyển trên nhiều nền khác. Dưới đây là các nền trên đó, Cpython có thể chạy. Ngoài Cpython, còn có hai hiện thực Python khác: Jython cho môi trường Java và IronPython cho môi trường .NET và Mono. Python là một ngôn ngữ lập trình dạng thông dịch, do đó có ưu điểm tiết kiệm thời gian phát triển ứng dụng vì không cần phải thực hiện biên dịch và liên kết.
Trình thông dịch có thể được sử dụng để chạy file script, hoặc cũng có thể được sử dụng theo cách tương tác. Ở chế độ tương tác, trình thông dịch Python tương tự shell của các hệ điều hành họ Unix, tại đó, ta có thể nhập vào từng biểu thức rồi gõ Enter, và kết quả thực do an 10 thi sẽ được hiển thị ngay lập tức. Đặc điểm này rất hữu ích cho người mới học, giúp họ nghiên cứu tính năng của ngôn ngữ; hoặc để các lập trình viên chạy thử mã lệnh trong suốt quá trình phát triển phần mềm. Ngoài ra, cũng có thể tận dụng đặc điểm này để thực hiện các phép tính như với máy tính bỏ túi.
Mỗi câu lệnh trong Python nằm trên một dòng mã nguồn. Ta không cần phải kết thúc câu lệnh bằng bất kì kí tự gì. Cũng như các ngôn ngữ khác, Python cũng có các cấu trúc điều khiển.