- РФ модул нРФ24Л01
- Кружни дијаграм
- Програмирање Распберри Пи за слање поруке помоћу нРФ24л01
- Програмирање Ардуино УНО за примање поруке помоћу нРФ24л01
Дизајнери користе многе бежичне комуникационе системе као што су Блуетоотх Лов Енерги (БЛЕ 4.0), Зигбее, Ви-Фи модули ЕСП8266, РФ модули 433 МХз, Лора, нРФ итд. А избор медија зависи од врсте апликације у којој се користи. све, један популарни бежични медиј за локалну мрежну комуникацију је нРФ24Л01. Ови модули раде на 2,4 ГХз (ИСМ опсег) брзином пријеноса од 250Кбпс до 2Мбпс, што је легално у многим земљама и може се користити у индустријским и медицинским апликацијама. Такође се тврди да са одговарајућим антенама ови модули могу да емитују и примају сигнале на растојању од 100 метара између њих. Раније смо користили нРФ24Л01 са Ардуином за контролу серво мотора и стварање собе за ћаскање.
Овде ћемо користити нРФ24Л01 - 2.4ГХз РФ примопредајни модул са Ардуино УНО и Распберри Пи за успостављање бежичне комуникације између њих. Распберри пи ће деловати као предајник, а Ардуино Уно ће преслушати Распберри Пи и исписати поруку коју је Распберри Пи послао помоћу нРФ24Л01 на ЛЦД екрану од 16к2. нРФ24Л01 такође има уграђене БЛЕ могућности и такође може бежично да комуницира помоћу БЛЕ.
Водич је подељен у два одељка. Први одељак ће укључивати повезивање нРФ24Л01 са Ардуином да би радио као пријемник, а други одељак укључиће повезивање нРФ24Л01 са Распберри Пи да би радио као предајник. Комплетни код за оба одељка са радним видео записом биће приложен на крају овог водича.
РФ модул нРФ24Л01
У нРФ24Л01 модули су трансцеивер модули, што значи да сваки модул може и шаљу и примају податке, али с обзиром да су полу-дуплек они ни да шаљете или примате податке у исто време. Модул има генерички нРФ24Л01 ИЦ из нордијских полупроводника који је одговоран за пренос и пријем података. ИЦ комуницира помоћу СПИ протокола и стога се лако може повезати са било којим микроконтролером. Са Ардуином постаје много лакше јер су библиотеке лако доступне. У пиноутс стандардног нРФ24Л01 модула је приказан испод
Модул има радни напон од 1,9 В до 3,6 В (обично 3,3 В) и троши врло мало струје од само 12 мА током нормалног рада, што га чини ефикасним у батерији, па стога може радити и на ћелијским новчићима. Иако је радни напон 3,3 В, већина пинова је толерантна на 5 В и стога се може директно повезати са 5 В микроконтролером попут Ардуина. Још једна предност коришћења ових модула је та што сваки модул има 6 цевовода. Значи, сваки модул може комуницирати са 6 других модула за пренос или пријем података. Ово чини модул погодним за стварање звездастих или мрежастих мрежа у ИоТ апликацијама. Такође имају широк опсег адреса од 125 јединствених ИД-ова, тако да у затвореном простору можемо користити 125 ових модула без међусобног ометања.
Кружни дијаграм
нРФ24Л01 са Ардуином:
Шема кола за повезивање нРФ24Л01 са Ардуином је једноставна и нема много компоненти. НРФ24Л01 ће бити повезани СПИ интерфејса и 16к2 ЛЦД се повезати са И2Ц протокола који користи само две жице.
нРФ24Л01 са Распберри Пи:
Шема кола за повезивање нРФ24Л01 са Распберри Пи је такође врло једноставна и користи се само СПИ интерфејс за повезивање Распберри Пи и нРФ24л01.
Програмирање Распберри Пи за слање поруке помоћу нРФ24л01
Програмирање Распберри Пи вршиће се помоћу Питхон3. Такође можете користити Ц / Ц ++ као Ардуино. Али већ постоји библиотека доступна за нРФ24л01 у питхону, која се може преузети са гитхуб странице. Имајте на уму да би програм питхон и библиотека требали бити у истој фасцикли или програм питхон неће моћи да пронађе библиотеку. Након преузимања библиотеке само извуците и направите фасциклу у којој ће се налазити сви програми и датотеке библиотеке. Када се инсталација библиотеке заврши, само започните писање програма. Програм започиње укључивањем библиотека које ће се користити у коду као што је импорт ГПИО библиотека за приступ Распберри Пи ГПИО-има и времену увоза за приступ функцијама везаним за време. Ако сте нови у Распберри Пи, вратите се на почетак рада са Распберри пи.
импорт РПи.ГПИО ас ГПИО импорт импорт импорт спидев фром либ_нрф24 импорт НРФ24
Подесите режим ГПИО у „ Броадцом СОЦ канал“. То значи да се на пинове позивате бројем „Броадцом СОЦ цханнел“, то су бројеви иза „ГПИО“ (нпр. ГПИО01, ГПИО02…). То нису бројеви плоче.
ГПИО.сетмоде (ГПИО.БЦМ)
Даље ћемо поставити адресу цеви. Ова адреса је важна за комуникацију са Ардуино пријемником. Адреса ће бити у хексадецималном коду.
цеви =,]
Започните радио користећи ГПИО08 као ЦЕ и ГПИО25 као ЦСН пинове.
радио.бегин (0, 25)
Подесите величину корисног терета на 32 бита, адресу канала на 76, брзину преноса података од 1 мбпс и ниво снаге као минимум.
радио.сетПаилоадСизе (32) радио.сетЦханнел (0к76) радио.сетДатаРате (НРФ24.БР_1МБПС) радио.сетПАЛевел (НРФ24.ПА_МИН)
Отворите цеви да бисте започели писање података и одштампали основне детаље нРФ24л01.
радио.опенВритингПипе (пипе) радио.принтДетаилс ()
Припремите поруку у облику низа. Ова порука ће бити послата Ардуино УНО.
сендМессаге = листа ("Здраво..Ардуино УНО") док је лен (сендМессаге) <32: сендМессаге.аппенд (0)
Почните писати на радио и наставите са писањем комплетног низа док радио не буде доступан. Уз то забележите време и одштампајте изјаву о отклањању грешака испоруке поруке.
вхиле Труе: старт = тиме.тиме () радио.врите (сендМессаге) принт ("Послали поруку: {}". формат (сендМессаге)) сенд радио.стартЛистенинг ()
Ако је низ завршен и цев затворена, испишите поруку за отклањање грешака која је истекла.
док не радио.аваилабле (0): тиме.слееп (1/100) ако тиме.тиме () - почетак> 2: штампа ("Истекло је време.") поруку о грешци # штампање ако радија искључен или не функционишу више сломити
Престаните да слушате радио и затворите комуникацију и поново покрените комуникацију након 3 секунде да бисте послали нову поруку.
радио.стопЛистенинг () # затвори радио тиме.слееп (3) # дај одлагање од 3 секунде
Програм Распберри је једноставно разумјети ако знате основе питхона. Комплетан програм Питхон дат је на крају упутства.
Извршавање програма Питхон у Распберри Пи:
Извршење програма је врло лако након што следите доленаведене кораке:
- Спремите датотеке програма Питхон и библиотеке у исту фасциклу.
- Моје име програмске датотеке за пошиљаоца је нрфсенд.пи, а такође су све датотеке у истој фасцикли
- Идите на командни терминал Распберри Пи. И пронађите програмску датотеку питхон помоћу наредбе „цд“.
- Затим отворите фасциклу и напишите команду „ судо питхон3 иоур_програм.пи “ и притисните Ентер. Моћи ћете да видите основне детаље нРф24 и радио ће почети да шаље поруке након сваке 3 секунде. Отклањање грешака у поруци ће се приказати након што се слање заврши са свим упућеним знаковима.
Сада ћемо видети исти програм као и пријемник у Ардуино УНО.
Програмирање Ардуино УНО за примање поруке помоћу нРФ24л01
Програмирање Ардуино УНО слично је програмирању Распберри Пи. Пратићемо сличне методе, али са различитим програмским језиком и корацима. Кораци ће садржати део за читање нРФ24л01. Библиотеку за нРФ24л01 за Ардуино можете преузети са гитхуб странице. Почните са укључивањем потребних библиотека. Користимо ЛЦД 16к2 користећи И2Ц Схиелд, тако да укључите Вире.х библиотеку, а такође је и нРФ24л01 повезан са СПИ, тако да укључите СПИ библиотеку.
#инцлуде
Укључите РФ24 и ЛЦД библиотеку за приступ РФ24 и ЛЦД функцијама.
#инцлуде
ЛЦД адреса за И2Ц је 27, а ЛЦД је 16к2, па то упишите у функцију.
ЛЦД ЛикуидЦристал_И2Ц (0к27, 16, 2);
РФ24 је повезан са стандардним СПИ пиновима заједно са ЦЕ у пину 9 и ЦСН у пину 10.
РФ24 радио (9, 10);
Укључите радио, подесите ниво снаге и подесите канал на 76. Такође поставите адресу цеви исто као и Распберри Пи и отворите цев за читање.
радио.бегин (); радио.сетПАЛевел (РФ24_ПА_МАКС); радио.сетЦханнел (0к76); цонст уинт64_т пипе = 0кЕ0Е0Ф1Ф1Е0ЛЛ; радио.опенРеадингПипе (1, цев);
Започните И2Ц комуникацију и иницирајте ЛЦД екран.
Вире.бегин (); лцд.бегин (); лцд.хоме (); лцд.принт („Спреман за пријем“);
Почните да слушате радио за долазне поруке и подесите дужину поруке на 32 бајта.
радио.стартЛистенинг (); цхар полученМессаге = {0}
Ако је прикључен радио, почните читати поруку и сачувајте је. Одштампајте поруку на серијски монитор, а такође и на екран док не стигне следећа порука. Зауставите радио да бисте преслушали и покушајте поново након одређеног интервала. Овде је 10 микро секунди.
иф (радио.аваилабле ()) { радио.реад (полученМессаге, сизеоф (полученМессаге)); Сериал.принтлн (полученМессаге); Сериал.принтлн („Искључивање радија.“); радио.стопЛистенинг (); Стринг стрингМессаге (полученМессаге); лцд.цлеар (); кашњење (1000); лцд.принт (стрингМессаге); }
Отпремите комплетан код дат на крају у Ардуино УНО и сачекајте да порука буде примљена.
Овим је завршен комплетан водич о слању поруке помоћу Распберри Пи & нРф24л01 и примању помоћу Ардуино УНО & нРФ24л01. Порука ће се одштампати на ЛЦД-у димензија 16к2. Адресе цеви су веома важне и за Ардуино УНО и за Распберри Пи. Ако се суочавате са било каквим потешкоћама током извођења овог пројекта, молимо вас да коментаришете испод или контактирате форум за детаљнију дискусију.
Такође погледајте доњи демонстрацијски видео.