Съдържание:

IOToilet: 7 стъпки (със снимки)
IOToilet: 7 стъпки (със снимки)

Видео: IOToilet: 7 стъпки (със снимки)

Видео: IOToilet: 7 стъпки (със снимки)
Видео: ЭТОТ ФИЛЬМ НУЖНО ПОСМОТРЕТЬ ВСЕМ! НОВИНКА! "Дом с Сюрпризом" Русские мелодрамы новинки 2021 2024, Ноември
Anonim

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
Подготовка на 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

Изграждане на щита Wemos
Изграждане на щита Wemos
Изграждане на щита Wemos
Изграждане на щита Wemos
Изграждане на щита Wemos
Изграждане на щита Wemos
Изграждане на щита Wemos
Изграждане на щита 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, да добавят удостоверяване и т.н.

Когато всичко работи, поставете електрониката в пластмасовата обвивка, като отрежете пластмасата с дремел, ако е необходимо. Цялото парче трябва добре да се впише в корпуса.

Проблем? Пишете ми!

ОБЕДИНЕНИ, КОИТО ПОПАМАМЕ!

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