Съдържание:

Спестете вода и пари с душ монитора за вода: 15 стъпки (със снимки)
Спестете вода и пари с душ монитора за вода: 15 стъпки (със снимки)

Видео: Спестете вода и пари с душ монитора за вода: 15 стъпки (със снимки)

Видео: Спестете вода и пари с душ монитора за вода: 15 стъпки (със снимки)
Видео: Свършвам бързо! Как да правя секс по-дълго? 2024, Ноември
Anonim
Спестете вода и пари с душ монитора за вода
Спестете вода и пари с душ монитора за вода
Спестете вода и пари с монитора за душ душ
Спестете вода и пари с монитора за душ душ
Спестете вода и пари с монитора за душ душ
Спестете вода и пари с монитора за душ душ
Спестете вода и пари с душ монитора за вода
Спестете вода и пари с душ монитора за вода

Кое използва повече вода - вана или душ?

Наскоро се замислих по този въпрос и осъзнах, че всъщност не знам колко вода се използва, когато се къпя. Знам, че когато съм под душа, понякога умът ми се лута, мислейки за готина идея за нови проекти или опитвайки се да реши какво да закуси, докато водата просто се стича в канала. Би било много по -лесно да намаля консумацията на вода, ако всъщност знаех колко литра използвам всеки път!

Направих малко проучване и установих, че различните душ глави могат да използват навсякъде от 9,5 литра (2,5 галона) на минута до по -малко от 6 литра (1,6 галона) на минута, ако имате инсталиран ограничител на дебита. Много стар душ може да използва още повече вода.

Реших да проектирам и изградя устройство, което да показва общия обем на използваната вода за душ, цената на водата и дебита. Имам инсталирано това устройство от няколко седмици и е наистина удобно да имате отчитане на живо за количеството вода, което се използва.

В тази инструкция ще обясня как създадох това. Разбира се, не е нужно да следвате точно стъпките ми! Винаги е добре да използвате частите, които имате. Включих връзки към всички части, които използвах, или еквивалентна част, която ще работи.

Консумативи

(Всички цени в щатски долари)

  • Сензор за потока - $ 3,87
  • LCD екран - $ 2.29
  • Arduino Nano - 1,59 долара
  • Boost Converter - $ 1.88
  • LiPo зарядно устройство - $ 1.89
  • Водоустойчив превключвател - 0,93 долара (Не е точно този, който използвах, но трябва да работи)
  • Водоустойчив бутон - $ 1.64
  • Стойки, M3 винтове и гайки - $ 6.99
  • 2X женски 3.5 мм жак - $ 2.86 ea.
  • Мъжки 3.5 мм щепсел - $ 1.48
  • 3,5 мм 3 'кабелен монтаж - 3,57 долара
  • Сглобяване на USB кабел - $ 1.74
  • 1/2 "NPS женско-женско свързване-1,88 $
  • 500mAh 3.7V LiPo батерия - $ 3.91

Инструменти и общи консумативи

  • Поялник и спойка
  • Тел
  • Резачки за тел
  • Машини за сваляне на тел
  • Двустранна касета
  • Отвертка Phillips
  • 3D принтер (по избор)

Стъпка 1: Хидроизолация

Хидроизолация
Хидроизолация

Най -трудният аспект на този проект е да направите цялото нещо водоустойчиво. Тъй като ще живее под душа, той трябва да може да преживее екстремна влажност и случайни пръски. Около 75% от общото време, прекарано в този проект, е измисляло тази част.

Начинът, по който го виждам, има два избора: проектирайте персонализиран 3D отпечатан корпус или се опитайте да го накарате да работи с готова кутия. Тъй като наскоро получих собствен 3D принтер, реших да отида с първата опция.

Ако нямате достъп до 3D принтер, ето няколко стандартни заграждения, които открих, че претендират, че са водоустойчиви и вероятно биха работили. Моля, обърнете внимание, че не съм закупил нито едно от тези заграждения, така че не давам никакви гаранции, че всички компоненти ще се поберат вътре!

Banggood - 100x68x50mm кутия с прозрачен капак - $ 5.35

Digikey - кутия 130x80x70 мм с прозрачен капак - 11,65 долара

За този момент нататък, когато се позовавам на заграждението, говоря за моя 3D отпечатан.

