Bật tắt đèn bằng Raspberry PI

Giới thiệu

The Internet of Things (IoT) là một xu hướng công nghệ mới trong kỷ nguyên Internet, hãy hình dung một tương lai là mọi thiết bị, đồ dùng trong gia đình của bạn sẽ có thể tương tác với nhau và với chủ nhân thông qua Internet.

Giả sử bạn có các cảm biến đặt tại một số điểm trong vườn hoa nhà bạn và liên tục gửi dữ liệu đến một bộ xử lý trung tâm với các thông số như độ ẩm, nhiệt độ, độ tơi của đất trồng. Khi đó bạn có thể kiểm soát việc tưới nước từ điện thoại di động có kết nối Internet hoặc thiết lập một kịch bản tưới nước tự động khi những thông số trên vượt ngưỡng.

Một kịch bản khác đó là điều khiển các thiết bị trong nhà bạn như đèn chiếu sáng, khóa cửa, điều hòa không khí thông qua một giao diện web và một chiếc smartphone. Trong bài viết dưới đây tôi sẽ giới thiệu với các bạn một hệ thống điều khiển smarthome đơn giản sử dụng một web-based Raspberry Pi cho phép bạn kiểm soát ngôi nhà mình từ bất cứ nơi nào trên thế giới chỉ với giao diện thức web HTTP đơn thuần.

Mô hình hệ thống

Bạn sẽ có 2 thành phần  server (máy chủ) và client (máy khách), trong đó  máy chủ có thể là một website, một hosting bất kỳ. Còn máy khách chính là bộ Raspberry Pi trên đó cái đặt một đoạn code agent viết bằng python và sẽ định kỳ truy cập đến máy chủ để lấy tình trạng bật/tắt các thiết bị và control các thiết bị này tại nhà thông qua các rơ-le

Mô hình điều khiển nhà thông minh sử dụng Raspberry PI

Trên máy chủ sẽ có 4 files với các vai trò như sau:

- main.html:  giao diện web UI để bạn có thể truy cập và bật tắt bằng các nút bấm
- button.php: là file tiếp nhận lệnh thay đổi trạng thái nút bấm và ghi vào một file trạng thái (buttonStatus.txt)
- buttonStatus.txt là một file text đơn thuần chỉ lưu giữ tình trạng các nút bấm
- buttonStatus.php là một file backend có nhiệm vụ đọc các trạng thái nút bấm từ file buttonStatus.txt và gửi về cho client mỗi khi có yêu cầu

Trên client (Raspberry) sẽ có 1 file rasbpi.py chưa đoạn mã truy cập server định kỳ để lấy dữ liệu về xử lý.

Tất cả các file nói trên có thể download tại đây và có thể tùy biến với rất ít đòi hỏi kiến thức về code.

 

Chuẩn bị về kết nối

Để toàn bộ mô hình trên hoạt động, bạn cần phải có một tên miền và một hosting hoặc một webserver để thiết lập máy chủ. Nếu bạn chưa có tên miền và hosting hãy liên hệ với www.thuonghieuweb.com để được hỗ trợ tạo các tên miền/hosting dùng thử miễn phí. Sau khi có hosting, bạn copy 4 file nói trên lên server và tất nhiên phải tùy biến theo mô hình cụ thể mà bạn muốn điều khiển bao nhiêu công tắc trong nhà. Cuối cùng là copy file rasbpi.py lên con Raspberry của bạn.

 

Chuẩn bị phần cứng

Raspberry có 40 chân GPIO trong đó có các chân GND, cấp nguồn 5v, cấp nguồn 3v3 và các chân GPIO để gửi nhận các tín hiệu điều khiển. Trong file rasbpi.py đã cấu hình tín hiệu đóng cắt rơ-le được gửi qua chân số 5 các bạn có thể tùy biến chân GPIO này theo ý mình. Cáp nối từ Raspberry sang rơ-le dùng chân số 5(GPIO-3) và 6 (GND). Lưu ý là khi đoản mạch chân số 5 và 6 thì Raspberry sẽ chuyển sang chế độ safe mode, vì vậy các bạn nên tùy biến sử dụng các cổng GPIO khác để tránh trường hợp raspberry bị chuyển sang chế độ safe mode không mong muốn.

 

Sơ đồ chân GPIO của Raspberry

 


Về rơ-le đóng ngắt có thể mua loại rơ-le module tích hợp sẵn transitor, và các diot để biến đổi tín hiệu. đấu nối rơ le như hình vẽ sau. Các module rơ le này được cấp nguồn 5V từ Raspberry. và có thể mua tại VDATA. Dưới đây là bộ relay 2 module, các bạn có thể chọn loại 1 module, 2 module, 4 module hoặc nhiều hơn tùy theo nhu cầu điều khiển.

 

2-relay module

 

 

Cài đặt phần mềm

Nếu các bạn có một Raspberry Pi mới thì các bạn phải tải hệ điều hành Raspbian lên một SD card để Rasp hoạt động. Hệ điều hành này sử dụng dòng lệnh còn nếu các bạn muốn có giao diện GUI thì cần gõ lệnh startx để vào giao diện đồ họa. Bạn có thể download phiên bản mới nhất từ trang web chính thức của Raspberry tại đây. Sau đó theo hướng dẫn ở trang này để cài đặt Raspbian lên SD card để sử dụng với Raspberry. Sau khi cài đặt xong Raspian, lần khởi động đầu tiên hệ thống sẽ yêu cầu bạn vào mật khẩu cho user default của hệ thống là "pi", bạn nhớ lưu giữ mật khẩu này để sử dụng về sau.

Trong hệ điều hành Raspbian, dịch vụ SSH có sẵn để có thể remote vào từ máy tính qua mạng LAN tuy nhiên dịch vụ này thường bị disable. Để dịch vụ này được khởi động mỗi khi bật Rasp bạn cần phải chạy một tiện ích với câu lệnh "sudo rasbpi-config" sau đó chọn option số 5, và đặt chế độ tự khởi động SSH cho Rasp

 

Về phần kết nối mạng, một số Raspberry tích hợp wifi trên bo mạch chủ, một số khác thì chỉ có cổng Ethernet. Nếu các bạn muốn kết nối mạng bằng wifi thì có thể cắm một bộ Edimax Wifi Dongle EW 7811UN vào cổng USB của Rasp, sau đó sử dụng ứng dụng wifi config application trên màn hình desktop của Rasp để tìm kiếm và kết nối wifi.

Sau khi bạn copy file raspbi.py lên Rasp, bạn cần edit nó để thay đổi link kết nối đến máy chủ  sử dụng lệnh  "nano raspbi.py"  và tìm kiếm dòng sau, thay thế đoạn urlopen bằng địa chỉ máy chủ và đường dẫn đến file buttonStatus.php của bạn.

response=urllib2.urlopen("http://giaiphapsmarthome.com.vn/demo/buttonStatus.php")

Tiếp theo các bạn gõ lệnh "sudo python raspbi.py" để khởi động phần mềm này. Khi phần mềm này được khởi động, nó sẽ chạy liên tục và định kỳ gửi yêu cầu đến server để lấy thông tin tình trạng các nút bấm về và điều chỉnh đóng ngắt các rơ-le trong ngôi nhà thông minh của các bạn.

Công việc còn lại chỉ là kết nối lên internet, kết nối đến trang main.html và bật tắt các nút bấm để theo dõi kết quả.

Chúc các bạn thành công

Ý kiến của bạn

Thư điện tử của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *