Съдържание:
- Стъпка 1: IoT Какво?
- Стъпка 2: Опитайте - не наистина, опитайте сега
- Стъпка 3: Micropython & ESP32
- Стъпка 4: По -бързият начин
- Стъпка 5: Изтеглете сега
- Стъпка 6: Време за хардуер
- Стъпка 7: Все още сте с нас?
- Стъпка 8: Съвети за хакване
- Стъпка 9: Уеб страници
- Стъпка 10: И това е
Видео: TinyLiDAR във вашия гараж!: 10 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:53
Проект за отваряне на WiFi гаражни врати „направи си сам“
Светът на IoT тепърва започва да експлодира - всяка технологична компания по света се опитва да разбере как ще се впише в този нов свят. Това е толкова голяма възможност! Така че за тази инструкция, в съответствие с тази тема на IoT, ще разгледаме как можете да направите свой собствен демонстратор на IoT, който всъщност е доста полезен;)
TL; DR обобщение
- настройте надежден работен процес за кодиране на WiFi модула ESP32
- светкавица
- сглобете го на дъската си
- изтеглете кода на нашето приложение и го разархивирайте
- добавете вашите идентификационни данни за WiFi и статичен IP
- свържете го към вашата WiFi мрежа
- редактирайте праговете и го монтирайте в гаража си
- свържете го към контактите за отваряне на гаражните врати
- и кликнете далеч!
- НЕ ИЗИСКВА ПОЯВАНЕ (с изключение на щифтовете към прекъсвачите, ако е необходимо)
Необходими части
- tinyLiDAR модул на сензора за разстояние на полета
- Wipy3.0 или подобна ESP32 базирана WiFi платка
- Оптично изолирано реле в твърдо състояние (Omron G3VM-201AY1) за управление на отварачката за гаражни врати
- Резистор 470 ома (5% 1/8 вата или по -голям е добре)
- Моментален превключвател с бутон за щифта BOOT (GPIO0) за надграждане на фърмуера на платката ESP32
- USB към сериен ключ за качване на код и взаимодействие с REPL на ESP32 (използвайте I/O версия 3.3v)
- Платформа + жици
- Захранване: 3.3V до 5V при 500mA или повече. Можете да използвате зарядно устройство за мобилен телефон microUSB за захранването и разклонителната платка microUSB, за да го включите в дъската.
Стъпка 1: IoT Какво?
Несъмнено досега сте чували за термина IoT във всички медии, но какво означава той?
Свободно казано, това означава свързване на всякакви сензори и контролируеми неща към интернет. В наши дни Интернет е синоним на безжична връзка и по този начин имаме всичко електронно, внезапно превръщайки се в безжична връзка през някаква безжична връзка като WiFi/BT/LoRa/SigFox и т.н. тези неща от любимия ни мобилен контролер като нашия мобилен телефон или да ги автоматизираме чрез някакво приложение, работещо на сървър някъде (т.е. облака).
Въпреки че напоследък по -големите компании предлагат повече гласов контрол, AI и облачна свързаност; основите за това всичко да се случи са все същите. Трябва да свържете вашето „нещо“с безжична връзка, преди някоя от тези концепции да е възможна. Така че нека започнем с основите и да се научим как да свързваме tinyLiDAR сензора за разстояние на полета към евтин WiFi модул и след това да показваме за изпращане на данни напред и назад в мрежата. До края на тази инструкция ще имате собствено работещо дистанционно управление на гаражни врати с WiFi, с монитор в реално време, за да проверите дали вратата е отворена или затворена.
Технически погледнато, както е показано на блоковата диаграма по -горе, този проект реализира уеб сървър с микропитон, работещ на WiFi модул ESP32, използвайки комуникационния протокол „websockets“за предаване на данни напред и назад от всеки мобилен уеб браузър. Към това имаме и малкият LiDAR сензор за разстояние на полета, който прави измервания при поискване, за да можете да проверите дали гаражната врата е оставена отворена.
Стъпка 2: Опитайте - не наистина, опитайте сега
Всичко това е сравнително нова област в електрониката, така че ще са необходими много експерименти, за да накарат нещата да работят както трябва. Надяваме се, че ще можете да надградите тази кодова база и да направите някои по -интересни свои IoT проекти.
Целият код, използван в тази статия, работи добре по време на писането. Въпреки това, тъй като процентът на иновации в IoT пространството се увеличава, нещата може да са се променили, докато прочетете това. Във всеки случай, преодоляването на проблемите и адаптирането му за ваша собствена употреба поне ще ви вкарат главата в това вълнуващо ново пространство и ще започнете да мислите като инженер на IoT!
Готов? Нека започнем с първата стъпка от създаването на собствена стабилна среда за разработка.
Стъпка 3: Micropython & ESP32
WiFi модулите ESP32 са създадени от Espressif и те са се подобрили много от първото си поколение ESP8266 модули от само преди няколко години. Тези нови версии имат много повече памет, по -силен процесор и повече функции от оригиналните модули и все още са на ниска цена. Диаграмата по -горе ви дава представа колко са успели да опаковат в този малък чип ESP32. Самата ESP32 IC е двуядрен микроконтролер с 802.11b/g/n WiFi радио, а също и вградено Bluetooth 4.2 радио. Модулите, базирани на ESP32, обикновено ще добавят антена, допълнителна FLASH памет и регулатори на мощността.
Имайте предвид, че когато казваме ESP32 модул в тази инструкция, имаме предвид платките Pycom Wipy3.0, които са базирани на чипа/модула ESP32. Според нашия опит дъските на Pycom изглеждат с по -високо качество на изработка от типичните налични ESP32 модули с ниска цена. При разработването винаги е полезно да се намалят възможно най -много променливи, затова отидохме на платките Pycom вместо на евтини генерици.
За OEM приложения кодирането ESP32 обикновено се извършва на език C, но за щастие има и много опции, от които да избираме, така че няма да се налага да слизате на това ниско ниво, ако не искате. Избрахме да използваме micropython за цялото си кодиране в тази инструкция.
Както може би предполагате, Micropython е подмножество от пълния език за програмиране на Python, който захранва някои по -малко известни търсачки и уебсайтове като Google, YouTube и Instagram;)
Micropython започна като кикстартер проект първоначално за процесора STM32, но стана много популярен за много различни микроконтролери сега. Тук използваме най -новия официален порт на Pycom ESP32 на micropython.
Стъпка 4: По -бързият начин
Кодът на микропитона има прост интерфейсен графичен интерфейс, наречен REPL, който означава "Read -Eval -Print Loop". REPL на ESP32 обикновено работи при 115.2Kbaud, тъй като се осъществява достъп през серийния порт. Снимката по -горе показва този REPL подкана, обозначен с трите си стрелки, чакащи директни команди. Това е лесен начин да изпробвате нашите прости команди и повечето кодери го използват за разработване на своя софтуер, но открихме, че това е болезнено бавен начин. Затова решихме да го направим по различен начин за тази инструкция …
Тъй като модулите ESP32 имат бърза WiFi връзка, просто трябва да получим достъп до модула през WiFi чрез FTP сървър, който вече е вграден в стандартния код на микропитон. Това ще ни позволи да използваме FTP клиенти като FileZilla, за да просто плъзгаме и пускаме кода си върху ESP32.
Така че, за да направим това, първо трябва да поставим модула ESP32 във вашата WiFi мрежа. Модулите Wipy3.0 изпълняват малка точка за достъп по подразбиране при включване, така че можете да се свържете директно към тях от лаптоп на 192.168.4.1. Вижте повече подробности тук, ако харесвате този метод.
Ние работим върху настолни компютри в нашата лаборатория, затова искахме вместо това модулите ESP32 да се свържат с нашата мрежа. За да направим това, просто трябва да дадем на модула статичен IP адрес и нашата парола, за да влезем в нашата WiFi мрежа.
Стъпка 5: Изтеглете сега
Изтеглете кода на приложението сега и разархивирайте файловете във временна папка на вашия компютър. След това започнете да редактирате скриптовите файлове на mywifi.txt и boot.py с вашите собствени идентификационни данни за WiFi мрежа.
Btw - любимият ни текстов редактор все още е SublimeText. Тя може да бъде изтеглена тук.
Трябва също да изтеглите терминалния софтуер TeraTerm и FTP софтуера FileZilla сега, ако вече нямате такива на компютъра си.
Ще трябва да настроите FileZilla, както е показано на снимките по -горе. Също така в мениджъра на сайтове трябва да "добавите нов сайт" за влизане в ESP32, като използвате статичния IP адрес, който сте избрали, както е показано по -горе. Потребителят е "микро", а паролата е "python". Важно е да използвате пасивен FTP и да го ограничите само до единични връзки. Открихме, че ограничаването на скоростта на качване помогна и за предотвратяване на прекъсване на качването. Въпреки че не е показано на снимките, би било полезно да свържете програмата SublimeText за типовете файлове, така че да можете да редактирате кода, като щракнете двукратно върху лявата страна на FTP екрана. За да направите това, просто отидете в менюто Настройки и в Асоциациите за редактиране на файлове/Тип на файла въведете местоположението на вашия SublimeText exe файл за всяка асоциация. Например нашата беше:
js "C: / Sublime Text Build 3065 x64 / sublime_text.exe"
. "C: / Sublime Text Build 3065 x64 / sublime_text.exe" htm "C: / Sublime Text Build 3065 x64 / sublime_text.exe" html "C: / Sublime Text Build 3065 x64 / sublime_text.exe" py "C: / Sublime Текстово изграждане 3065 x64 / sublime_text.exe "css" C: / Sublime Text Build 3065 x64 / sublime_text.exe"
Копирайте извлечените файлове на приложението за тази инструкция в нова папка, наречена "FTP" на вашия компютър, както направихме ние. По -късно ще бъде по -лесно да плъзнете оттук във FileZilla.
Обикновено е добра идея най -новият фърмуер да работи на ESP32. Надграждането на модулите Pycom за използване на най -новия микропитон е много просто и може да се извърши за около 3 минути с техния инструмент за актуализиране на фърмуера.
Просто не забравяйте да настроите COM порта за вашия USB на Serial dongle и да премахнете избора на високоскоростен режим, както е показано на снимката „Комуникация“по-горе. Нашият беше COM порт 2. Обърнете внимание, че за да включите модулите ESP32 в този режим на надстройка, ще трябва да натиснете бутона GPIO0/Boot (на P2 пина), докато натискате и отпускате бутона Reset.
Стъпка 6: Време за хардуер
Сега би било подходящо време да свържете хардуера на макет, както е показано на схематичната диаграма по -горе.
След като всичко това приключи. Стартирайте терминалния софтуер с подходящия COM порт за вашия USB към сериен ключ, настройте го на 115.2Kbaud.
При включване, модулът трябва да показва познатия REPL подкана, който дава три стрелки ">>>".
Сега отидете на редактирания файл mywifi.txt и копирайте цялото съдържание (CTRL+C). След това отидете на екрана на терминала REPL и натиснете CTRL+E, за да влезете в режим на изрязване и поставяне. След това щракнете с десния бутон, за да поставите съдържанието в екрана REPL и след това натиснете клавишите CTRL+D, за да изпълните това, което сте поставили.
Трябва да започне обратно отброяване веднага, за да каже, че се опитва да се свърже с вашата WiFi мрежа. Снимката по -горе показва съобщение за успешна връзка.
След като се свържете, можете да използвате FileZilla, за да се свържете с FTP сървъра в модулите на статичния IP адрес, който вече сте избрали във вашите файлове mywifi.txt и boot.py.
Стъпка 7: Все още сте с нас?
Ако досега всичко е било наред, добре за вас! Усилената работа е свършена:) Сега ще бъде плавно плаване - само куп нарязване и поставяне и вие ще работите, за да можете след това да го монтирате в гаража си.
За да редактирате някой от кода, можете да щракнете двукратно върху лявата страна на FTP прозореца във FileZilla и той ще стартира SublimeText. Запазете промените си и след това го плъзнете в дясната страна, която е прозорецът ESP32.
Засега просто плъзнете файловете от лявата към дясната страна на FileZilla, за да качите всеки файл поотделно в модула ESP32. Това отнема само няколко кратки секунди вместо минути, както прави обикновеният метод REPL. Моля, обърнете внимание, че всички файлове трябва да бъдат в главната директория, наречена "флаш", вътре в платката Pycom. Можете да направите отметка във FileZilla, за да улесните връщането тук за следващия път.
Ако някога получите проблем, при който FileZilla виси и изчаква изтеглянето, ще забележите файл от страната на ESP32, който има 0 байта. Опитът да го напишете може да ви подлуди, тъй като никога не свършва, каквото и да опитате! Това е много странно състояние и се случва много често. Най -доброто решение за това е да изтриете 0 -байтовия файл и да включите модула. След това вземете свежо копие на изходния файл, за да го качите отново в модула ESP32. Имайте предвид, че новото копие е ключът тук. По някакъв начин изходният файл просто няма да се качи правилно, ако виси така дори веднъж.
Открихме, че помага да плъзнете всеки файл поотделно до модула ESP32, започвайки с boot.py. Този първи файл е отговорен за включването на вашия модул в мрежата, така че вече няма да е необходимо да правите изрязването и поставянето в REPL. Можете обаче да вземете папката www и да я плъзнете с един кадър. Това винаги е работило за нас в нашето развитие. Всички тези файлове се съхраняват във вградената енергонезависима флаш памет в модула ESP32, така че те ще бъдат там след изключване на захранването. Само fyi - main.py ще се изпълнява след boot.py при всяко включване на модула.
Стъпка 8: Съвети за хакване
Разгледайте целия код и опитайте да потърсите в Google ключови думи, които не разпознавате. След като всичко е готово, можете да опитате да промените каквото искате, за да видите какво прави.
Ако нещо се обърка, винаги можете да изчистите кода и/или да презаредите отново модула за около 3 минути, както вече сте направили по-рано.
За да преформатирате флаш и да изчистите целия си код в един кадър, можете да въведете следното в REPL:
внос os
os.mkfs ('/flash')
След това направете цикъл на захранване или натиснете бутона за нулиране на дъската за изтриване.
Обърнете внимание, че има и друг начин за заобикаляне на boot.py & main.py, ако нещата ви объркат. Просто временно свържете щифт P12 към изходния щифт 3.3V и натиснете бутона за нулиране, както е показано по -горе. Той ще заобиколи целия ви код и ще отиде направо в REPL веднъж, за да можете да разберете нещата, без да изтривате целия си код от flash.
След като приключите с качването на всички файлове, просто натиснете бутона Reset на модула ESP32, за да го рестартирате.
Ще видите познатото отброяване на екрана на терминала REPL, когато той отново влезе във вашата WiFi мрежа. Разликата е, че този код сега се изпълнява от файла boot.py този път.
Стъпка 9: Уеб страници
Микроуеб сървърът трябва да е вече работещ на ESP32, така че изпробвайте го с вашия настолен браузър или мобилното си устройство.
Просто отидете на вашия статичен IP адрес и трябва да видите екран, подобен на този по -горе.
Две уеб страници се обслужват от нашия микроуеб сървър, който работи на ESP32.
Първата е страницата index.html по подразбиране, която ви дава прост бутон ОТВОРЯВАНЕ/ЗАКРИВАНЕ, за да симулирате кликерния тип отваряне на гаражни врати, което имате. Докато го натискате в уеб браузъра си, ще видите голяма синя икона на зъбно колело, която се показва. Това е потвърждение, че връзката с websocket е осъществена успешно и сте получили потвърждение от сървъра, че вашата команда "press" е получена правилно. Трябва също да видите ярко зелен светодиод да светне на платката Pycom, когато натиснете този бутон. Връзката с websockets предава състоянията на бутона чрез изпращане на прости текстови съобщения с „натиснете“, когато го натиснете, и „натискане“, когато го освободите. За потвърждение, микроуеб сървърът изпраща обратно този текст, но добавя „_OK“към него, за да каже, че го е получил правилно.
След като свържете оптично изолираните клеми на SSD (SSR) към ключалката за гаражни врати (вижте схематичната диаграма), натискането на бутона също ще отвори/затвори физически вратата.
Дайте му няколко секунди и опитайте отново, ако не видите, че синята икона на зъбно колело се показва, тъй като може би се рестартира или нещо подобно. Обърнете внимание, че websocket ще се затвори автоматично за около 20 секунди, ако не го използвате, за да предотвратите блокирането. Също така имайте предвид, че websockets са ориентирани към връзката, така че трябва да спрете websocket, за да промените страниците, в противен случай може да не успеете да се свържете отново, докато не натиснете нулирането на модула ESP32. За нашия примерен код имаме няколко начина на спиране на websocket: докоснете текста на състоянието, въртящи се точки или хипервръзката, за да преминете към следващата страница.
Втората уеб страница е за отчитане на измерванията на разстоянието от малкия датчик за време на полет на разстояниеLiDAR. Просто натиснете бутона веднъж и той ще започне да предава показанията на разстоянието към вашето мобилно устройство за около 20 секунди. Докато натискате надолу, той ще светне червен светодиод на платката Pycom, за да можете да кажете, че получава командата за натискане на бутон от тази страница.
И двете страници показват, че вратата е отворена или затворена чрез отчитане на разстоянието от tinyLiDAR. Променливата doorThreshold трябва да бъде зададена и в двата html файла в секцията скрипт, както е показано тук:
//--------------------------
// **** Коригирайте според нуждите **** var doorThreshold = 100; // разстояние в cm var ws_timeout = 20000; // максималното време в ms, за да се позволи на вратата да се отваря/затваря по подразбиране е 20sec // -------------------------- // --- -----------------------
Ще трябва да редактирате този праг за вашата гаражна настройка, така че да може да открие кога гаражната врата е навита и следователно ОТВОРЕНА или спусната и следователно затворена. След като направите редакциите за прага си и в двата html файла, качете отново тези html файлове и го рестартирайте, за да се уверите, че все още работи добре.
Ако всичко е наред, сега можете да продължите и да монтирате дъската с главата надолу в гаража си, както е показано на снимката по -горе. Свържете щифтове 3 и 4 на SSR към отварачката за гаражни врати. Полярността не е важна, тъй като използваме MOSFET версия на SSR - тя трябва само да къса контактите, за да симулира натискането на бутон върху основния модул на гаражната врата.
Стъпка 10: И това е
Честито! Отварянето на гаражната врата сега е толкова лесно, колкото докосването на телефона ви и можете да проверите дали е оставена отворена или не, като направите измервания в реално време с tinyLiDAR:)
Вече можете да използвате ESP32 с уеб сокети през WiFi за почти всичко, което искате. Прочетете повече за "websockets", ако не сте запознати с тях - те наистина са доста бързи и лесни за използване.
Внедряването на tinyLiDAR с ESP32 също беше супер лесно, въпреки че първоначално сензорът е проектиран да работи на Arduino UNO. Имаме по -сложна бета версия на терминалния графичен интерфейс, който изпълнява повечето от командите tinyLiDAR в микропитон на ESP32 - вижте снимката по -горе. Той е достъпен в нашия раздел за изтегляне, заедно с ръководството за справки и т.н.
Разгледайте целия ни код, за да разберете как всичко се събира и се опитайте да промените нещата, за да можете да надградите върху него, за да правите каквото искате.
Моля, имайте предвид, че тук не се споменава за сигурността. Сигурността е огромна област в IoT и трябва да се приема сериозно. Ако искате да използвате този проект в гаража си, трябва да запазите паролите за WiFi мрежата силни и сигурни. В мрежата има много информация за сигурността, така че не забравяйте да прочетете най -новото и да останете на върха на него.
Благодаря за четенето и щастливо хакване! Наздраве.
Препоръчано:
Няма пикаене сега, устройство за регулиране на поведението на домашни любимци, което спира котките да пикаят наоколо във вашия дом: 4 стъпки
Няма пикаене сега, устройство за регулиране на поведението на домашните любимци, което спира котките да пикаят наоколо във вашия дом: Бях толкова притеснен от котето си, че тя обича да пикае в леглото ми, проверих всичко, от което се нуждае, и също я заведох на ветеринар. След като отстраних всичко, което мога да мисля и слушам думата на лекаря, осъзнавам, че тя просто има някакво лошо поведение. Така че
Бързото ръководство за правене на видео с вашия iPhone и качването му във Facebook или YouTube: 9 стъпки
Краткото ръководство за създаване на видео с вашия iPhone и качването му във Facebook или YouTube: Използвайте този прост процес от 5 стъпки (Instructables го прави да изглежда като повече стъпки, отколкото е в действителност), за да създадете и качите първия си видеоклип в YouTube или Facebook - използвайки само вашия iPhone
Лесен за прилагане контрол на WiFI във вашия дом: 5 стъпки
Лесен за внедряване WiFI контрол във вашия дом: ESP-01S е евтино и лесно за използване безжично решение. Чрез комбиниране с други сензори и задвижване, дистанционното наблюдение и управление могат да бъдат реализирани удобно. В този проект ще построя интелигентен превключвател за управление на вентилатора от ESP-01S Rela
Преобразувайте вашия лаптоп LCD във външен монитор: 8 стъпки (със снимки)
Преобразувайте вашия лаптоп LCD във външен монитор: Този урок е за ентусиасти, които имат идеята да използват старите си лаптопи, които имат някакъв друг проблем, освен LCD проблема, като например MB повреден. Забележка: Няма да нося отговорност за каквито и да било загуби или щети, причинени от този проект. Имам Acer A
Контролни светлини във вашия дом с вашия компютър: 3 стъпки (със снимки)
Контролирайте светлините във вашия дом с вашия компютър: Искали ли сте някога да управлявате осветлението в дома си от вашия компютър? Всъщност е доста достъпно да го направите. Можете дори да управлявате спринклерни системи, автоматични щори за прозорци, моторизирани прожекционни екрани и т.н. Имате нужда от две парчета хардуер