Стъпка 2: Моят персонализиран 3D принтиран корпус

Моят персонализиран 3D принтиран корпус!
Моят персонализиран 3D принтиран корпус!
Моят персонализиран 3D принтиран корпус!
Моят персонализиран 3D принтиран корпус!
Моят персонализиран 3D принтиран корпус!
Моят персонализиран 3D принтиран корпус!

След като работих във Fusion 360 няколко часа, измислих това заграждение. Той има три кръгли изреза, за да побере два женски 3.5 мм жака и един превключвател. Капакът има 16 мм отвор за моментния бутон и правоъгълен изрез за екрана, както и четирите монтажни отвора за задържане на екрана на място. Капакът е отделна част и има устна, за да предотврати навлизането на влага през шева. Четирите отвора в ъглите на кутията трябва да държат капака с 30 мм стойки. Всички отвори за винтове са с диаметър 3 мм, което пасва на винт М3.

Можете да изтеглите STL файловете от моята страница Thingiverse. Може да се отпечатва без никакви салове или подпори, но аз използвах опори само за да съм в безопасност. Използвах и 100% пълнене. Тъй като стените са толкова тънки, намаляването на процента на пълнене всъщност не променя общото време за печат или общия материал, така че просто го поддържах на 100%.

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

Моето решение беше да създам правоъгълен изрез в капака и да залепя в парче прозрачна пластмаса от някаква зеленчукова опаковка. Тази техника може да се използва дори ако не използвате моята персонализирана кутия; просто изрежете правоъгълник с помощен нож или Dremel. Разбира се, ако използвате заграждение с прозрачен капак, това изобщо не е необходимо.

Най -добрият източник на прозрачна пластмаса, който открих, е опаковката за производство. Обикновено спанакът или други листни зеленчуци се предлагат в големи прозрачни пластмасови контейнери. В моя случай използвах опаковката от "смес от пипер".

Исках надвес от 5 мм, за да дам достатъчно площ за залепване, затова изрязах правоъгълник 27х77 мм от прозрачна пластмаса. Трябваше да подрежа малко ъглите, така че винтовете да пасват. Напръсках линия суперлепило по периметъра на изреза и след това поставих прозрачната пластмаса. Добавих още малко суперлепило по ръба след само за да се уверя, че е запечатано.

Pro-Tip: Поставете детайла пред малък вентилатор, докато лепилото изсъхне. Тъй като суперлепилото изсъхва, той има тенденция да оставя отвратително бели остатъци, които със сигурност не искаме на нашия прозрачен прозорец. Използвах стар 12V вентилатор от компютърно захранване. Оставих лепилото да престои 12 часа, за да се уверя, че е напълно изсъхнало.

Стъпка 3: Монтиране на LCD екрана

Монтиране на LCD екрана
Монтиране на LCD екрана
Монтиране на LCD екрана
Монтиране на LCD екрана
Монтиране на LCD екрана
Монтиране на LCD екрана

След като прозрачният прозорец изсъхне, LCD може да се монтира. LCD дисплеят е супер популярен 16x2 символен дисплей, с I²C "раница", предварително запоена на гърба. Силно препоръчвам да получите този екран с интерфейс I²C. Окабеляването на всички паралелни линии е доста досадно и въвежда повече потенциал за грешки - версията I²C има само два проводника за захранване и два проводника за сигнал.

Използвах четири 10 -милиметрови стойки за монтиране на екрана. Стойностите са с външна резба от единия край и вътрешна резба от другия. Пъхнах мъжкия конец през отворите на LCD и затегнах гайка М3 към всяка от тях. След това използвах четири винта M3, за да закрепя женските краища на стойките през капака на корпуса. Получих този пакет стойки, който има 10 -милиметровите за монтиране на LCD и по -дълги, за да държат капака към основата. Освен това има винтове и гайки M3, така че не е нужно да купувате допълнителен хардуер.

Уверете се, че гайките са много стегнати, така че когато затегнете винтовете, стойките да не се завъртят. Също така се уверете, че не затягате прекалено винтовете, или пластмасовият капак може да се деформира и да не се запечата правилно.

Редът от 16 заглавни щифта на LCD дисплея трябва да е отгоре - уверете се, че не монтирате LCD с главата надолу!

