- Các thành phần bắt buộc:
- Mô-đun RF:
- Giải thích làm việc:
- Giải thích mạch:
- Cài đặt Thư viện wiringPi trong Raspberry Pi:
- Giải thích lập trình:
Trong phần này, chúng tôi sẽ phát triển Điều khiển từ xa RF bằng Raspberry Pi, có thể được sử dụng để điều khiển Thiết bị không dây. Chúng tôi có thể Bật và Tắt thiết bị bằng điều khiển từ xa RF này. Trước đây chúng tôi đã phát triển nhiều dự án sử dụng Mô-đun RF như Robot điều khiển bằng RF, Robot điều khiển bằng cử chỉ bằng tay, v.v., hãy kiểm tra chúng để hiểu hoạt động của Mô-đun RF.
Các thành phần bắt buộc:
Bên máy phát:
- Máy phát RF (Máy phát lai ASK)
- HT12E IC
- 4 nút ấn
- 750k điện trở
- Pin 9 vôn
Bên nhận:
- Raspberry Pi
- LCD 16x2
- LẨU 10K
- Bảng bánh mì
- Điện trở 1K (Năm)
- Điện trở 33K
- IC HT12D
- Bộ thu RF (Bộ thu lai ASK)
- Đèn LED (Năm)
- Điện trở 10K (Bốn)
- Kết nối dây
- Nguồn cấp
Mô-đun RF:
Đây là một ASK Hybrid Transmitter và mô-đun thu hoạt động ở tần số 433Mhz. Mô-đun này có một bộ dao động ổn định tinh thể để duy trì kiểm soát tần số chính xác cho phạm vi tốt nhất. Ở đó, chúng tôi chỉ cần một ăng-ten bên ngoài cho mô-đun này.
Mô-đun này rất tiết kiệm chi phí khi yêu cầu giao tiếp RF tầm xa. Mô-đun này không gửi dữ liệu trực tiếp bằng giao tiếp UART của PC hoặc vi điều khiển vì có rất nhiều nhiễu ở tần số này và công nghệ Analog của nó. Chúng ta có thể sử dụng mô-đun này với sự trợ giúp của các IC mã hóa và giải mã để trích xuất dữ liệu từ nhiễu.
Phạm vi của máy phát là khoảng 100 mét ở điện áp cung cấp tối đa và đối với 5 volt, phạm vi của máy phát là khoảng 50-60 mét với việc sử dụng một dây đơn giản của anten mã dài 17cm.
Các tính năng của máy phát RF:
- Dải tần số: 433 Mhz
- Công suất đầu ra: 4-16dBm
- Nguồn cung cấp đầu vào: 3 đến 12 volt dc
Mô tả chân của RF Tx:
- GND - Nguồn cung cấp mặt đất
- Dữ liệu vào - Chân này chấp nhận dữ liệu nối tiếp từ bộ mã hóa
- Vcc - +5 Volt nên được kết nối với chân này
- Ăng-ten - Một kết nối được bọc với chân này để truyền dữ liệu thích hợp
Các tính năng của máy thu RF:
- Độ nhạy: -105dBm
- Tần số IF: 1MHz
- Sự tiêu thụ ít điện năng
- Hiện tại 3,5 mA
- Điện áp cung cấp: 5 volt
Mô tả chân của RF Rx:
- GND - Mặt đất
- Data In - Chân này cung cấp dữ liệu nối tiếp đầu ra cho Bộ giải mã
- Data In - Chân này cung cấp dữ liệu nối tiếp đầu ra cho Bộ giải mã
- Vcc - +5 Volt nên được kết nối với chân này
- Vcc - +5 Volt nên được kết nối với chân này
- GND - Mặt đất
- GND - Mặt đất
- Ăng-ten - Một kết nối được bọc với chân này để tiếp nhận dữ liệu thích hợp
Giải thích làm việc:
Làm việc của dự án này là rất dễ dàng. Trong dự án này, chúng tôi đã sử dụng bốn nút ở phía máy phát (đóng vai trò là điều khiển từ xa) để điều khiển bốn đèn LED ở đầu Máy thu. Khi chúng ta nhấn bất kỳ nút nào trong bốn nút sau đó IC mã hóa sẽ mã hóa tín hiệu và gửi nó đến bộ phát RF và Bộ phát RF truyền nó trong môi trường. Bây giờ Bộ thu RF nhận tín hiệu đã truyền và giải mã bằng IC giải mã HT12D và gửi đầu ra 4-bit của nó đến Raspberry Pi. Sau đó, Raspberry Pi đọc các bit này và thực hiện tác vụ liên quan và phát sáng đèn LED tương ứng. Một tiếng bíp bíp trong một giây bất cứ khi nào nhấn phím bất kỳ. Màn hình LCD 16x2 cũng được sử dụng để hiển thị trạng thái 'BẬT hoặc TẮT' của tất cả các đèn LED.
Trong Dự án này, chúng tôi đã sử dụng bốn đèn LED chỉ cho mục đích trình diễn, chúng tôi có thể kích hoạt bất kỳ tác vụ nào bằng cách nhấn nút tương ứng tại 'Điều khiển từ xa RF'. Giống như chúng tôi cũng có thể kết nối Thiết bị gia dụng AC thay cho đèn LED, sử dụng Rơle và có thể điều khiển các thiết bị đó bằng cùng một 'Điều khiển từ xa RF' không dây. Vì vậy, cùng một mạch này có thể hoạt động như một Dự án tự động hóa gia đình dựa trên RF sử dụng Raspberry Pi. Trước đây chúng tôi đã phát triển nhiều Dự án tự động hóa gia đình được điều khiển bằng Bluetooth, DTMF, GSM, v.v., bạn có thể kiểm tra tất cả tại đây Dự án tự động hóa gia đình.
Giải thích mạch:
Mạch của Điều khiển từ xa Raspberry Pi RF này rất đơn giản, bao gồm Bảng Raspberry Pi, nút nhấn và LCD, RF Pair và IC mã hóa / giải mã. Raspberry Pi điều khiển màn hình LCD, đọc đầu vào và gửi đầu ra theo đầu vào. Chúng tôi đã sử dụng Raspberry Pi 3 ở đây, nhưng bất kỳ mô hình Raspberry nào cũng nên hoạt động. Mạch được chia làm hai phần, một phần là mạch RF Receiver và một phần là mạch phát RF. Cả hai mạch được hiển thị trong sơ đồ dưới đây.
Trong phần Bộ thu, các chân LCD rs, en, d4, d5, d6, d7 được kết nối tại dây Pi GPIO Chân 11, 10, 6, 5, 4, 1 ở chế độ 4 bit. Máy thu RF nhận tín hiệu từ Máy phát RF và IC HT12D giải mã tín hiệu đó. D8, D9, D10, D11 của IC giải mã HT12D được kết nối trực tiếp tại dây PI GPIO chân 25, 24, 23 và 22. Các đèn LED đầu ra được kết nối tại dây Pi GPIO chân 26, 27, 28 và 29. Một còi cũng được sử dụng để cảnh báo bật phím được nhấn ở wiringPi GPIO 0.
Mạch phát RF chứa IC Mã hóa HT12E và 4 nút ấn để điều khiển 4 đèn LED. Trong IC mã hóa và giải mã tất cả các đường địa chỉ được nối với đất.
Cài đặt Thư viện wiringPi trong Raspberry Pi:
Giống như trong Python, chúng ta nhập import RPi.GPIO dưới dạng tệp tiêu đề IO để sử dụng các Ghim GPIO của Raspberry Pi, ở đây bằng ngôn ngữ C, chúng ta cần sử dụng Thư viện wiringPi để sử dụng các Ghim GPIO trong Chương trình C của chúng tôi. Chúng ta có thể cài đặt nó bằng cách sử dụng từng lệnh dưới đây, bạn có thể chạy lệnh này từ Terminal hoặc từ một số máy khách SSH như Putty (nếu bạn đang sử dụng Windows). Xem qua hướng dẫn Bắt đầu với Raspberry Pi của chúng tôi để tìm hiểu thêm về cách xử lý và cấu hình Raspberry Pi.
sudo apt-get install git-core sudo apt-get update sudo apt-get nâng cấp git clone git: //git.drogon.net/wiringPi cd wiringPi git pull origin cd wiringPi./build
Kiểm tra cài đặt thư viện wiringPi, sử dụng các lệnh dưới đây:
gpio -v gpio readall
Giải thích lập trình:
Trước hết, chúng tôi bao gồm các tệp tiêu đề và xác định các chân cho LCD, sau đó khởi tạo một số biến và chân để nhận đầu vào và các chỉ báo LED.
#include
Sau đó, chúng tôi đưa ra hướng cho tất cả các Ghim GPIO đã sử dụng trong các hàm void setup () .
void setup () {if (wiringPiSetup () == -1) {clear (); print ("Không thể bắt đầu"); setCursor (0,1); print ("wiringPi"); } pinMode (led1, OUTPUT); pinMode (led2, OUTPUT); pinMode (led3, OUTPUT); pinMode (led4, OUTPUT);……………….
Trong mã, chúng tôi đã sử dụng chức năng digitalRead để đọc đầu ra của Bộ giải mã và digitalWrite để gửi đầu ra tới LED hoặc thiết bị.
…………….. while (1) {setCursor (0,0); print ("D1 D2 D3 D4"); if (digitalRead (d1) == 0) {flag1 ++; setCursor (0,1); if (flag1% 2 == 1) {print ("ON"); digitalWrite (led1, HIGH); }……………..
Dưới đây là một số chức năng khác đã được sử dụng trong dự án này.
Hàm void lcdcmd được sử dụng để gửi lệnh đến màn hình LCD và hàm void ghi được sử dụng để gửi dữ liệu đến màn hình LCD.
Hàm void clear () được sử dụng để xóa màn hình LCD, void setCursor được sử dụng để đặt vị trí con trỏ và void in để gửi chuỗi tới LCD.
Hàm void begin được sử dụng để khởi tạo LCD ở Chế độ 4-bit và void buzzer () để phát ra tiếng bíp của bộ rung.
Kiểm tra mã đầy đủ cho Điều khiển từ xa Raspberry RF này bên dưới.