Уради сам: Стварање СмартЛоцк-а за ваш дом који се отвара само са вашим паметним телефоном

Данас је на тржишту доступно толико брава којима је потребна нека врста лозинке да би се отвориле. Ове браве су врло ефикасне, али врло скупе. Ако треба да направимо браву за мале намене која је аутоматизована и откључава се или закључава без икакве лозинке, али помоћу паметног телефона, можемо је направити помоћу неких компонената које су лако доступне на тржишту.



Ова брава ће имати врло ниске трошкове и савршено ће радити у малим размерама. Ан андроид апликација ће бити потребан за управљање овом бравом. Кренимо сада ка подешавању ЕСП32, инсталирању потребних пакета на њега и увођењу одређених хардверских промена!

Аутоматска блокада врата



Без губљења времена, кренимо са проучавањем важних концепата и радом на овом пројекту.



Како направити СмартЛоцк под оперативним системом Андроид?

Корак 1: Прикупљање компонената

Пре него што започнете било који пројекат, ако постоји страх да ћете заглавити усред пројекта и изгубити време, постоји одличан приступ да то избегнете. Направите потпуну листу свих компонената које ће вам требати у пројекту и купите их пре свега. Следи комплетна листа свих компонената које ћемо користити у овом пројекту. Све ове компоненте су лако доступне на тржишту.



  • ЕСП32
  • Јумпер Вирес
  • Серво мотор
  • Шрафови
  • закључати
  • Бушилица

Корак 2: Израда апликације

Како ћемо направити паметну браву којом ће управљати мобилни телефон, мораћемо да развијемо андроид апликацију која ће садржати дугме. Притиском на то дугме моћи ћемо да отворимо или затворимо паметну браву. Раније смо их развили неколико андроид апликације. Већ смо развили апликацију која се састоји од само једног дугмета у њему. Ово дугме се користи за слање података у базу података. ако се ‘1’ угура у Фиребасе базу података, отвориће се брава прекидача, а ако се у ту базу убаци ‘0’ брава ће се затворити.

Погледајте наш чланак под називом Креирање бежичног прекидача за укључивање / искључивање за ваш рачунар да вам помогну да развијете сопствену андроид апликацију која ће се користити за управљање паметном бравом.

Корак 3: Састављање компонената

Како имамо комплетну листу свих компонената које су нам потребне да бисмо довршили овај пројекат, померимо се корак напред и саставимо све компоненте заједно.



Узмите серво мотор и повежите његов Вцц и масу са Вцц и масом ЕСП плоче. Спојите ПВМ пин вашег серво мотора на пин 34 вашег ЕСП32 плоча . Сада видите да на серво мотору постоји дугме типа зупчаника. Извадите ручицу браве ротирајући је и помоћу неких лепкова учврстите дугме мотора зупчаника у браву.

Сада уз помоћ бушилице избушите неке рупе на вратима где желите да поставите ову паметну браву. Обавезно бушите рупе на такав начин да рупе на брави преклапају рупе на вратима, отварајући место за завртање.

Корак 4: Рад

Како сада знамо главну идеју која стоји иза овог пројекта, схватимо како ће овај пројекат функционисати.

ЕСП32 је срце овог пројекта. На ову плочу је повезан серво мотор и овај микроконтролер има везу са Фиребасе базом података. Када се притисне дугме у апликацији за отварање браве, „1“ се гурне у Фиребасе базу података, а када се притисне дугме за затварање браве, „0“ се гурне у Фиребасе базу података. ЕСП плоча непрекидно чита ову вредност у Фиребасе бази података. Све док постоји 0, ЕСП32 ће усмеравати серво мотор да остане у почетном положају. Чим 1 уђе у ватрену базу, ЕСП плоча ће га прочитати и рећи серво мотору да изврши ротацију која ће отворити браву.

Корак 5: Први кораци са ЕСП32