Стъпка 4: Монтиране на моменталния бутон

Монтиране на моментален бутон
Монтиране на моментален бутон
Монтиране на моментален бутон
Монтиране на моментален бутон
Монтиране на моментален бутон
Монтиране на моментален бутон

Реших да използвам този болно изглеждащ хром бутон на предния панел. Използвал съм ги в предишни проекти и много ми харесва как изглеждат. Предполага се, че са водоустойчиви и идват с гумен пръстен, за да се предотврати навлизането на влага в кутията през резбите.

Тази стъпка е доста проста. Развийте гайката, но дръжте гумения пръстен включен. Поставете копчето през отвора на капака и затегнете гайката от задната страна. Избягвайте прекалено затягането на гайката, в противен случай гуменият пръстен ще бъде смачкан и няма да изпълни предназначението си.

Стъпка 5: Захранване и верига за зареждане

Захранваща и зареждаща верига
Захранваща и зареждаща верига
Захранваща и зареждаща верига
Захранваща и зареждаща верига
Захранваща и зареждаща верига
Захранваща и зареждаща верига

Сега ще съберем компонентите за захранване на батерията. Това включва батерията, главния превключвател, платката за наблюдение/зареждане на батерията и усилващия преобразувател.

Батерията, която използвах, е 3,7V 1500 mAh едноклетъчна литиево-йонна батерия. Конкретният, който използвах, беше изтеглен от счупен контролер на Playstation. Всяка едноклетъчна Li-Ion или LiPo батерия ще работи, стига да се побира във вашия корпус. Този тип батерии обикновено са много тънки и плоски, така че вероятно бихте могли да използвате една двойно по -голяма от моята без никакви проблеми. Клетка 18650 ще работи, но няма да се побере в моята персонализирана кутия, така че ще трябва да проектирате своя собствена или да използвате готово заграждение. Ако е възможно, препоръчвам да използвате спасена батерия (както направих аз), защото доставката на батерии често е скъпа!

Батерията първо трябва да бъде запоена към зареждащата платка TP4056. Ако искате, можете да запоите JST RCY конектор към батерията и зарядното устройство за удобство (аз направих това), но не е необходимо. Не забравяйте да спазвате правилния полярност, както е посочено от маркировките на платката на зарядното устройство, тъй като платката не е защитена срещу обратна полярност на батерията!

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

Тъй като всички наши Arduino, LCD екран и сензор за дебит се нуждаят от 5V, трябва да настроим изхода на усилвателния преобразувател на 5V. Това се постига чрез завъртане на копчето на потенциометъра с малка отвертка. Когато главният превключвател е включен, батерията е свързана и мултицетът е свързан към изхода на усилвателния преобразувател, бавно завъртете потенциометъра, докато изходът отчете 5V. Ще бъде трудно да се отчете точно 5.000V, но се стреми към напрежение между 4.9V и 5.1V.

Тъй като моят персонализиран корпус се държи затворен с няколко винта, не искаме да отваряме кутията всеки път, когато трябва да се зарежда. Използвах 3,5 мм жак за слушалки за това. Точният конектор, който използвах, е този от Digikey (за което са оразмерени изрезите в кутията ми), но този от Banggood също трябва да работи.

Първо вмъкнах конектора в най-долния отвор в кутията. Тъй като това ще бъде изключено през повечето време и следователно податливо на проникване на влага, най -добре е да го монтирате на дъното, за да предотвратите капенето на вода вътре. След като монтирах заключващата шайба и затегнах гайката, запоих два проводника към щифтовете "връх" и "ръкав" на конектора. Изводът на конектора е показан в едно от моите анотирани изображения. Запоявах другия край на кабела на "втулката" към отрицателния вход на зарядното устройство, до микро USB порта. И накрая, запоявах кабела "върха" към подложката +5V, от другата страна на USB порта. USB портът на зарядното устройство няма да се използва, тъй като би било трудно да накарате USB порта да проникне в корпуса, без да се допуска влага.

Стъпка 6: Зареждащ кабел

Зареждащ кабел
Зареждащ кабел
Зареждащ кабел
Зареждащ кабел
Зареждащ кабел
Зареждащ кабел

