Мазмұны:

ESP32 көмегімен Bluetooth (BLE) қалай қолдануға болады: 3 қадам
ESP32 көмегімен Bluetooth (BLE) қалай қолдануға болады: 3 қадам

Бейне: ESP32 көмегімен Bluetooth (BLE) қалай қолдануға болады: 3 қадам

Бейне: ESP32 көмегімен Bluetooth (BLE) қалай қолдануға болады: 3 қадам
Бейне: MAX6675 ESP32 Bluetooth көмегімен термопараны пайдалану 2024, Қараша
Anonim

#####ЕСКЕРТУ#####

Бұл нұсқаулықта көрсетілген әдіс ескі және ескірген. Бұл бейнені соңғы әдісті қараңыз.

###############

ESP32 функцияларының кең тізімімен (Уикипедия) мақтанғанымен, назар аударатын ең үлкен мүмкіндік-BLE қолдауымен кіріктірілген bluetooth v4.2. Бірақ бұл мәлімдеме жаңылыстыруы мүмкін, ал аппараттық құрал бар болса да, Bluetooth -ды қолдануға арналған бағдарламалық қамтамасыз ету жоқ. (Әзірленуде)

BLE не екенін білмейтіндер үшін бұл Bluetooth төмен энергиясын білдіреді. Бұл Bluetooth протоколы, ол «Классикалық» Bluetooth -мен салыстырғанда энергия тұтынуды едәуір төмендетеді.

Бұл нұсқаулықта мен ESP32 тақтасынан телефонға BLE арқылы деректерді жіберу үшін шектеулі (бағдарламалық қамтамасыз ету) ресурстарды қалай пайдалануға болатынын көрсетемін.

Бірнеше бас тарту …

Осы нұсқаулықты әрі қарай жалғастырмас бұрын, бірнеше нюанстарды атап өтуім керек.

Ескерту 1: Bluetooth қолдауы әлі қол жетімді емес деп айтсам, мен arduino әзірлеу ортасында.

Қолдау ресми SDK -де де, IDF -те де жақсы болуы мүмкін, бірақ мен олар үшін ешқандай сауатты нұсқауларды таппадым.

2 -ескерту: Мен қолданатын әдіс - бұл BLE қалай жұмыс істейтіні емес, уақытша шешім. Кітапхана BLE -де қызметтер құруға қолдау көрсетеді, мұнда arduino ортасы жоқ.

Сіз сенімді түрде жасай алатын жалғыз нәрсе - оның атын жарнамалайтын маяк жасау. YouTube -тегі түсініктемеде бұл өте талғампаз: «LOL, қатыгез бұзу. Бірақ сен не істей аласың?»

3 -ескерту: Сіз жібере алатын деректердің жалғыз түрі - бұл жол.

Сіз басқа деректерді жолға және одан кодтауды және декодтауды шеше аласыз, бірақ бұл нұсқаулықтың ауқымынан тыс.

1 -қадам: Мысал құрастыру

Image
Image
Мысал құрастыру
Мысал құрастыру
Мысал құрастыру
Мысал құрастыру
Мысал құрастыру
Мысал құрастыру

Егер сіз түсініктеме үшін осында болсаңыз, онда сіз бұл қадамды өткізіп жібере аласыз, бірақ оны өту сізге біршама анықтық береді.

Алдымен мен мысал жобасын құрамын, содан кейін оның қалай жұмыс істейтінін және Bluetooth байланысын қалай қайталауға болатынын түсіндіруге тырысамын. Біз смартфонға тірі арнаны жіберетін портативті температура сенсорын жасаймыз. Құрылыс бірнеше ли-пода бірнеше күн жұмыс істей алады және BLE артықшылықтарын оңай көрсетеді.

Сіз сусынды оңтайлы температураға жеткенде, сусынды оқшаулау және хабарлама алу үшін модульді жағалау ретінде пайдалана аласыз. Өйткені 40 -тан жоғары шәй ішу керек болса, бұл қиянат болар еді.

Сізге қажет жалғыз жабдық - бұл ESP32 тақтасы мен сандық температура сенсоры. Менің тақтайшам сыртқы батареяны қолдайды, сондықтан мен бұл жобаны портативті ету үшін ескі құрылғыдан алынған 3.7 вольтты ли-поны қолданамын.

Аппараттық құрал

Температура сенсорының қосылымдары қарапайым. Қызыл сым 3.3в -ке, қара жерге (gnd), сары GPIO 2 -ге қосылады, ол менің тақтамда D9 деп белгіленген. Қызыл және сары сымның арасына 4,7км резисторды қосыңыз. Мен резисторды пайдаланбаймын, оның орнына сенсорыммен бірге жеткізілетін 3 істікшелі терминалды қолданамын. Оның кіріктірілген тартқыш резисторы бар.

Li-po шынымен JST коннекторы арқылы қосылуы керек, бірақ мен оны сатып алуға қиналмадым, сондықтан мен коннекторға (әйелден әйелге дейін) бірнеше кабельдерді киіп, батарея терминалдарына басқа жұпты дәнекерледім. Бұл сенімді қосылымды және ауыспалы қуат қосқышын жасайды.

Енді жобаның корпусы ретінде мен үлкен парақтан қиылған Styrofoam дискісін қолданамын. Бұл керемет оқшаулағышты жасайды. Тағы бір кішірек диск үстінде, бірақ сәл бүйірінде. Бұл сымдардың қосымша ұзындығын орауға арналған, сондықтан олар барлық жерде ілінбейді. Желімді кеңінен қолданғаннан және сенсорға арналған кішкене тесіктен кейін сіз бағдарламалық қамтамасыз етуге көшуге дайынсыз.

Бағдарламалық қамтамасыз ету

Егер сізде arduino IDE орнатылмаған болса, оны жүктеу үшін мына сілтемеге өтіңіз. Arduino бағдарламалық жасақтамасы әр түрлі ESP32 тақталарына арналған тақта анықтамасымен бірге келмейді. Оларды алу үшін мына сілтемеге өтіп, файлдарды zip форматында жүктеңіз. Оларды мына жерге ашу керек:

C:/Пайдаланушылар // Құжаттар/Arduino/аппараттық/espserrif/ESP32

Сіздің компьютеріңіздегі пайдаланушы аты қайда. Әр түрлі файлдардың ESP32 қалтасында бар екеніне және басқа қалтада жоқ екеніне көз жеткізіңіз.

Енді, егер сіз arduino бағдарламалық жасақтамасын іске қосып, tool-> тақталарына өтсеңіз, төмен қарай айналдырған кезде әр түрлі ESP32 тақталарын көресіз.

Цифрлық температура сенсорларының көпшілігі микроконтроллерлермен байланысу үшін OneWire протоколын қолданады, сондықтан бізге кітапхана қажет. Эскизге өтіңіз-> кітапхананы қосу-> кітапханаларды басқару және бір сымды іздеңіз және авторлары тым көп кітапхананы орнатыңыз. Сізге бір сымды хаб қажет емес. Оны елемеу.

Енді сіз осы қадамға бекітілген кодты жүктей және аша аласыз (temperatur-example.ino).

Егер сіз басқа сенсорды қолдансаңыз, онда кодты сәйкесінше өзгертуге тура келеді. GetTemp () астындағы кодты ауыстырыңыз. Тек соңғы температураны түрінде қайтарыңыз

Қайту;

Температурасы бар флоат қайда.

Тақтаны қосыңыз, құралдардың астынан дұрыс тақта мен портты таңдаңыз және жүктеуді басыңыз.

Егер код жүктеуден бас тартса, сенсорды ажыратып, GPIO 0 -ді жерге қосыңыз. Жүктелгеннен кейін қосылымдарды қалпына келтіріңіз.

Сіздің ESP қазір әлемдегі кофенің температурасын айқайлай беруі керек, бірақ сізге оны түсінетін адам қажет.

Android қосымшасы

Кешіріңіз, iPhone қолданушылары (… шын мәнінде емес).

Осы жерден apk жүктеп алып, орнатыңыз. Қолданбаны бастаған кезде сізді өте қарапайым интерфейс қарсы алады.

Егер сіз «жарнамаға қолдау көрсетілмейді» деген қате туралы хабар алсаңыз, OK түймесін басыңыз және оны елемеңіз, бірақ егер сізде «BLE қолдау көрсетілмейді» деген хабарлама болса, онда сіздің телефоныңызда Bluetooth 4.0 немесе одан жоғары нұсқасы жоқ және ол жұмыс істей алмайды. қолданба.

