- Необходими компоненти:
- RF модул:
- Работно обяснение:
- Обяснение на веригата:
- Инсталиране на wiringPi библиотека в Raspberry Pi:
- Обяснение на програмирането:
В тази сесия ще разработим RF дистанционно управление с помощта на Raspberry Pi, което може да се използва за безжично управление на устройствата. Можем да включваме и изключваме устройствата, използвайки това радиочестотно дистанционно управление. По-рано сме разработили много проекти, използващи RF модул като RF контролиран робот, ръчен жестов контролиран робот и т.н., проверете ги, за да разберете работата на RF модула.
Необходими компоненти:
Страна на предавателя:
- RF предавател (ASK хибриден предавател)
- HT12E IC
- 4 Бутони
- 750k резистор
- 9 волта батерия
Страна на приемника:
- Raspberry Pi
- 16x2 LCD
- 10K ПОТ
- Дъска за хляб
- 1K резистор (пет)
- 33K резистор
- HT12D IC
- RF приемник (ASK хибриден приемник)
- Светодиоди (пет)
- 10K резистор (четири)
- Свързващ проводник
- Захранване
RF модул:
Това е ASK хибриден предавател и приемник модул работи на честота 433Mhz. Този модул има кристално стабилизиран осцилатор за поддържане на точен контрол на честотата за най-добър обхват. Там трябва да имаме нужда само от една антена външно за този модул.
Този модул е много икономически ефективен, когато се изисква радиочестотна комуникация на дълги разстояния. Този модул не изпраща данни чрез UART комуникация на компютър или микроконтролер директно, защото има много шум на тази честота и нейната аналогова технология. Можем да използваме този модул с помощта на интегрални схеми за кодиране и декодиране, които извличат данни от шума.
Обхватът на предавателя е около 100 метра при максимално захранващо напрежение, а за 5 волта обхватът на предавателя е около 50-60 метра с използване на обикновен проводник с еднокодова антена с дължина 17 cm.
Характеристики на радиочестотния предавател:
- Честотен диапазон: 433 Mhz
- Изходна мощност: 4-16dBm
- Входно захранване: 3 до 12 волта постоянен ток
Pin описание на RF Tx:
- GND - Наземно снабдяване
- Data In - Този щифт приема серийни данни от енкодера
- Vcc - +5 волта трябва да бъде свързан към този щифт
- Антена - обвита връзка към този щифт за правилно предаване на данни
Характеристики на RF приемника:
- Чувствителност: -105dBm
- АКО честота: 1MHz
- Ниска консумация на енергия
- Ток 3,5 mA
- Захранващо напрежение: 5 волта
ПИН Описание на RF Rx:
- GND - Земя
- Data In - Този щифт дава изходни серийни данни на декодера
- Data In - Този щифт дава изходни серийни данни на декодера
- Vcc - +5 волта трябва да бъде свързан към този щифт
- Vcc - +5 волта трябва да бъде свързан към този щифт
- GND - Земя
- GND - Земя
- Антена - обвита връзка към този щифт за правилно приемане на данни
Работно обяснение:
Работата по този проект е много лесна. В този проект използвахме четири бутона от страната на предавателя (служи като дистанционно управление) за управление на четирите светодиода в края на приемника. Когато натиснем някой от четирите бутона, тогава Encoder IC кодира сигнала и го изпраща към RF предавател, а RF Transmitter го предава в околната среда. Сега RF приемникът приема предадения сигнал и го декодира с помощта на декодер IC HT12D и изпраща своя 4-битов изход към Raspberry Pi. След това Raspberry Pi чете тези битове и изпълнява свързана задача и свети съответния светодиод. Звуков сигнал издава звук за секунда при всяко натискане на някой клавиш. LCD 16x2 също се използва за показване на състоянието "ВКЛ или ИЗКЛ" на всички светодиоди.
В този проект използвахме четири светодиода само за демонстрация, можем да задействаме всяка задача, като натиснем съответния бутон в „RF Remote“. Подобно на това можем да свързваме AC домакински уреди вместо светодиоди, като използваме релето и можем да управляваме тези уреди, използвайки едно и също „RF Remote“ безжично. Така че същата верига може да работи като RF базиран проект за домашна автоматизация, използващ Raspberry Pi. По-рано сме разработили много проекти за домашна автоматизация, контролирани чрез Bluetooth, DTMF, GSM и т.н., можете да проверите всички тук Проекти за домашна автоматизация.
Обяснение на веригата:
Веригата на това дистанционно управление Raspberry Pi RF е проста, която съдържа борд Raspberry Pi, бутон и LCD, RF двойка и IC кодер / декодер. Raspberry Pi контролира LCD дисплея, чете входа и изпраща изхода според входа. Тук сме използвали Raspberry Pi 3, но всеки модел на Raspberry трябва да работи. Веригата е разделена на две части, едната е RF схема на приемника, а другата е веригата на RF предавателя. И двете вериги са показани на диаграмата по-долу.
В частта на приемника LCD pin rs, en, d4, d5, d6, d7 са свързани при окабеляване Pi GPIO Pin 11, 10, 6, 5, 4, 1 в 4-битов режим. RF приемникът приема сигнала от RF трансмитер и HT12D IC го декодира. D8, D9, D10, D11 на дешифратора на HT12D IC са директно свързани към окабеляванеPI GPIO пин 25, 24, 23 и 22. Изходните светодиоди са свързани към окабеляванеPi GPIO пин 26, 27, 28 и 29. Бузър също се използва за предупреждение при бутон, натиснат при окабеляване Pi GPIO 0.
RF веригата на предавателя съдържа интегралната схема на енкодера HT12E и 4 бутона за управление на 4-те светодиода. В Encoder и Decoder IC всички адресни линии са свързани към земята.
Инсталиране на wiringPi библиотека в Raspberry Pi:
Подобно на Python, ние импортираме RPi.GPIO за импортиране като IO заглавен файл, за да използваме GPIO Pins на Raspberry Pi, тук на C език трябва да използваме wiringPi Library, за да използваме GPIO Pins в нашата програма C. Можем да го инсталираме, като използваме команди по-долу една по една, можете да стартирате тази команда от Терминал или от някои SSH клиенти като Putty (ако използвате Windows). Преминете през нашия урок Първи стъпки с Raspberry Pi, за да научите повече за боравенето и конфигурирането на Raspberry Pi.
sudo apt-get инсталирайте git-core sudo apt-get update sudo apt-get upgrade git clone git: //git.drogon.net/wiringPi cd wiringPi git pull origin cd wiringPi./build
Тествайте инсталацията на wiringPi библиотека, използвайте командите по-долу:
gpio -v gpio readall
Обяснение на програмирането:
На първо място включваме заглавни файлове и дефинираме щифтове за LCD, след което инициализираме някои променливи и щифтове за вземане на входни и LED индикации.
#include
След него даваме насока на всички използвани GPIO Pins във void setup () функции.
void setup () {if (wiringPiSetup () == -1) {clear (); print ("Не може да се стартира"); setCursor (0,1); печат ("wiringPi"); } pinMode (led1, OUTPUT); pinMode (led2, OUTPUT); pinMode (led3, OUTPUT); pinMode (led4, OUTPUT);……………….
В кода използвахме функцията digitalRead за четене на изхода на Decoder и digitalWrite за изпращане на изхода към LED или устройство.
…………….. while (1) {setCursor (0,0); печат ("D1 D2 D3 D4"); if (digitalRead (d1) == 0) {flag1 ++; setCursor (0,1); if (flag1% 2 == 1) {print ("ON"); digitalWrite (led1, HIGH); }……………..
Ето още някои функции, които са използвани в този проект.
Функцията void lcdcmd се използва за изпращане на команда на LCD, а функцията void write се използва за изпращане на данни към LCD.
Функцията void clear () се използва за изчистване на LCD, void setCursor се използва за задаване на позицията на курсора и void print за изпращане на низ към LCD.
Функцията void start се използва за инициализиране на LCD в 4-битов режим и void зумер () за бипкане на зумера.
Проверете пълния код за това дистанционно управление Raspberry RF по-долу.