Тъй като използваме 3.5 мм аудио жак като наш порт за зареждане, трябва да направим адапторен кабел, който има мъжки 3.5 мм щепсел от единия край и USB A щепсел от другия край. Това ще ни позволи да използваме всяко общо зарядно устройство за мобилни устройства (като например зарядно за iPhone) за зареждане на това устройство.

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

След това свалих бялото яке от кабела, за да разкрия само два проводника вътре: червен и черен проводник. Някои USB кабели ще имат четири проводника: червен, черен, зелен и бял. Зеленото и бялото са за пренос на данни и могат да бъдат игнорирани. Отстранете изолацията само от червените и черните проводници.

След това ще ви е необходим мъжки 3,5 мм щепсел. Използвах този от Banggood. Запоявайте червения проводник от USB кабела към средния щифт (който е върхът на конектора) и черния проводник към раздела с дълъг ръкав. Вижте снимките ми за пояснение.

Препоръчвам винаги да включвате 3,5 мм щепсела преди USB щепсела, тъй като процесът на включване на кабела може да доведе до късо съединение в металния контакт.

Стъпка 7: За сензора за дебит

За сензора за дебит
За сензора за дебит
За сензора за дебит
За сензора за дебит
За сензора за дебит
За сензора за дебит
За сензора за дебит
За сензора за дебит

Взех този сензор за поток от Banggood за $ 3.87. Преди да го използвам, реших да проуча как работи.

Дизайнът е изненадващо прост и гениален. Електрониката е напълно запечатана от водата. Има свободно въртящо се витло, което се върти по -бавно или по -бързо в зависимост от дебита. В един момент на витлото има магнит. От външната страна на сензора има малко отделение, което съдържа малка платка с два компонента: резистор и сензор за ефект на Хол. Всеки път, когато магнитът минава покрай сензора за ефекта на Хол, той превключва между висок и нисък. С други думи, той превключва между 5V и 0V всеки път, когато витлото се върти.

За да прочетем сензора, прилагаме +5V към червения проводник, отрицателен към черния проводник и четем цифровия сигнал от жълтия проводник. На снимката на моя осцилоскоп можете да видите как се променя сигналът при включване на потока. Първоначално сигналът е постоянно нулев волта. Когато потокът започне, честотата на импулсите бързо се ускорява и достига стабилно състояние.

Според листа с данни сензорът извежда 450 импулса на литър. Това ще бъде важно по -късно, когато пишем софтуера.

Стъпка 8: Окабеляване на датчика за потока

Окабеляване на датчика за потока
Окабеляване на датчика за потока
Окабеляване на датчика за потока
Окабеляване на датчика за потока
Окабеляване на датчика за потока
Окабеляване на датчика за потока
Окабеляване на датчика за потока
Окабеляване на датчика за потока

Сензорът за дебит се доставя с 3-пинов JST-XH конектор. Това не е идеално, тъй като проводниците са прекалено къси, а конекторът има открити контакти, които лесно могат да бъдат скъсени от разсеяни водни капчици. Поръчах този 3.5 мм аудио кабел от Digikey. Дълъг е 3 ', което е перфектната дължина и има калайдисани проводници, което го прави лесен за запояване. Не препоръчвам да се опитвате да използвате стар кабел за слушалки, тъй като те обикновено имат много тънък емайлиран проводник, който е почти невъзможно да се запои.

Сензорът за дебит има пластмасов капак, задържан от два винта Phillips. Просто премахнете тези винтове и издърпайте платката. Не се държи с лепило, просто се държи на място с пластмасовия капак. След това разкачете трите проводника, като ги нагреете с поялник и ги повдигнете един по един.

След това запоявайте 3,5 мм аудио кабел към подложките. Предлагам да съчетаете цветовете така, както направих аз. Тази конфигурация има +5V на върха, сигнал на пръстена и земя на ръкава. Това е същата конфигурация, използвана за порта за зареждане, от стъпка 6. Ако случайно включите зарядното устройство в порта на сензора или обратно, няма да има повреда на устройството.

Стъпка 9: Инсталиране на датчика за потока

Инсталиране на датчика за потока
Инсталиране на датчика за потока
Инсталиране на датчика за потока
Инсталиране на датчика за потока
Инсталиране на датчика за потока
Инсталиране на датчика за потока

