Съдържание:
- Стъпка 1: Инструменти и материали
- Стъпка 2: Оскверняване на оригиналното устройство
- Стъпка 3: Обяснени схеми
- Стъпка 4: Подготовка на ATTiny85
- Стъпка 5: Изграждане на щита Wemos
- Стъпка 6: Подготовка на Wemos
- Стъпка 7: Съберете всичко заедно
Видео: IOToilet: 7 стъпки (със снимки)
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:54
IOToilet е първият интелигентен държач за тоалетна хартия, който следи ежедневната ни употреба на тоалетна хартия и позволява натрупване на статистически данни, показващи тези показатели. И защо може да ме интересува ежедневната ми употреба на тоалетна хартия, може да попитате? Оказва се, че коремното ни здраве, особено храносмилателният цикъл, имат много общо както с физическото ни здраве, така и с психическото му. Например, ето един хубав TED разговор (между другото, един от няколкото), който описва тази тема:
Първоначално бях поръчан да създам 10 единици от това устройство за агенция за брандиране, чийто клип можете да видите по -горе (2 -ро място), за целенасочена маркетингова кампания за голяма компания. В началото отхвърлих идеята като една, идваща от друг свръх-креативен ум, отчаяно се опитващ да спечели клиентски акаунт, но постепенно тя се разрастваше върху мен, докато осъзнах стойността на информацията, събрана чрез това устройство.
Конструкцията се основава на съществуващ хардуер, който моят клиент получи от EBay, устройство за запис на глас, капсулирано в държач за тоалетна хартия. Той имаше правилния форм-фактор и всички необходими периферни устройства, вече вградени, като високоговорител, сензор за движение за задействане на устройството, пружини за държане на самата тоалетна хартия, отделение за батерията и превключвател за включване и изключване, така че с удоволствие избрах използвайки това готово, вместо да моделирам и отпечатвам собственото си.
Стъпка 1: Инструменти и материали
Използвани материали:
Поставка за тоалетна хартия
Wemos D1 Mini
Чип ATTiny85, DIP опаковка
2 x 2n2222 транзистор
Резистор 220 ома
2 * 1KOhm резистор
Акселерометър MPU6050
По избор, в случай, че не използвам моята печатна платка:
Прототипиращ щит на Wemos
тел, спойка и др.
Използвани инструменти:
Dremel с режещ диск
ATTiny dev board (за удобно качване на фърмуер)
USB Tiny ISP програмист
триъгълна отвертка, използвах този комплект:
Стъпка 2: Оскверняване на оригиналното устройство
След като получих оригиналния шпиндел за тоалетна хартия, отворих кутията му с помощта на триъгълна отвертка и извадих оригиналната платка, като изключих високоговорителя и оставих възможно най -много проводник свързан с него.
След това запоявах светодиода и сензора за наклон от оригиналната платка, за да бъдат по -късно вградени в новата схема. Внимавайте да не прегрявате превключвателя за накланяне, тъй като може да се повреди. Моят беше сив, но тъй като не го направих добре при изваждането от оригиналното устройство, трябваше да използвам снимка от мрежата (вижте по -горе), където беше зелено. Само малка подробност.
След като отворих кутията и свалих електрониката, използвах и Dremel, за да премахна излишната пластмаса, използвана за задържане на оригиналната платка, тези малки пластмасови рафтове и една от четирите винтови тръби. Можете да отложите това на етапа на сглобяване, ако желаете, но във всеки случай ще е необходимо известно подрязване на пластмаса.
Стъпка 3: Обяснени схеми
И така, ето малко за логиката зад веригата:
За да може батериите да издържат дълго време, трябваше да поставя и акселерометъра MPU6050, и процесора ESP8266 в Wemos D1 Mini да спят между активирането. Първият беше лесно направен с помощта на транзистор, който включваше и изключваше MPU6050.
Забележка: Първоначално мислех, че мога да го програмирам да изпраща сигнал за прекъсване, който ще събуди основния процесор. Уви, не можах да намеря начин да го направя, конфигурирането на правилните регистри на MPU6050 беше сложна задача, която все още не знам дали е възможно изобщо …
Втората ми опция беше да използвам превключвателя за накланяне, доставен с оригиналното устройство, за да събудя ESP. Първо го завързах директно към щифта на Wemos RESET, както е описано на снимките по -горе, като използвах транзистор за активиране/деактивиране на механизма. Когато базата на транзистора е висока, GND може да премине през превключвателя за накланяне и да го накара временно да се свърже с щифта RESET, причинявайки нулиране на MCU (това е единственият начин да събудите ESP от дълбок сън, очевидно). След това свързах D0 към базата на транзистора, следвайки предпоставката, че този крак е ВИСОК, докато MCU спи, и веднага щом се събуди, D0 се връща към LOW, деактивирайки механизма за нулиране. В крайна сметка нямах нужда от повтарящо се нулиране, само за първи път, когато държачът за тоалетна хартия започна да се движи.
Това, което открих, е, че на пина D0 отнема доста време след нулирането на MCU, за да се върне към LOW, около 200ms. Това означаваше, че ако завъртя държача за тоалетна хартия достатъчно бързо, докато MCU спи, ще се получат множество RESET, вместо да броим кръговете, както трябва.
Така че, аз се опитах да разреша тази нова ситуация с някои дискретни компоненти (кондензатори, транзистори и т.н.), но успях да намеря само частично решение на проблема.
В крайна сметка добавих още един MCU, ATTiny85, който щеше да се събуди от сън чрез превключвателя за накланяне, след което да събудя ESP8266 и да изчакам известно време, преди да заспи. Знам, че това вероятно не е най -икономичното решение на проблема, но имах краен срок …
Можете да видите подробното решение в схемата, която съм включил. Моля, обърнете внимание, че 10K резисторите бяха заменени с 1K, тъй като 10k тези бяха твърде високи, за да могат транзисторите да се отворят напълно.
Стъпка 4: Подготовка на ATTiny85
Ако никога не сте програмирали ATTiny85, не се страхувайте! Използването на любимия Arduino IDE може да ви отведе докрай. Започнете с тези инструкции как да конфигурирате Arduino IDE:
github.com/SpenceKonde/ATTinyCore/blob/mas…
След това инсталирайте драйверите за USBTinyISP от тук:
learn.adafruit.com/usbtinyisp/drivers
Сега заредете прикачения тест код: WakeOnExternalInterruptTest.ino
и се свържете (вижте схемата за извеждане на ATTiny85):
1. Натиснете бутон между щифт 3 и маса
2. Светодиод и резистор 220 Ohm последователно, между щифт 2 и маса
Следващия, Изберете USBTinyISP като програмист (под Инструменти -> Програмист) и качете тестовата скица на дъската.
Светодиодът трябва да мига 5 пъти, след което чипът трябва да заспи. Натискането на бутона ще го накара да се събуди и да повтори тази последователност.
Има ли работа? страхотен! Качете последната скица "Будител" в ATTiny, която да се използва в последната верига.
Стъпка 5: Изграждане на щита Wemos
Така че, за да изградите щита, имате 3 възможности, от които можете да избирате:
1. Използвайте стандартен прото щит за Wemos и запоявайте веригата върху него.
2. Изработете печатна платка въз основа на приложените файлове EAGLE.
3. Помолете ме за печатна платка, която да ви изпратя по пощата на охлюв (имам няколко лежащи, разходите са почти нищо).
Във всеки случай препоръчвам да се изгради веригата на макет, преди да се ангажира с печатната платка!
Ако използвате опциите за печатни платки, не забравяйте да свържете черния проводник, както е на снимките, от предната или задната страна на дъската (последното работи най -добре за мен). Този проводник свързва GND от Wemos към ATTiny85 и без него събуждането няма да се осъществи.
Просто разгледайте добре изображенията и прочетете поясненията, които съм добавил, това би трябвало да е достатъчно.
Стъпка 6: Подготовка на Wemos
Ако никога не сте използвали Arduino IDE за програмиране на Wemos платка, започнете с инсталирането на мениджъра на платката и изберете дъската в менюто Tools -> Board, както е описано тук:
github.com/esp8266/Arduino
Започнете, като качите мигащата скица на дъската си, като се уверите, че кодът се качва правилно.
Стъпка 7: Съберете всичко заедно
Инсталирайте щита върху Wemos. Можете да го запоите, но препоръчвам да използвате женски заглавки, запоени към Wemos, които ще позволят временна връзка между Wemos и щита, в случай на проблеми. Само имайте предвид, че женският хедер ще трябва да слезе в последния етап на сглобяване, за да може устройството да се побере в пластмасовата обвивка. Също така, за да направим нещата малко по -сложни, има голям шанс, че когато щитът е свързан към Wemos, качването на код ще бъде деактивирано. Срещал съм това явление по непостоянен начин и нямах време да го проуча.
Съвет: планирайте предварително.
Сега, Тестване!
След като бъде инсталиран, започнете, като качите тестовата скица на BlinkAccelerometer във Wemos и се уверете, че той включва и изключва светодиода MPU6050. Ако не, проверете окабеляването на транзистора, който отговаря за захранването на MPU6050. Базата му трябва да бъде свързана към щифт D5 на Wemos, колекторът трябва да бъде свързан към GND на акселерометъра, а емитерът да бъде свързан към общ GND.
След това качете скицата TurnCountTest1 на дъската на Wemos и отворете Serial Monitor. Трябва да видите данни, идващи от акселерометъра, представени на монитора. Ако не работи, проверете часовника и кабелите за данни: CLK трябва да бъде свързан към D1 и DATA трябва да бъде свързан към D2.
Сега запоявайте превключвателя за накланяне към определените отвори на платката (вижте поясненията), като се уверите, че е перпендикулярен на оста на въртене, така че въртенето на шпиндела ще затвори и отвори връзката между двата му проводника.
След това свържете 3V входа на батерията към Wemos VCC и неговия минус извод към Wemos GND. Уверете се, че включването на превключвателя включва устройството. И накрая, свържете високоговорителя към GND и щифт D4 на Wemos.
Качете крайния код в Wemos - скица, наречена SmartWipe. Отворете сериен монитор и се уверете, че уредът заспива след 3 минути и се събужда чрез преместване на превключвателя за накланяне (съответните съобщения трябва да се появят на монитора).
Ако искате да намалите времето, когато Wemos е буден (главно за целите на тестването), намалете стойността на WIFI_CONFIGURATION_IDLE_TIMEOUT, определена в params.h и качете скицата на дъската. Уверете се, че след като Wemos заспи дълбоко, преместването на превключвателя за накланяне кара ATTiny да се събуди (сигнализирано от светодиода), което от своя страна събужда Wemos.
Променете стойността на параметъра обратно на 180000L (3 минути, в милисекунди) и се уверете, че Wemos задейства гореща точка, наречена IOToilet_XXXXXXXX, където XXXXXXX ще бъде извлечен от MAC адреса на чипа. Свържете се с този Wifi с помощта на смарт телефон и трябва да бъдете насочени към формуляр за регистрация (механизъм, наречен Captive Portal). Попълнете подробностите, особено важно е SSID и паролата на вашия локален wifi и изпратете формуляра. След това устройството трябва да се опита да се свърже с мрежата, като използва предоставените идентификационни данни, и ако успее, възпроизведе 3 възходящи звука на високоговорителя. Ако е имало проблем при свързването към Wi -Fi, ще се възпроизведе 3 низходящ звук. След това Wemos трябва да заспи дълбоко, докато не се събуди от движение.
И накрая: Тест на системата от край до край.
Разточете държача на тоалетната хартия по оста на въртене няколко завъртания, след което го поставете върху стабилна повърхност (за да сигнализирате с помощта на ролката е приключило и задействате качването на данни). Изчакайте около 10 секунди, докато броят на ролите бъде изпратен в облака, след това отидете на https://smartwipe-iot.appspot.com/ и щракнете върху Заявка. В облака трябва да видите данните си за регистрация и броя на скорошните ви употреби! Не забравяйте да запишете вашия uuid, който е вашият уникален идентификатор в системата, извлечен от MAC адреса на вашия Wemos.
Ако искате да извлечете само статистическите си данни във формат JSON, използвайте URL, подобен на този:
smartwipe-iot.appspot.com/api?action=query&uuid=1234567890
просто замени uuid с твоя.
Включих всички източници за уеб приложението, което се хоства в двигателя на Google App, така че потребителите, които искат да получат повече поверителност на данните, да могат да ги разгърнат на собствения си потребител на Google, да добавят удостоверяване и т.н.
Когато всичко работи, поставете електрониката в пластмасовата обвивка, като отрежете пластмасата с дремел, ако е необходимо. Цялото парче трябва добре да се впише в корпуса.
Проблем? Пишете ми!
ОБЕДИНЕНИ, КОИТО ПОПАМАМЕ!
Препоръчано:
LED светлина (и) със захранване от батерията със слънчево зареждане: 11 стъпки (със снимки)
LED светлини (и), захранвани от батерии, със слънчево зареждане: Жена ми учи хората как да правят сапун, повечето от часовете й бяха вечер и тук през зимата се стъмва около 16:30 ч. Някои от нейните ученици имаха проблеми с намирането на нашите къща. Имахме табела отпред, но дори и с улично осветление
Лек хак за стая със зрителни увреждания със слухови увреждания: 7 стъпки (със снимки)
Лек хак на стаята със слухови увреждания на вратата: Проблем: баща ми е регистриран като глух, а майка ми е с увреден слух и поради това често им е трудно да чуят звънеца на вратата. Това би могло да бъде проблем, претърпян и от много други.Купиха мигащ светлинен звънец на вратата, за да им помогнат с
Висящи бижута със слънчево захранване на сърцето със светкавици: 11 стъпки (със снимки)
Висящи бижута със слънчево захранване за сърце: Тази инструкция е за сърце със слънчева енергия с пулсиращ червен светодиод. Той измерва около 2 " до 1,25 ", включително USB раздела. Той има една дупка през горната част на дъската, което улеснява окачването. Носете го като огърлица, обеци, връзки на щифт
Сандък със съкровище Zelda (със светлини и звук): 12 стъпки (със снимки)
Zelda Treasure Chest (With Lights & Sound): Здравейте на всички! Бях голям фен на игрите Legend of Zelda, когато бях по -малък, но мисля, че почти всеки знае емблематичната мелодия, която свири, когато отворите сандък в играта, просто звучи толкова вълшебно! В тази инструкция ще ви покажа как
Персонализиран часовник със стрелки за снимки: 5 стъпки (със снимки)
Персонализиран часовник със стрелки за снимки: Някои хора наблюдават часовника. Сега всеки може да бъде часовник. Други проекти персонализират лицето на часовника. Този персонализира стрелките на часовника. Изглежда скъп, но е по -малко от 5 долара и около 30 минути на часовник. Перфектен за Chr