Ако раније нисте радили на Ардуино ИДЕ, не брините, јер је корак по корак за подешавање Ардуино ИДЕ приказан у наставку.

  1. Преузмите најновију верзију Ардуино ИДЕ са Ардуино.
  2. Повежите своју Ардуино плочу са рачунаром и отворите контролну таблу. Кликните на Хардвер и звук. Отворен Уређаји и штампач и пронађите порт на који је повезана ваша плоча. У мом случају јесте ЦОМ14 али је различито код различитих рачунара.

    Проналажење луке

  3. Кликните на Филе, а затим на Преференцес. Копирајте следећу везу у Додатни УРЛ управника одбора. „ хттпс://дл.еспрессиф.цом/дл/пацкаге_есп32_индек.јсон '

    Поставке

  4. Сада, да бисмо користили ЕСП32 са Ардуино ИДЕ, морамо да увежемо посебне библиотеке које ће нам омогућити да нарежемо код на ЕСП32 и да га користимо. ове две библиотеке су у прилогу у доњем линку. Да бисте укључили библиотеку, идите на Скица> Укључи библиотеку> Додај ЗИП библиотеку . Појавиће се оквир. Пронађите ЗИП мапу на рачунару и кликните ОК да бисте укључили мапе.

    Укључи библиотеку

  5. Сада иди Скица> Укључи библиотеку> Управљање библиотекама.

    Управљање библиотекама

  6. Отвориће се мени. У траку за претрагу откуцајте Ардуино ЈСОН. Појавиће се листа. Инсталирај Ардуино ЈСОН Беноа Бланцхона.

    Ардуино ЈСОН

  7. Сада кликните на Алати. Појавиће се падајући мени. Поставите плочу на ЕСП Дев модул.

    Одбор за постављање

  8. Поново кликните на мени Алат и подесите порт који сте раније видели на контролној табли.

    Подешавање порта

  9. Сада отпремите код који је приложен у доњој вези и кликните на дугме за отпремање да бисте нарезали код на ЕСП32 микроконтролеру.

    Отпремити

Дакле, сада када учитате код, може доћи до грешке. Ово је најчешћа грешка која се може догодити ако користите нову верзију Ардуино ИДЕ-а и Ардуино ЈСОН-а. Следе грешке које ћете можда видети на екрану.

У датотеци укљученој из Ц:  Усерс  Про  Доцументс  Ардуино  либрариес  ИОКСхоп_ФиребасеЕСП32-мастер / ИОКСхоп_ФиребасеЕСП32.х: 8: 0, из Ц:  Усерс  Про  Десктоп  смартХоме  цоде  цоде.ино: 2: Ц :  Усерс  Про  Доцументс  Ардуино  либрариес  ИОКСхоп_ФиребасеЕСП32-мастер / ИОКСхоп_ФиребасеСтреам.х: 14: 11: еррор: СтатицЈсонБуффер је класа из АрдуиноЈсон 5. Молимо погледајте ардуинојсон.орг/упграде да бисте сазнали како да надоградите свој програм на АрдуиноЈсон верзија 6 СтатицЈсонБуффер јсонБуффер; ^ У датотеци укљученој из Ц:  Усерс  Про  Доцументс  Ардуино  либрариес  ИОКСхоп_ФиребасеЕСП32-мастер / ИОКСхоп_ФиребасеЕСП32.х: 8: 0, из Ц:  Усерс  Про  Десктоп  смартХоме  цоде  цоде.ино: 2: Ц:  Усерс  Про  Доцументс  Ардуино  либрариес  ИОКСхоп_ФиребасеЕСП32-мастер / ИОКСхоп_ФиребасеСтреам.х: 65: 11: еррор: СтатицЈсонБуффер је класа из АрдуиноЈсона 5. Погледајте ардуинојсон.орг/упграде да бисте сазнали како да надоградите свој програм на АрдуиноЈсон верзија 6 враћа СтатицЈсонБуффер (). ПарсеОбјецт (_дата); ^ Пронађено је више библиотека за „ВиФи.х“ Коришћено: Ц:  Усерс  Про  АппДата  Лоцал  Ардуино15  пацкаге  есп32  хардваре  есп32  1.0.2  либрариес  ВиФи Не користи се: Ц:  Програмске датотеке ( к86)  Ардуино  либрариес  ВиФи Коришћење библиотеке ВиФи верзије 1.0 у директоријуму: Ц:  Усерс  Про  АппДата  Лоцал  Ардуино15  Пацкагес  есп32  хардваре  есп32  1.0.2  либрариес  ВиФи Коришћење библиотеке ИОКСхоп_ФиребасеЕСП32-мастер у директоријуму: Ц:  Усерс  Про  Доцументс  Ардуино  либрариес  ИОКСхоп_ФиребасеЕСП32-мастер (легаци) Коришћење библиотеке ХТТПЦлиент верзије 1.2 у директоријуму: Ц:  Усерс  Про  АппДата  Лоцал  Ардуино15  пацкаге  есп32  хардваре  есп32  1.0.2  либрариес  ХТТПЦлиент Коришћење библиотеке ВиФиЦлиентСецуре на верзији 1.0 у фасцикли: Ц:  Усерс  Про  АппДата  Лоцал  Ардуино15  Пацкагес  есп32  хардваре  есп32  1.0.2  либрариес  ВиФиЦлиентСецуре Коришћење библиотеке АрдуиноЈсон на верзија 6.12.0 у директоријуму: Ц:  Усерс  Про  Доцументс  Ардуино  либрариес  АрдуиноЈсон статус излаза 1 Грешка при компајлирању за модул ЕСП32 Дев.