До този момент цялата ни работа се извършва в работилницата. Но сега е време да се отправим към банята!

Първо махнах душовата глава. Това разкрива късо парче тръба, стърчащо от стената, с 1/2 NPS външна резба. Удобно, нашият сензор за дебит има точно същия размер на резбата! Единственият проблем е, че сензорът има мъжка резба от двата края, така че ние ще се нуждаят от прикачване от жена към жена.

В моя местен магазин за хардуер имаше 1/2 съединители от месинг, желязо и PVC. ПВЦ беше най -евтиният, затова си взех този. Макар и отзад, месинговите или стоманените щяха да изглеждат по -хубави.

След като имате съединителя, просто завийте сензора за дебит в съединителя и след това завийте другия край на съединителя върху тръбата. Сензорът за дебит има стрелка, която показва желаната посока на потока. Уверете се, че не го инсталирате назад, в противен случай измерванията може да са неточни. И накрая, завийте душовата глава към края на сензора за дебит.

Разбира се, предполагам, че вашият душ използва 1/2 NPS резба, както моят. Ако това не е така, ще трябва да получите допълнителни адаптери.

Про-съвет: Добавете малко тефлонова водопроводна лента към всички нишки, преди да завиете парчетата, за да предотвратите течове. Нямах под ръка, но планирам да добавя това в близко бъдеще.

Стъпка 10: Arduino & Perfboard

Arduino & Perfboard
Arduino & Perfboard
Arduino & Perfboard
Arduino & Perfboard
Arduino & Perfboard
Arduino & Perfboard

Тъй като ще трябва да извършим много окабеляване, добра идея е да вземем парче перфорирана дъска, за да направим нещата малко по -подредени. Изрязах правоъгълник от перфборд около 1 "на 2". След това поставих моя Arduino Nano в средата на дъската и маркирах къде преминават щифтовете на заглавието. След това изрязах две дължини женски заглавки, всяка с дължина 15 пина. Запоях ги върху перфорираната дъска, където преди това маркирах. Това ще ни позволи да премахнем Arduino за програмиране.

Pro-Tip: Маркирайте ориентацията на USB порта на Arduino, така че винаги да го включвате в перфборда по същия начин.

Стъпка 11: Окабеляване на всичко

Окабеляване на всичко
Окабеляване на всичко
Окабеляване на всичко
Окабеляване на всичко
Окабеляване на всичко
Окабеляване на всичко

Сега е време да запоите всичко заедно! Включих пълна електрическа схема, която можете да следвате, или да видите моите писмени стъпки по -долу, ако предпочитате по -ръководен подход.

Първо изрязах някои мъжки щифтове за заглавки и ги запоях върху перфорираната дъска на +5V и заземени релси. След това запоих още два щифта на заглавката, свързани към щифтове A4 и A5 на Arduino. Тези заглавки ще ни позволят да свързваме LCD екрана с помощта на джъмпери от жена към жена.

След това запоявах чифт проводници от изхода на усилвателния преобразувател към +5V и заземяващите релси. Това ще осигури захранване на Arduino, LCD и сензора за дебит.

След това отрязах два проводника и ги свързах към клемите на бутона. Запоявах един проводник към заземяващата шина, а другия към цифров щифт 3.

Последната част за запояване е сензорът за дебит. Тъй като вече сме прикрепили 3,5 мм щепсел към сензора, просто трябва да запояваме 3,5 мм женски жак. Първо запоявах три проводника - по един към всеки от щифтовете на жака. След това вкарах крика през корпуса и го закрепих на място с гайка. Накрая запоявах втулката към земята, върхът към +5V, а пръстенът към цифров щифт 2.

Избрах да използвам цифрови щифтове 2 и 3 за бутона и сензора за потока, защото те са хардуерни прекъсвания. Това ще направи много по -лесно писането на кода.

Сега свършихме запояването, но все още трябва да свържем LCD. Тъй като сме запоявали хедери, имаме нужда само от четири джъмпера от жена към жена. Свържете щифта "Vcc" към +5V, щифта "Gnd" към земята, щифта "SCL" към A5 и щифта "SDA" към A4. За да може LCD екранът да се побере в кутията, ще трябва да огънем щифтовете на заглавката назад. Прегъването на щифтовете напред -назад няколко пъти ще измори метала и ще доведе до счупване на щифтовете, затова препоръчвам да ги огъвате само веднъж и да го правите внимателно.

Сега окабеляването е завършено!

Стъпка 12: Програмиране

Програмиране
Програмиране

Сега, когато хардуерът е свързан, можем да програмираме Arduino.

Искам програмата да има следните функции:

  • На първия ред покажете бързо актуализиращ се брой на общите литри
  • На втория ред покажете общата цена на водата или дебита
  • Когато душът работи, бутонът превключва между показване на разходите или дебита
  • Когато душът не работи, бутонът трябва да изчисти всички данни и да нулира екрана
  • Сензорът трябва да се чете с помощта на програма за прекъсване, за да се избегнат груби методи на опрос
  • Когато актуализираме екрана, трябва да актуализираме само променените стойности, вместо да презаписваме целия екран всеки път (това би предизвикало забележимо трептене)

Програмата следва проста структура. Използвайки функцията millis (), можем да създадем закъснения, които всъщност не спират изпълнението на програмата. Вижте този урок за пример за мигане на светодиод, без да използвате функцията delay ().

Функцията millis () връща броя милисекунди от включването на Arduino. Създавайки променлива "previousMillis" и изваждайки Millis () - previousMillis (), можем да видим изминалото време от актуализирането на previousMillis.

Ако искаме нещо да се случва една в секунда, можем да използваме следния кодов блок:

if ((millis () - предишенMillis)> = 1000) {

previousMillis = millis (); toggleLED (); }

Това проверява дали разликата между millis () (текущото време) и previousMillis (последния път) е по -голяма или равна на 1000 милисекунди. Ако е така, първото нещо, което правим, е да настроим previousMillis равно на текущото време. След това изпълняваме каквито допълнителни стъпки искаме. В този пример превключваме LED. След това излизаме от този блок код и завършваме останалата част от функцията loop (), преди да се върнем към началото и да го повторим отново.

Ползата от използването на този метод пред простата функция delay () е, че delay () поставя интервал от време между инструкциите, но не отчита времето, необходимо за изпълнение на другите инструкции във функцията loop (). Ако правите нещо, което отнема повече време от просто мигане на светодиод, като например актуализиране на LCD екран, времето, което отнема, не е за пренебрегване и след няколко цикъла ще се увеличи. Ако актуализирате LCD екрана на часовник, той бързо ще стане неточен и ще изостане.

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

След като видите блок -схемата, разгледайте приложения Arduino код. Коментирах почти всеки ред, за да стане ясно какво прави всеки ред.

В кода има няколко части, които може да искате да промените. Най -важното е цената на литър. В моя град водата струва 0,2523 ¢ на литър. Намерете следния ред и променете тази стойност, за да съответства на цената, където живеете:

const float COST_PER_LITRE = 0,2523; // цена на литър, в центове, от градския уебсайт

Ако предпочитате да използвате галони над литри, променете всички редове "LCD.print ()", които се отнасят до "L" или "L/s" на "G" или "G/s". След това изтрийте следния ред:

const float КОНВЕРСИЯ = 450,0; // дръжте това без коментари за литри

… и разкомментирайте този ред:

const float CONVERSION = 1703.0; // разкомментирайте това и изтрийте горния ред за галони

Има още една странност, която може би сте забелязали в моя код. Наборът от символи по подразбиране не включва знака „¢“и не исках да използвам долари, защото цената ще се показва като „0,01 долара“или по -малко през по -голямата част от времето. Затова бях принуден да създам персонализиран герой. Следният байтов масив се използва за представяне на този символ:

байт cent_sign = {B00100, B00100, B01111, B10100, B10100, B01111, B00100, B00100};

След създаването на този масив специалният знак трябва да бъде „създаден“и съхранен.

lcd.createChar (0, cent_sign);

След като това бъде направено, за да отпечатаме персонализирания знак, използваме следния ред:

lcd.write (байт (0)); // отпечатайте знак цент (¢)

LCD дисплеят може да има до 8 персонализирани знака. Повече информация за това е тук. Попаднах и на този полезен онлайн инструмент, който ви позволява да нарисувате персонализиран знак с помощта на графичен интерфейс и той автоматично ще генерира персонализирания байтов масив.

Стъпка 13: Затваряне на капака

Затваряне на капака
Затваряне на капака
Затваряне на капака
Затваряне на капака
Затваряне на капака
Затваряне на капака

Най -накрая почти приключихме!

Време е да поставите цялата електроника в кутията и да се надяваме, че капакът се затваря. Но първо трябва да прикрепим 30 -милиметровите стойки. Пакетът от стойки, които купих, не включва толкова дълги, но се предлага с 20 мм и 10 мм, които могат да бъдат прикрепени заедно. Завих четири стойки в отворите в долната част на корпуса с четири винта М3 (виж изображения 1 и 2). Не забравяйте да ги затегнете здраво, но не прекалено здраво, или рискувате да счупите пластмасовия корпус.

Сега можем да поставим цялата електроника вътре. Прикрепих зарядното устройство и усилващия преобразувател към капака с двустранна лента, както се вижда на третото изображение. След това увих малко електрическа лента около открития метал на двата 3.5 мм жака, само за да гарантирам, че нищо не се къса, като се свържете с конекторите.

Успях да направя Arduino подходящ, като го поставих отстрани, в долния ляв ъгъл, с USB порта към дясната страна. Използвах повече двустранна лента, за да закрепя батерията в долната част на корпуса под LCD екрана.

И накрая, след като всичко е заседнало повече или по -сигурно в кутията, капакът може да се завинтва с още четири винта M3.

Стъпка 14: Тестване

Тестване
Тестване
Тестване
Тестване
Тестване
Тестване
Тестване
Тестване

Първо включете 3,5 мм конектора от сензора за дебит. Препоръчвам да направите това преди устройството да бъде включено, защото е възможно щепселът да направи нежелана връзка, докато се вкарва.

След това включете главния превключвател на захранването. Въпреки че няма течаща вода, бутонът на предния панел не трябва да прави нищо освен изчистване на общата сума и изчистване на екрана. Тъй като общата сума ще бъде нула по подразбиране, бутонът все още няма да направи нищо.

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

Монтаж

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

Отстраняване на неизправности

Екранът е включен, но подсветката е изключена - уверете се, че джъмпера е инсталиран на двата щифта отстрани на модула I ² C

Екранът е празен, с включена подсветка - проверете дали адресът I ² C е правилен, като стартирате скенера I²C

Екранът е включен, но стойностите остават нулеви - проверете дали има сигнал, идващ от сензора, като измерите напрежението на щифт 2. Ако няма сигнал, проверете дали сензорът е свързан правилно.

Екранът е празен с изключена подсветка - проверете дали светодиодът за захранване на Arduino свети и проверете дали екранът има захранване

Екранът се включва за кратко, след което всичко спира - вероятно сте настроили напрежението от усилвателния преобразувател твърде високо (компонентите не могат да се справят с повече от 5V)

Устройството работи, но стойностите са грешни - уверете се, че сензорът за дебит, който използвате, има същия коефициент на преобразуване от 450 импулса на литър. Различните сензори могат да имат различни стойности.

Стъпка 15: Сега започнете да пестите вода

Подобрения

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

Също така би било готино да има начин за експортиране на данните, които да се преглеждат в електронна таблица, така че да могат да бъдат изобразени. Тогава можете да видите в кои времена на годината хората имат по -чести и по -дълги душове.

Всички тези функции ще изискват използването на EEPROM-вградената енергонезависима памет на Arduino. Това ще позволи запазването на данните дори след изключване на устройството.

Друга полезна функция би бил индикатор за батерията. В момента единственият индикатор, че устройството трябва да се презареди, е когато платката за управление на батерията прекъсне захранването. Би било лесно да свържете допълнителен аналогов вход за измерване на напрежението на батерията. Делител на напрежение дори няма да е необходим, тъй като напрежението на батерията винаги е по -малко от 5V.

Някои от тези идеи граничат с пълзене на функции, поради което не разработих софтуера повече.

Останалото зависи от вас!

Състезание за сензори
Състезание за сензори
Състезание за сензори
Състезание за сензори

Първа награда в конкурса за сензори

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