Mục lục:
- Bước 1: Những thứ bạn cần
- Bước 2: Chuẩn bị Raspberry Pi cho 433 MHz
- Bước 3: Thiết lập Máy chủ Nhà thông minh
- Bước 4: Thiết lập khách hàng
- Bước 5: Kết luận
Video: Nhà thông minh của Raspberry Pi: 5 bước (có hình ảnh)
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:30
Đã có một số sản phẩm giúp căn hộ của bạn trở nên thông minh hơn, nhưng hầu hết chúng đều là các giải pháp độc quyền. Nhưng tại sao bạn cần kết nối internet để chuyển đổi đèn bằng điện thoại thông minh của mình? Đó là một lý do để tôi xây dựng giải pháp Nhà thông minh của riêng mình.
Tôi đã lập trình một ứng dụng máy chủ chạy trên Raspberry Pi. Đây là một dự án mã nguồn mở dựa trên java cho phép bạn định cấu hình căn hộ của mình và kết nối một số máy khách và 'đơn vị có thể điều khiển được'. Tôi cho thấy một giải pháp xử lý các công tắc cấp nguồn rc, phát nhạc và video trên Raspberry Pi, hiển thị trạng thái trên gương thông minh và có thể được điều khiển bởi một ứng dụng android và hai ứng dụng pebble. Nguồn được lưu trữ trên github
Bước 1: Những thứ bạn cần
Để thiết lập Nhà thông minh, bạn cần những 'nguyên liệu' sau
- Raspberry Pi ít nhất là kiểu 2 B
- Người gửi 433 MHz, tương tự như thế này
- 3 cáp jumper kết nối Raspberry Pi và người gửi
- Một số ổ cắm điều khiển vô tuyến ở 433 MHz
- Điện thoại thông minh Android để chạy ứng dụng khách
Ngoài ra, bạn có thể mở rộng Nhà thông minh với nhiều khách hàng và đơn vị tùy chọn hơn như thế này
- Đồng hồ thông minh Pebble
- Smart Mirror, hãy xem dự án này
- Dải đèn LED được điều khiển 433 MHz, hãy xem https://www.instructables.com/id/RC-controlled-LE… này
Bước 2: Chuẩn bị Raspberry Pi cho 433 MHz
Trong các bước sau, bạn cần truy cập vào dòng lệnh trên Raspberry Pi. Để có được quyền truy cập, bạn có thể đọc https://www.instructables.com/id/Remote-SSH-access… có thể hướng dẫn này
Kết nối người gửi 433 MHz với Raspberry Pi như trong hình trên
- GND (người gửi) 6 GND (raspi)
- VCC (người gửi) 2 + 5V (raspi)
- DATA (người gửi) 11 GPIO 17 (raspi)
Vui lòng kết nối ăng-ten 17cm với chân ANT (người gửi). Điều đó làm tăng tín hiệu đáng kể.
Vì chúng tôi cần một số thư viện từ các kho lưu trữ git khác, chúng tôi phải cài đặt git
sudo apt-get install git-core -y
Để thiết lập Raspberry Pi cho giao tiếp 433 MHz, chúng ta cần thư viện Pi đi dây để xử lý tốt hơn các GPIO.
git clone git: //git.drogon.net/wiringPi
cd wiringPi./build
Sau đó, chúng ta cần một thư viện thực hiện các giao thức cung cấp điện thường rc.
git clone git: //github.com/dabastynator/rcswitch-pi.git
cd rcswitch-pi làm cho cp gửi / usr / bin /
Thực thi 'send' cho phép bạn gửi mã để chuyển đổi hầu hết các nguồn cung cấp năng lượng có sẵn.
Trong thiết lập Nhà thông minh của tôi, tôi cũng có dải LED rc được mô tả bởi hướng dẫn này: https://www.instructables.com/id/RC-controlled-LED… Để đặt màu cho dải LED này, bạn cần một tệp thực thi gửi khác cho phép bạn để gửi bất kỳ giá trị Số nguyên nào (Mã hóa màu đó).
Do đó, hãy biên dịch sendInt.cpp trong repo rcswitch-pi và chuyển nó đến / usr / bin / sendInt.
sudo g ++ sendInt.cpp -o / usr / bin / sendInt /home/pi/rcswitch-pi/RCSwitch.o -I / home / pi / rcswitch-pi -lwiringPi
Bây giờ bạn có thể gửi lệnh rc với hai tệp thực thi / usr / bin / send và / usr / bin / sendInt
Bước 3: Thiết lập Máy chủ Nhà thông minh
Trước hết, bạn cần cài đặt một số gói. Ứng dụng Smart Home dựa trên java và chạy tốt với openjdk-11. Tôi không chắc chắn về các môi trường thời gian chạy java khác. Mplayer là một trình phát nhạc dòng lệnh tối giản. Omxplayer sử dụng đồ họa Raspberry Pi để mã hóa video, vì vậy điều này sẽ được sử dụng cho video. Kiến chương trình là cần thiết để xây dựng ứng dụng java.
sudo apt-get install mplayer omxplayer openjdk-11-jdk ant -y
Thiết lập thư mục cho tệp jar và cho nhật ký.
sudo mkdir / opt / neo
sudo chown pi: pi / opt / neo mkdir / home / pi / Logs
Định cấu hình tập lệnh bắt đầu để khởi động ứng dụng tự động khi khởi động. Do đó, hãy sao chép tập lệnh smart-home đính kèm vào thư mục /etc/init.d/ Tôi cũng đã tạo một tập lệnh trong / usr / bin / truyền lệnh đến tập lệnh đính kèm, vì vậy tôi chỉ cần nhập smart-home vào bảng điều khiển để thực hiện các lệnh.
sudo cp smart-home /etc/init.d/smart-home
sudo chmod + x /etc/init.d/smart-home sudo sh -c "echo '#! / bin / bash'> / usr / bin / smart-home" sudo sh -c "echo '/ etc / init. d / smart-home / $ 1 '>> / usr / bin / smart-home "sudo chmod + x / usr / bin / smart-home sudo update-rc.d smart-home default
Bây giờ đã đến lúc kiểm tra kho lưu trữ và xây dựng ứng dụng. Nếu bạn không muốn tự biên dịch, bạn chỉ cần tải xuống smarthome.jar đính kèm và chuyển nó vào / opt / neo /
git clone [email protected]: dabastynator / SmartHome.git
ant -f SmartHome / de.neo.smarthome.build / build.ant build_remote cp SmartHome / de.neo.smarthome.build / build / jar / * / opt / neo /
Cố gắng khởi động ngôi nhà thông minh và kiểm tra tệp nhật ký. Để có quyền truy cập các GPIO, ứng dụng phải được khởi động bởi sudo.
khởi đầu ngôi nhà thông minh sudo
cat Logs / smarthome.log
Bạn sẽ thấy thông báo lỗi Tập tin cấu hình không tồn tại dẫn chúng ta đến bước tiếp theo. Kho chứa một readme giải thích tệp cấu hình. Bạn có thể thấy điều này được hiển thị độc đáo tại github:
Sao chép xml này vào /home/pi/controlcenter.xml, sau đó đặt vị trí cho máy chủ phương tiện của bạn và thay đổi nội dung khi bạn cần. Sau khi hoàn tất cấu hình và khởi động lại ngôi nhà thông minh (sudo smart-home restart), bạn sẽ thấy nội dung sau trong smarthome.log
24.05-08: 26 THÔNG TIN TỪ XA bởi de.neo.smarthome.cronjob. CronJob@15aeb7ab: Lên lịch công việc cron
24.05-08: 26 THÔNG TIN TỪ XA bởi [trigger.light]: Chờ 79391760 mili giây để thực thi 24.05-08: 26 THÔNG TIN RMI bằng cách Thêm trình xử lý web (5061 / ledstrip) 24.05-08: 26 THÔNG TIN RMI bằng cách Thêm trình xử lý web (5061 / action) 24.05-08: 26 THÔNG TIN RMI bằng cách Thêm trình xử lý web (5061 / máy chủ trung gian) 24.05-08: 26 THÔNG TIN RMI bằng cách Thêm trình xử lý web (5061 / switch) 24.05-08: 26 THÔNG TIN RMI bằng cách Thêm trình xử lý web (5061 / controlcenter) 24.05-08: 26 THÔNG TIN RMI bằng Khởi động máy chủ web với 5 trình xử lý (localhost: 5061) 24.05-08: 26 THÔNG TIN TỪ XA bởi Controlcenter: Thêm 1. đơn vị điều khiển: MyUnit (xyz)…
Máy chủ web hiện đang chạy:-)
Bước 4: Thiết lập khách hàng
Ứng dụng khách Android trên điện thoại thông minh
Kho lưu trữ git cho ứng dụng nhà thông minh cũng chứa mã nguồn cho ứng dụng khách android, vì vậy bạn có thể tự biên dịch nó. Nhưng tôi đã đính kèm APK cho bước này, điều đó làm cho nó dễ dàng hơn. Lần đầu tiên bạn khởi động ứng dụng, nó sẽ yêu cầu bạn cung cấp một máy chủ, giống như trong hình ảnh đầu tiên ở trên. Nhập url của máy chủ và mã thông báo bảo mật.
Đó phải là nó. Giờ đây, bạn có quyền truy cập vào máy chủ và điều khiển căn hộ của mình, phát nhạc và xem video từ xa trên Raspberry Pi. Lưu ý rằng bạn có thể thêm các widget vào màn hình chính, điều này giúp các công tắc và điều khiển âm nhạc dễ tiếp cận hơn.
Ứng dụng khách Smartwatch Pebble
Nguồn cho hai ứng dụng pebble được lưu trữ trên github. Một ứng dụng hiển thị tệp nhạc đang phát: https://github.com/dabastynator/PebbleRemoteMusic… Điều này cũng cho phép bạn tạm dừng / phát và tăng / giảm âm lượng.
Ứng dụng thứ hai kích hoạt ba hành động: https://github.com/dabastynator/PebbleControl Tên của trình kích hoạt là: mobile.come_home mobile.leaving và mobile.go_to_bed. Nếu bạn xác định quy tắc sự kiện cho trình kích hoạt này trong cấu hình-xml của mình, bạn sẽ kích hoạt chúng bằng đồng hồ của bạn.
Tất cả đều là mã nguồn mở, nhưng bạn không cần phải tự biên dịch nó, tôi cũng đính kèm các ứng dụng pebble. Tải xuống PBW bằng điện thoại thông minh của bạn, điện thoại của bạn sẽ cài đặt chúng trên đồng hồ của bạn. Các ứng dụng pebble cần có cấu hình để nói chuyện với máy chủ. Tôi đã đính kèm một ảnh chụp màn hình cài đặt của tôi trông như thế nào.
Ứng dụng khách Smartwatch Garmin
Ngoài ra còn có một ứng dụng khách dành cho Đồng hồ thông minh Garmin. Ứng dụng có sẵn trong cửa hàng ứng dụng garmin connect và có thể được cài đặt tại đây:
apps.garmin.com/en-US/apps/c745527d-f2af-4…
Ứng dụng khách Smart Mirror
Tôi đã tạo một tài liệu hướng dẫn giải thích cách tạo Smart Mirror, hãy xem https://www.instructables.com/id/Smart-Mirror-by-R…. Mã nguồn này cũng được lưu trữ trên github: https://www.instructables.com/id/Smart-Mirror-by-R…. github.com/dabastynator/SmartMirror. Phần mềm của Smart Mirror đọc cấu hình từ tệp smart_config.js không phải là một phần của kho lưu trữ git. Nội dung của tệp cấu hình sẽ giống như danh sách sau:
var mOpenWeatherKey = 'your-open-wheather-key';
var mSecurity = 'your-security-token';
Bạn cũng phải điều chỉnh hai dòng đầu tiên của tệp smart_mirror.js để chỉ định địa chỉ ip máy chủ Nhà thông minh và vị trí để có được thời tiết phù hợp.
Nhiều khách hàng hơn
Ứng dụng máy chủ là một máy chủ web đơn giản. Điều này cho phép bạn kích hoạt các hành động từ bất kỳ khách hàng nào bạn muốn bằng các cuộc gọi web đơn giản. Trong video giới thiệu, tôi hiển thị trình tác vụ ứng dụng Android kết hợp với AutoVoice. Điều này cho phép tôi kích hoạt các sự kiện bằng các lệnh thoại đơn giản. Ví dụ: "ok google, time to sleep" có thể kích hoạt mobile.go_to_bed. Nhưng bạn cũng có thể thực hiện các cuộc gọi web chẳng hạn từ IFTTT. Làm thế nào về một dải đèn LED nhấp nháy màu vàng để thông báo qua email?
Bạn có thể yêu cầu máy chủ cho các cuộc gọi web có thể có như các liên kết sau (thay thế ip, cổng và mã thông báo bằng cấu hình của bạn)
localhost: 5061 / controlcenter / api? token = secu…
localhost: 5061 / action / api? token = security-to…
localhost: 5061 / mediaserver / api? token = securi…
localhost: 5061 / switch / api? token = security-to…
localhost: 5061 / ledstrip / api? token = security-…
Bước 5: Kết luận
Vẫn còn một số tính năng để triển khai: Vì máy chủ chỉ cung cấp một web-api đơn giản, nên thực hiện rất nhiều cuộc thăm dò. Để giảm bỏ phiếu, tôi muốn tích hợp MQTT để có thông báo tốt hơn. Ngoài ra, bộ nguồn wifi nên hoạt động đáng tin cậy hơn bộ nguồn rc vì rc chỉ là giao tiếp một chiều.
Nó tạo ra rất nhiều niềm vui khi phát triển dự án này. Và việc điều khiển căn hộ bằng một số thiết bị khá tuyệt, ngay cả khi kết nối internet bị hỏng.
Đề xuất:
Biến điện thoại thông minh không sử dụng thành màn hình thông minh: 6 bước (có hình ảnh)
Biến điện thoại thông minh không sử dụng thành màn hình thông minh: Hướng dẫn Deze có trong het Engels, voor de Nederlandse versie klik hier Bạn có điện thoại thông minh (cũ) chưa sử dụng? Biến nó thành một màn hình thông minh bằng Google Trang tính và một số bút và giấy, bằng cách làm theo hướng dẫn từng bước dễ dàng này. Khi bạn hoàn thành
Màn hình cây trồng trong nhà thông minh - Biết khi nào cây trồng của bạn cần tưới nước: 8 bước (có hình ảnh)
Máy theo dõi cây trồng trong nhà thông minh - Biết khi nào cây trồng của bạn cần tưới nước: Một vài tháng trước, tôi đã làm một que theo dõi độ ẩm của đất chạy bằng pin và có thể được gắn vào đất trong chậu cây trong nhà của bạn để cung cấp cho bạn một số thông tin hữu ích về đất mức độ ẩm và đèn LED nhấp nháy để cho bạn biết khi nào cần
Máy pha cà phê thông minh - Một phần của Hệ sinh thái Nhà thông minh: 4 bước
Máy pha cà phê thông minh - Một phần của Hệ sinh thái SmartHome: Máy pha cà phê bị tấn công, biến nó thành một phần của Hệ sinh thái nhà thông minh Tôi sở hữu một Máy pha cà phê Delonghi cũ tốt (DCM) (không phải là một chương trình khuyến mãi và muốn nó “thông minh”. Vì vậy, tôi đã hack nó bằng cách cài đặt ESP8266) mô-đun có giao diện với bộ não / bộ vi điều khiển của nó sử dụng
Bảo mật thông minh cho ngôi nhà thông minh của bạn: 14 bước
Bảo mật thông minh Ngôi nhà thông minh của bạn: Tôi đang tham gia cuộc thi an toàn và bảo mật. Nếu bạn thích tài liệu hướng dẫn của tôi, vui lòng bỏ phiếu cho nó! Tôi sẽ chỉ cho bạn cách dễ dàng và rẻ tiền để bảo vệ hoàn toàn ngôi nhà của bạn và môi trường của nó. Định cấu hình y
Cách âm tường nhà để xe của bạn (Sử dụng phương pháp thông minh của tôi): 9 bước (có hình ảnh)
Cách âm tường nhà để xe của bạn (Sử dụng phương pháp thông minh của tôi): Trong bài hướng dẫn này, tôi sẽ trình bày cách cách âm tường bằng phương pháp mà tôi đã phát triển cho phòng thu âm tại nhà của mình. Nó tương tự như phương pháp kênh đàn hồi, nhưng nó có ưu điểm là 1. rẻ hơn nhiều, 2. bền hơn nhiều, 3. cho phép t