Нема разлога за бригу јер ове грешке можемо уклонити следећи неколико једноставних корака. Ове грешке настају јер нова верзија Ардуино ЈСОН-а има другу класу уместо СтатицЈсонБуффер. Ово је класа ЈСОН 5. Тако да ову грешку можемо једноставно уклонити спуштањем верзије Ардуино ЈСОН нашег Ардуино ИДЕ-а. Једноставно идите на Скица> Укључи библиотеку> Управљање библиотекама. Тражити Ардуино ЈСОН Беноа Бланцхона које сте раније инсталирали. Прво га деинсталирајте, а затим подесите његову верзију на 5.13.5. Сада када смо поставили стару верзију Ардуино ЈСОН, инсталирајте је поново и прекомпајлирајте код. Овај пут ће се ваш код успешно саставити.

Да бисте преузели код, кликни овде.

Корак 6: Код

код овог пројекта је врло једноставан, али ипак, неки његови делови су објашњени у наставку.

1. На почетку кода, укључићемо три библиотеке. Прво је омогућавање Ви-Фи-ја на ЕСП плочи, друго је омогућавање ЕСП-у да користи серво мотор и треће повезивање ЕСП плоче са Фиребасе базом података. Након тога, у код ћемо додати домаћин фиребасе-а, потврду идентитета, назив наше локалне интернет везе и лозинку. Након тога направите објекат за употребу серво мотора.

#инцлуде // укључи библиотеку за коришћење ВиФи #инцлуде // укључи библиотеку за серво мотор #инцлуде // укључи библиотеку за повезивање са Фиребасеом #дефине ФИРЕБАСЕ_ХОСТ 'кккккккккк' // замени кккккккккк твојим фиребасе хостом овде #дефине ФИРЕБАСЕ_АУТХ 'ккккккк / заменити ккккккккк ваш фиребасе аутентикацију овде #дефине ВИФИ_ССИД 'xX koda, ккккк' // замени ккккккккк по имену нашег wifi везе #дефине ВИФИ_ПАССВОРД 'ккккккк' // замени ккккккккк ваш wiFi лозинки Серво мисерво; // креирамо објекат за серво мотор инт пос = 0; // стварање променљиве инт стање; // стварање променљиве

2 воид сетуп () је функција која се покреће само једном у програму када је плоча микроконтролера укључена или је притиснуто дугме за омогућавање. Брзина пријеноса је подешена у овој функцији. Брзина пријеноса је уствари брзина комуникације у битовима у секунди кроз коју микроконтролер комуницира са вањским уређајима. Серво мотор је повезан на пин34 ЕСП плоче. код је написан код за повезивање микроконтролера са локалном Интернет везом.

воид сетуп () {Сериал.бегин (115200); // подешавање брзине преноса мисерво.аттацх (34); // повежемо ПВМ пин серво мотора са пин34 ЕСП32 мисерво.врите (60); кашњење (1000); // повезивање на вифи. ВиФи.бегин (ВИФИ_ССИД, ВИФИ_ПАССВОРД); Сериал.принтлн ('повезивање'); вхиле (ВиФи.статус ()! = ВЛ_ЦОННЕЦТЕД) {Сериал.принт ('.'); кашњење (500); } Сериал.принтлн (); Сериал.принт ('повезано:'); Сериал.принтлн (ВиФи.лоцалИП ()); Фиребасе.бегин (ФИРЕБАСЕ_ХОСТ, ФИРЕБАСЕ_АУТХ); }

3. воид лооп () је функција која се изнова и изнова изводи у петљи. У овој функцији ми кажемо микроконтролеру, које операције и како да се изврше. Овде се подаци читају из фиребасе-а и чувају у променљивој намед држава . Ако држава у себи има вредност „0“, положај серво мотора постављен је на 8 степени. Ако је вредност у променљивом стању једнака „1“, положај серво мотора биће подешен на 55 степени.

воид лооп () {стате = Сериал.принтлн (Фиребасе.гетФлоат ('мотор')); // читање података из фиребасе-а // ако је стање '0', једносмерни мотор ће се искључити иф (стате == '0') {мисерво.врите (8); // подешавање положаја кашњења серво мотора (1000); // чекамо онв сецонд Сериал.принтлн ('Врата закључана'); } елсе иф (стање == '1') {мисерво.врите (55); // постављање новог положаја кашњења серво мотора (1000); // сачекајте једну секунду Сериал.принтлн ('Врата откључана'); } // грешка при руковању ако (Фиребасе.фаилед ()) {Сериал.принт ('подешавање / број није успео:'); Сериал.принтлн (Фиребасе.еррор ()); повратак; } кашњење (1000);