Телефоныңызда Bluetooth қосулы екеніне көз жеткізіңіз және «Сканерлеуді бастау» түймесін басыңыз, егер esp ауқымында болса және қосылған болса, сіз температураның кейбір мәнін алуыңыз керек.

Мүмкін болатын қателер:

  • -1000:: Бұл сіздің құрылғыңыз ESP таба алмады дегенді білдіреді. Bluetooth қосулы екеніне көз жеткізіңіз және ESP қайта іске қосыңыз.
  • SNA:: Бұл сіздің телефоныңыз ESP -тен деректерді қабылдайды дегенді білдіреді, бірақ ESP өзі GPIO 2 -де температура сенсорын таба алмады. Байланыстардың сенімді екеніне көз жеткізіңіз, егер сіз дұрыс мәндегі резисторды қолдансаңыз. Тақта схемасымен D2 ретінде белгіленген түйреуіш емес, GPIO 2 -ге қосылғаныңызды екі рет тексеріңіз.

2 -қадам: Түсіндіру

Әдетте BLE қалай жұмыс істейді, бұл құрылғы өз атын маяк сияқты жарнамалайды, бұл атауды кез келген адам көре алады және құрылғыны сәйкестендіру үшін қолданылады. Содан кейін құрылғы оған қосылған кезде басқалар көретін әр түрлі қызметтерді жасай алады. Бұл қызметтерде әртүрлі деректер ағыны болуы мүмкін.

Мысалы. «Метеорологиялық станция» деп аталатын құрылғы оның астында «Температура», «Ылғалдылық» және «Жел» сияқты қызмет көрсете алады. Егер сіздің смартфоныңыз сияқты басқа BLE құрылғысы құрылғыларды іздегенде, ол метеостанцияны көреді және оған қосылған кезде ол әр түрлі қызметтерге сәйкес деректер ағындарын қабылдай алады.

Қазіргі уақытта бізде бар кітапханалар (ESP32 үшін) басқалар таба алатын маяк жасауға мүмкіндік береді, бірақ бұл оның көлемі. Біз қызметтер жасай алмаймыз және оған ешқандай құрылғы қосыла алмайды.

Деректерді қызметтерді жасамай қалай жіберемін, бұл Beacon Stuffing деп аталатын WiFi протоколына ұқсас техниканы қолдану. Бұл мен маяк атауының ішінде жіберілетін деректерді қосқанымды білдіреді. Бұл маған басқа құрылғылардың маякқа қосылуын талап етпестен деректерді жарнамалауға мүмкіндік береді.

ble.begin (beaconMsg); // beaconMsg - жарнамаланған атау

Біз SimpleBLE кітапханасын ESP форматында өз атымен маяк жасау үшін қолданамыз. Бұл жерде 'ESP' әрқашан атаудың басында өзгеріссіз қалады және getValue () функциясымен 100 миллисекунд сайын қайтарылатын соңғы деректермен ауыстырылады.

float getValue () {return sensorValue;}

Android қолданбасы BLE құрылғысының атауларын 'ESP' -тен іздейді, ол табылғаннан кейін ол атауды бөледі және тек соңынан деректерді көрсетеді.

Байланыс - бұл бір ғана әдіс, қолданба ештеңені қайтармайды.

3 -қадам: Қорытынды

Күннің соңында бұл әдіс дұрыс енгізілген BLE кітапханасын алмастыра алмайды, бірақ Arduino -ға BLE қолдауының толық келуіне дейін кейбір жобаларды аяқтау жеткілікті болуы мүмкін. Бұл нұсқаулық сізге көмектесті деп үміттенемін.

Маған осы өнімдерді жібергені үшін DFRobot.com сайтына үлкен рахмет:

  • ESP32 FireBeetle тақтасы
  • FireBeetle кеңейту қалқаны
  • DS18B20 температура сенсоры

Мен жақында осы кітапхананы таптым. ReadME мәліметтерді алу үшін басқа BLE құрылғыларына қосылуға болатынын мәлімдейді (өзіңізді жарнамалау мүмкін емес). Мен оны сынап көрмедім, бірақ егер сізді қызықтырса, тексере аласыз.

Жобаның бейнесін мына жерден тексере аласыз: YouTube

Ұсынылған: