Съдържание:

Сензор за присъствие: 12 стъпки
Сензор за присъствие: 12 стъпки

Видео: Сензор за присъствие: 12 стъпки

Видео: Сензор за присъствие: 12 стъпки
Видео: Aqara FP2 RTCZCQ12LM - мультизонный микроволновый датчик присутствия с сенсором освещенности 2024, Ноември
Anonim
Сензор за присъствие
Сензор за присъствие

Носимите обикновено са устройства, поддържащи BLE. Обичайно е те периодично да рекламират някои данни по своя MAC адрес. Ние използваме ESP, за да сканираме тези данни и да задействаме събитие чрез интернет, когато намери конкретен MAC адрес. Това конкретно изпълнение е за един потребител на интелигентен щепсел, свързан към лампа. Но също така може да се използва с набор от регистрирани устройства с всякакъв вид устройства с IOT.

Консумативи

  1. ESP32
  2. (по избор) TECKIN WiFi щепсел за стена S10
  3. BLE активирано устройство от всякакъв вид

Стъпка 1: Определете вашия сценарий

Определете вашия сценарий
Определете вашия сценарий

За спусъка бихте могли да използвате повечето съвременни носими материали. Това може да бъде Apple Watch, mi fit група, телефон или дори ваш собствен DIY носим на базата на ESP32.

Вероятно една от най -важните стъпки. Трябва да мислите напред в 3 неща:

1. Кое носимо устройство или устройство ще бъде спусъкът на сензора за близост.

2. Какво ще задейства сензора (това става чрез IFTTT).

3. Когато сензорът ще се задейства

За този пример ще използвам моя Apple Watch, за да задействам интелигентен щепсел за включване на лампа, когато седна на бюрото си.

В този урок ще разгледаме интелигентен щепсел от TECKIN. Можете да го намерите в Amazon на добра цена. Също така е съвместим с Alexa и google Home. Страхотна цена!

Стъпка 2: (Въведение) Задайте тригер - множество потребители

Ако искате да конфигурирате така, че да работи всеки човек с устройство, поддържащо BLE, достатъчно близо до вашия сензор, пропуснете следващата стъпка. Това е доста полезно, настройката, която аз лично използвам. Имайте предвид, че този сензор може лесно да бъде хакнат или експлоатиран за задействане, така че не бих се доверил много на пинта за стойка за сигурност; само за практическа (т.е. не искам тя да се задейства от моя компютър, тъй като винаги ще бъде до сензора).

Стъпка 3: (Въведение) Задайте тригер - ограничени потребители

Тази стъпка варира значително в зависимост от настройката ви. За да ограничите кои устройства могат да задействат сензора, трябва да ограничите много маршрути:

- BLE MAC адрес (еквивалентен на IP адреса в wifi мрежа. Причината, поради която не гарантира сигурност, тъй като не е истинският MAC адрес на модула. На iOS устройства се променя всеки път, когато рестартирате bluetooth, не е толкова забавно)

- Код на производителя (по -добър вариант, но няма начин да се ограничат конкретни устройства от същия производител/модел)

- Име, UIDD на услугата (рядък, но най -добрият вариант, предимно носене на DIY или може би приложение за Android)

Някои бележки:

1. Ако е устройство с iOS:

- Имате някои важни плюсове и минуси. Pro, те предават нивото на мощност, при което са рекламни данни. Това е полезно на етапа на калибриране, ще откриете, че използването на Apple Watch е полезно, тъй като излъчва на 24db, iPhone и повечето устройства предават на 12db.

CON, ще трябва да намерите заобиколни решения. Рекламираният MAC адрес (основният метод за идентификация) се променя всеки път, когато Bluetooth сигналът се рестартира, което означава, че ще трябва да качвате кода всеки път … не е забавно. Можете да използвате данните на производителя, които могат да варират в зависимост от модела. Това означава, че можете да ограничите, така че да усеща „всички iPhone 8“.

2. Ако е устройство с Android:

- Аз лично нямам устройство с Android. Но вероятно има много приложения, които могат да поправят MAC адреса или дори да добавят персонализирано име (ако това е начинът, по който искате да отидете). На устройства с iOS има приложение „nrf connect“, което може да направи това. Но не е постоянен, което означава, ако заключите екрана или превключите приложения.. конфигурацията се изключва за няколко секунди.

3. Друг ESP32. (най -добрият ви залог)

- Прост код като този може да бъде внедрен в устройство като това; интелигентна лента, захранвана от esp32. Кодът всъщност е пример от ESP BLE библиотеката BLE_IBeacon.ino. Не съм го тествал много, тъй като моята интелигентна лента е на доставка, вероятно скоро ще публикувам актуализации.

Стъпка 4: (Настройка) - IFTTT

(Настройка) - IFTTT
(Настройка) - IFTTT

Добре, така че на този етап вероятно трябва да вземете всички решения на работния си процес. Имате вашето задействащо устройство, имате място да поставите ESP с безжична връзка с интернет и имате предвид действие, което IFTTT може да автоматизира.

IFTTT е мощен; независимо дали става въпрос само за изпращане на просто известие до вашето устройство, искате да бъде изпратен туит или да включите крушка с интелигентен щепсел. В този урок ще приложим последния с интелигентни щекери TECKIN, съвместими с IFTTT. Така или иначе изтеглете приложението IFTTT или отидете на уеб IFTTT.com и създайте акаунт.

Това е засега!

Ако просто искате да изпратите известие или нещо друго освен щепсела на Smart Life, можете да пропуснете следващата стъпка.

Стъпка 5: (Настройка) IOT устройство *по избор *

Изтеглете приложението „Smart Life“от PlayStore (android) или AppStore (iOS). Инструкциите са доста ясни, въпреки че процесът е малко сложен. Разбрах, че на етапа на сканиране (когато синият бутон мига) спря в някакъв момент, след което го натиснах ръчно, за да се включи и изключи няколко пъти. Това ми помогна. Както и да е; настройката на този щепсел не е по -различна с нашето приложение, така че ако вече притежавате такъв и сте го свързали с приложението си, трябва да сте готови за работа.

ЗАБЕЛЕЖКА: Трябва да можете да включите и изключите превключвателя от приложението, преди да преминете от тази стъпка. Това ще означава, че сте конфигурирали правилно интелигентния щепсел.

Приложението IFTTT трябва да се синхронизира безпроблемно с приложението „Smart Life“, вероятно предизвиквайки удостоверяване, докато създавате събитие на следващата стъпка.

Стъпка 6: (Настройка) IFTTT Webhook Api *Опитни потребители *

(Настройка) IFTTT Webhook Api *Опитни потребители *
(Настройка) IFTTT Webhook Api *Опитни потребители *

Ако не сте използвали преди приложението IFTTT и не сте доволни от някои технически условия, пропуснете тази стъпка за подробното ръководство (със снимки) на следващата стъпка.

1. Създайте ново събитие.

2. Задайте „this“като api на webhook. Запишете името, което сте задали за събитието.

3. Задайте „това“на желаното от вас поведение. За търсене на интелигентен щепсел интелигентен живот и изберете „включване“.

4. Изберете вашия интелигентен щепсел и натиснете край.

5. На началния екран потърсете картата „webhooks“. След като го натиснете, натиснете "get more" в долната част.

6. Натиснете документация. Това ще ви покаже вашия api ключ заедно с конструктор на URL адреси и тестер.

7. Използвайте de URL builder с името, което сте написали на #2. Копирайте го и запишете.

8. Повторете, ако искате да се задейства поведение, когато сензорът за присъствие вече не е активен. В нашия случай повторете #3, но изберете „изключване“. Също така, на #2 името също трябва да е различно този път.

Ако сте готови, пропуснете следващата стъпка.

Стъпка 7: (Настройка) IFTTT Webhook Api *За начинаещи със снимки *

(Настройка) IFTTT Webhook Api *За начинаещи със снимки *
(Настройка) IFTTT Webhook Api *За начинаещи със снимки *
(Настройка) IFTTT Webhook Api *За начинаещи със снимки *
(Настройка) IFTTT Webhook Api *За начинаещи със снимки *
(Настройка) IFTTT Webhook Api *За начинаещи със снимки *
(Настройка) IFTTT Webhook Api *За начинаещи със снимки *

Подробно ръководство *ръководството за снимки трябва да бъде подобно с android и в мрежата *

IFTTT е прост работен процес, ако „това се случи“, тогава „това се случва“. Трябва да създадете нов, 1. в приложението натиснете „get more“и ще се покаже списък.

2. Точно под лентата за търсене a се казва „направете свои собствени аплети от нулата“, натиснете знака плюс.

3. Натиснете "този" знак плюс

В нашия случай „това“ще бъде api обаждане през интернет. Api обаждане е консултация с URL адрес, нещо като при въвеждане на търсене в google и URL адресът е google.com/ (дълъг низ от знаци). За да създадете api: (след натискане на „това“)

4. Потърсете „webhooks“

5. Изберете единствената опция

6. Назовете вашето събитие (в този пример ще използваме „Sit“). Запишете това име, много важно.

7. Натиснете Създаване на тригер

Добре! ние сме по -близо, сега към "онази" част. За този урок ще зададем „това“, за да включите Smart plug. Но можете да изберете всичко от IFTTT. Добър начин за тестване на настройката е да изберете „известия“, които ще изпращат известие до телефона ви всеки път, когато сензорът се задейства (или API се извика, дори от уеб браузър: полезно за тестване!)

8. Натиснете "този" знак плюс

9. Потърсете „Smart Life“(или „notifications“)

10. Натиснете „включване“(ще трябва да повторите тези стъпки, за да създадете друго събитие, което да изключите, когато напускате)

11. Ако и двете приложения и щепселът са правилно конфигурирани, трябва да видите приставката в падащото меню „кое устройство/група.

12. Изберете Създаване на действие и след това завършете.

Сега трябва да видите, че събитието е свързано. Сега трябва да получим URL адреса на api. За това:

13. Отидете на началния екран на IFTTT

14. Намерете картата Webhooks

15. Изберете „Вземете повече“

16. Докоснете бутона Документация. Трябва да видите уеб страница с вашия ключ.

17. На заместителите „{event}“попълнете името на вашето събитие (запомнете точка 6)

18. Отидете в долната част на страницата и докоснете „Тествайте“

Това, което вероятно трябва да видите, е зелен банер „събитието е задействано“и трябва да видите дали работи или не. В нашия случай щепселът трябва да се включи. Или трябва да видите известие, ако решите да тръгнете по този път. Може да отнеме малко време, но не повече от минута, за да видите дали сте успели. Не забравяйте, че вероятно е чувствителен към регистър.

19. И накрая. Копирайте URL адреса, където сте заменили името на вашето събитие (на 17) и го запазете някъде на сигурно място. Скоро ще имате нужда от това.

20. Повторете 1-12. Този път в 6 ще използваме „Stand“. В 10 вместо това изберете „изключване“.

21. Повторете 13-18, ако искате, но можете да се измъкнете с URL адреса, който сте копирали на 19, но сега сменете мястото, където сте написали „Седнете“и го заменете с „Стойте“. Можете да тествате това в уеб браузър. Трябва да пише „Поздравления! Вие сте задействали събитието на щанда “. Тогава щепселът трябваше да се изключи.

Стъпка 8: (Код) Програмиране на ESP32

(Код) Програмиране на ESP32
(Код) Програмиране на ESP32

Можете да пропуснете тази стъпка, ако се чувствате комфортно да качвате скици от Arduino IDE на вашата ESP32 дъска. Не забравяйте да зададете дял от 2mb за приложението, поне тъй като скицата тежи малко повече от 1.2mb обичайно ограничение.

Има много страхотни уроци, ето някои от които препоръчвам:

circuitdigest.com/microcontroller-projects…

Но все пак, за да не сте толкова загубени, ще разбия няколко важни ключови точки.

- ESP32 не е платка на Arduino, но все още може да бъде програмирана от Arduino IDE. С прост код Arduino. Но все пак ще трябва да конфигурирате IDE за работа с ESP32.

- Ще трябва да инсталирате някои библиотеки чрез „Допълнителен мениджър на табла“при предпочитания. Това е URL адресът, който трябва да поставите:

-(по избор, може да помогне) В Инструменти-> Управление на библиотеки … -> (намерете esp BLE библиотека)

- в Инструменти, сега трябва да имате дълъг списък от ESP устройства, препоръчвам ESP32 dev модул

- (ВАЖНО) Изберете (без приложение Ota 2mb/2mb spifs) в мениджъра на дялове. Тази стъпка е важна, тъй като приложението става доста тежко като продукт от използването както на wifi/http връзки, така и на BLE скенер.

Ако сте направили всичко правилно, трябва да можете да програмирате ESP32. Сега процесът на това е подобен на arduino в някои дъски. Включете го, изберете подходящата платка, USB порта и сте готови. Но в много други случаи ще трябва да продължите

Стъпка 9: (Код) Качете кода в ESP32

(Код) Качете кода в ESP32
(Код) Качете кода в ESP32

Добре, ако сте тук, това означава, че успешно сте качили скица на платката ESP32, за предпочитане скицата blink.ino.

Тук е прикаченият основен код, можете да го намерите и в репо GitHub. Трябва да замените следното:

SSID - Вашето име на wifi

PSK - Вашата парола за wifi

sit - URL адресът със „Sit“от API на IFTTT, който сте написали по -рано

stand - URL адресът с „Stand“От API на IFTTT, който сте написали по -рано

Сега приближете задействащото устройство до дъската и след това качете кода. След това отворете Serial Monitor (бод 115200) след успешно зареждане на кода.

Ако планирате да използвате това с какъвто и да е тип BLE устройство, пропуснете следващата стъпка.

ЗАБЕЛЕЖКА: ако получите съобщения за грешка в паметта, защото настройките по подразбиране оставят само 1 mB памет (от наличните 4 mB) за ESP необработения код. Той оставя част за няколко неща като опция за програмиране по въздуха. Обикновено правя следното:

- в Инструменти вече трябва да имате дълъг списък с ESP устройства, препоръчвам ESP32 dev module-Изберете „no Ota 2mb app/2mb spifs“в мениджъра на дялове.

Това ми дава двойно място в паметта, необходимо за това приложение.

Стъпка 10: (Код) Качете кода в ESP32 *по избор *

(Код) Качете кода в ESP32 *по избор *
(Код) Качете кода в ESP32 *по избор *

Ето сложната част, спомената в стъпката „Задаване на спусъка“. Мониторът ще изведе MAC адреса (трябва да изглежда като ##: ##: ##: ##: ## където#е или цифра, или буква от a до f), кода на производителя и RSSI (отрицателно число). Тук трябва да поиграете малко, за да разберете кое е вашето устройство. Обикновено го поставям до дъската, за да виждам ясно кое е най -малкото число. Премахвам отметката от полето „автоматично превъртане“, за да мога да копирам стойностите.

  • Ако това е Mac адресът, попълнете с него „myDevice“. След това разкоментирайте ред #96 и ред за коментар #95
  • Ако това е името, попълнете с него „myDevice“. След това разкоментирайте ред #97 и ред за коментар #95
  • Ако това е MaufactureData, за сега нямате късмет, все още разработвам тази част.

За да добавите поддръжка за май устройства, трябва да можете да копирате декларацията за съдебни дела или на #96 или #97 и да ги поставите един до друг в този синтаксис:

if ((условие1) || (условие2) || (условие3)) {

Добавете съответно още променливи (myDevice1, myDevice2, myDevice3).

Стъпка 11: Поставете ESP и калибрирайте

Поставете ESP и калибрирайте
Поставете ESP и калибрирайте

Това е най -важната част от настройката. Внимателното преминаване през този процес ще бъде разликата в това, че той работи като магия или просто ще ви причини силни главоболия.

В този момент каченият от вас код работи с параметрите, които лично съм тествал и използвам ежедневно с телефона си на бюрото си; това не означава, че ще работи и при вас. Така че трябва да направите калибрирането сами.

1. Поставете платката ESP32 на нейното последно фиксирано място. Ако по някаква причина преместите позицията на вашия ESP32, вероятно трябва да направите това отново. Това ще ви осигури добро изживяване като цяло.

1. (допълнително) имайте предвид, че ще трябва да можете да се свържете с вашия компютър, докато правите това. Ако не можете, защото сте на работен плот, ще трябва да направите проби и грешки, като имате предвид, че всеки опит трябва да бъде почти идентичен по позициониране, задействащо устройство и други фактори, които могат да се отчитат.

2. Отворете Serial Monitor с кода, който работи.

Кодът по подразбиране ще публикува през серийния монитор RSSI (индикация за силата на получения сигнал) на всяко намерено Bluetooth устройство (или само на устройството (ите), съответстващо на вашите параметри). Поиграйте малко с основното си устройство за действие (задействащо устройство). Трябва да определите какви са праговете, които искате да използвате. Внимателното коригиране на тази конфигурация ще

3. Когато определите праговете, ги заменете тук:

  • near_thrsh
  • far_thrsh

4. Качете отново кода, тествайте и повтаряйте, докато намерите оптимална производителност.

Малко неща, които трябва да имате предвид:

1. Искате около 20db разлика между праговете. Ако near_thrsh е зададено на 50, тогава е желателно far_thrsh да е 70 или повече. Ако разликата е твърде кратка, тогава може да намерите някои разстояния или места, където дъската се задейства и изключва без прекъсване. Увеличаването на тази разлика ще гарантира, че ще избегнете това нежелано поведение. Открих лично, че 20db марж е достатъчно добър.

2. При калибриращите тестове, доколкото е възможно, това ще помогне да се определи най -доброто представяне.

3. Проучете класа в ред 82 на кода; тук е направена цялата логика. Кодът обаче е добре коментиран. Чувствайте се свободни да попитате в GitHub!

Стъпка 12: Поздравления! Ти си готов

Кажете ми в коментарите за всякакви предложения или ако имате проблеми. Не забравяйте да проверите GitHub, ако проблемът ви вече е решен!

Препоръчано: