Internet of Things : Getting Started with Raspberry Pi
Chúng ta sẽ bước đầu tiếp cận nền tảng IoT thông qua việc sử dụng máy tính nhúng Raspberry Pi. Những nội dung cơ sở sẽ được đề cập thông qua việc giới thiệu những đặc tính cơ bản của Raspberry Pi, cũng như đưa ra ví dụ cơ bản về concept kết nối và điều khiển thiết bị ngoại vi. Bạn có thể làm gì ...
Chúng ta sẽ bước đầu tiếp cận nền tảng IoT thông qua việc sử dụng máy tính nhúng Raspberry Pi. Những nội dung cơ sở sẽ được đề cập thông qua việc giới thiệu những đặc tính cơ bản của Raspberry Pi, cũng như đưa ra ví dụ cơ bản về concept kết nối và điều khiển thiết bị ngoại vi.
Bạn có thể làm gì với Raspberry Pi?
Một trong những câu hỏi đầu tiên được đưa ra là Raspberry Pi có điểm khác biệt gì với các bảng mạch nhúng khác như Arduino, Atmel MCU hay Tessel.
Raspberry Pi là một máy tính đơn đầy đủ chức năng với một bộ xử lý Broadcom, trong khi hệ thống khác có nền tảng là máy tính vật lý dựa trên vi điều khiển. Trên Raspberry Pi, bạn có thể chạy hệ điều hành như Linux, FreeBSD, và thậm chí là Windows 10 từ thẻ nhớ microSD. Kết nối Pi với thiết bị ngoại vi: bàn phím,chuột, và màn hình, ta xây dựng được giao diện người dùng với đồ họa đầy đủ trên nền tảng hệ điều hành cài đặt.
Chúng ta có thể coi Raspberry Pi là một máy tính chi phí thấp với các chân vào ra I/O có thể lập trình, qua đó bằng việc kết nối với các thiết bị ngoại vi như cảm biến, linh kiện điều khiển, chúng ta có thể xây dựng một concept về hệ thống IoT như một ngôi nhà thông minh với chi phí chấp nhận được.
Bạn bắt đầu từ đâu?
Trước hết, cần chuẩn bị một số “đồ chơi” để có thể thực hiện bài toán kết nối phần cứng và điều khiển trên nền tảng Raspberry Pi. Ngoài các thiết bị cần thiết cho giao diện người dùng phục vụ Raspberry Pi : màn hình kết nối chuẩn HDMI, chuột và bàn phím, chúng ta chuẩn bị những linh kiện sau:
- Raspberry Pi 2
- Thẻ Micro SD (và một bộ chuyển đổi)
- Bộ chuyển đổi Wi-Fi mini
- Cáp USB
- Dây điện
- Bảng chân cắm
- Đèn LED
- Điện trở
KHỞI ĐỘNG VỚI Raspberry Pi
Trước tiên, chúng ta cần thiết lập cấu hình khởi tạo và cài đặt hệ điều hành cho Raspberry Pi. Trong khuôn khổ nội dung này, chúng ta sẽ cài đặt hệ điều hành Raspbian trên nên tảng Linux, nội dung cài đặt cụ thể có thể tham khảo tại đây, bao gồm những bước chính sau:
- Format bộ nhớ flash và copy bộ cài từ trang chủ Raspberry Pi.
- Cài đặt Raspbian, kiểm tra hoạt động các thiết bị.
- Khởi động Raspbian, thiết lập cấu hình.
- Cấu hình Wifi
THIẾT LẬP THƯ VIỆN PubNub Python
Chúng ta hãy cùng bắt đầu coding trên Pi! Như đã trình bày ở trên, cấu trúc Raspberry Pi cho phép cài đặt hầu hết hệ điều hành như nền tảng Windows 10, Linux. Do đó chúng ta có thể lập trình bằng nhiều ngôn ngữ như C + +, Java, v. v. với Pi. Trong khuôn khổ nội dung này, chúng ta lập trình với ngôn ngữ Python trên hệ điều hành Raspbian. Các bước cài đặt ngôn ngữ Python tiến hành như sau,
Cài đặt PubNub Python trên LXTerminal
-
Cài đặt Python: Pi @ raspberrypi ~ $ sudo apt-get install python-dev
-
Cài đặt pip: Pi @ raspberrypi ~ $ sudo apt-get install python-pip
-
Cài đặt PubNub: Pi @ raspberrypi ~ $ sudo pip cài đặt pubnub
KẾT NỐI THIẾT BỊ NGOẠI VI: Điều khiển đèn LED
Trong ví dụ làm quen với Raspberry Pi, chúng ta sẽ điều khiển đèn LED thông qua các chân điều khiển được tích hợp sẵn trên Raspberry Pi. Các bước tiến hành như sau Lắp ráp một mạch điều khiển ngoại vi Ý tưởng ở đây là đấu dây từ PIN I/O của Raspberry Pi tới đèn LED, bằng việc điều khiển tín hiệu đầu ra, ta có thể thay đổi trạng thái tắt bật của đèn LED thông qua việc thay đổi điện áp 3.3V ở chân PIN tương ứng. Linh kiện cần thiết
- 01 đèn LED (giá trị điện áp cung cấp 1.9V - 3.2V, tùy thuộc vào màu sắc bạn chọn)
- 01 điện trở ~ 200Ω
- Bảng chân cắm
- 02 dây điện có đầu đực/cái, với quy ước màu để tránh nhầm lẫn: Dây đen dùng cho đấu đất Dây đỏ dùng cho nguồn dương
Kiểm tra trạng thái hoạt động của đèn LED Chúng ta thực hiện đấu dây như sau để kiểm tra trạng thái hoạt động của bảng mạnh và các linh kiện ngoại vi:
-
Trên bảng chân PIN của Raspberry Pi: Đấu dây đỏ vào PIN 3.3V Đấy dây đen vào PIN nối đất.
-
Nối dây đất (màu đen) vào hàng đầu tiên của bảng chân cắm. Trên một hàng gần đó, cắm dây nguồn (màu đỏ).
-
Kết nối pin dài (+) của đèn LED với cùng hàng với dây nguồn của bạn, và cắm pin ngắn (-) vào vị trí giữa dây nguồn và dây đất.
-
Đặt điện trở giữa pin ngắn (-) của LED và dây đất để hoàn thành mạch điện.
Trong trường hợp trạng thái hoạt động tốt, đèn LED sẽ sáng. Nếu không, kiểm tra lại kết nối mạch điện và linh kiện. Lập trình LED với Python
Đấu nối dây nguồn màu đỏ từ PIN 3.3V vào một PIN GPIO (trong ví dụ này là chân GPIO 4, hay là PIN vật lý 7; chú ý có hai cánh đánh số PIN khác nhau)
Một khi kết nối đèn nguồn dương của đèn LED với PIN GPIO 4, chúng ta có thể điều khiển trạng thái bật tắt của đèn bằng việc thay đổi điện áp nguồn ( 0V ứng với tín hiêu LOW, 3.3V ứng với tín hiệu HIGH). Mã code chương trình có thể tham khảo như sau.
import RPi.GPIO as GPIO import time GPIO.setmode (GPIO.BCM) LIGHT = 4 GPIO.setup(LIGHT,GPIO.OUT) while True: GPIO.output(LIGHT,True) time.sleep(0.5) GPIO.output(LIGHT,False) time.sleep(0.5)
Chúng ta cùng tìm hiểu ý nghĩa các dòng lệch
-
Dòng lệnh 1 và 2: thiết lập thư viện sử dụng, ở đây RPi.GPIO là một thư viện phục vụ kiểm soát các PIN GPIO của Pi, cũng như kiểm soát độ dài của thời gian giữ chậm phục vụ cho việc đồng bộ thiết bị ngoại vi.
-
Dòng lệnh 3 và 4: Thiết lập qui cách đánh số PIN, trong trường hợp này sử dụng quy ước đánh số BCM. Sau đó thiết lập trong chương trình rằng đèn LED kết nối với PIN GPIO 4.
-
Dòng 5: PIN GPIO có hoạt động như đầu vào hoặc đầu ra số, việc trạng thái từ LOW sang HIGH cho phép thay đổi điện áp cấp cho đèn LED. Dòng lệnh này thiết lập LIGHT là tín hiệu đầu ra.
-
Dòng 6 và phần còn lại: Thực hiện tác vụ nhấp nháy đèn LED bằng cách bật trạng thái đúng (gửi tín hiệu HIGH), và sai (LOW) trong vòng lặp.
Sau khi lưu chương trình dưới tên led.py và chạy bằng cú pháp,
$ sudo python led.py
đèn LED sẽ nhấp nháy cho đến khi chương trình bị tắt.
Như vậy, chúng ta đã bước đầu làm quen với hệ sinh thái IoT thông qua nền tảng Raspberry Pi. Ví dụ nêu trên đã giúp ta hình dung được những nội dung cơ sở liên quan đến kết nối phần cứng, đó cũng là nền tảng để mở rộng bài toán khi phát triển hệ thống kết nối với không gian Internet. Reference https://www.pubnub.com/blog/2015-05-27-internet-of-things-101-getting-started-w-raspberry-pi/