Arduino сумісний контролер ванни: 13 кроків (із зображеннями)

Arduino сумісний контролер ванни: 13 кроків (із зображеннями)

Зміст:

Anonim

Почнемо з попередження: цей проект керує водою. Електрика і вода дійсно не змішуються і існує реальний ризик ураження електричним струмом і / або смерті, якщо ви не будете обережні. Створіть цей проект на свій страх і ризик, і я не буду нести відповідальності за тих, хто будує це. переконайтеся, що ви використовуєте батарею для живлення цього НЕ трансформатора мережі будь-якого роду. просто бути розумним і бути в безпеці.

Будь-які збитки / пошкодження, завдані впровадженню інформації в цій публікації, є виключною відповідальністю кінцевого користувача, я не можу нести ніякої відповідальності.

Що це? це ардуїно сумісний (ATMEL 328p) домашній контролер ванни.

цей контролер встановлює глибину, додає бульбашки і контролює температуру ванни на основі профілю користувача. v2.5 підтримує Інтернет речей, але не повністю реалізований.

Але чому? Ну чому б і ні? коли-небудь хотіли мати ванну готову на дотик кнопки або з вашого смартфона (скоро)?

Ну тепер можна.

В основному це Arduino сумісна плата, яка перемикає 3 реле, контролює вхідну температуру з DS18b20, Temp ванни з другою платою Arduino сумісно віддалено через 434mhz і додає ванну міхура через зламаний автоматичний дозатор мила. Версія 2.5 матиме підтримку wiznet Ethernet.

Цей проект був у Maker Faire NC 2013 & 2014 і був хітом.

Ось відео від компанії Maker Faire NC 2013, де ми мали повну демонстрацію розміру:

це також мій перший інструктор.

Постачання:

Крок 1

Основна Рада:

Частини проходять через отвір

• 1x 328p Atmega з завантажувачем arduino

1x DS18B20 Я використав таке:

www.adafruit.com/products/381

1x 434mhz приймач: http: //www.sparkfun.com/products/10532

2x 10k резистор

2x 100ohm резистор

3x 2.2k резистор

1x 4.7k резистор

3x 1n4001 Діод (полярність годинника)

3х транзисторів n2222

1x 5мм світлодіод (я використовував білий, але будь-який колір буде робити) - Додатковий світлодіод

4x 0.1uf конденсатори

1x 1000uf конденсатор (полярність годинника)

1x Роз'єм живлення 2.1мм

1x 16mhz резонатор:

3-кратні ретранслятори 5 В (у цей час використовуються лише 2)

1x LM7805 5v регулятор з радіатором

1x зумер:

багато заголовків 0.1inch Break Away

декілька жіночих заголовків 0.1inch

Спеціальні PCB (див. Файли)

1x 12v заповніть клапан, якщо використовуєте насос, слід використовувати додаткові запобіжні заходи. * Я використовував щось подібне до цього:

http: //www.ebay.com/itm/1-2-12VDC-Hose-Barb-Electr …

Качка:

резистори і конденсатори SMD805 !!

• 1x 328p Atmega з завантажувачем arduino

1x 434 МГц передавач: http://www.sparkfun.com/products/10534

• 5x 10k резистор SMD805

• 4x 0.1uf конденсатор

2x BC547

• 1x 16mhz резонатор:

1x Custom PCB

1x Duckym Clothure Duckymeter:

декілька жіночих заголовків 0.1inch


Інші частини:

• 12v герметична свинцево-кислотна батарея

Програміст FTDI я використав цей:

1x Lysol No-Touch Автоматичний дозатор мила для рук:

обтискні з'єднання для клем акумуляторів та насосів

• Вбудований плавкий запобіжник http://amzn.com/B0002KR88A Я поставив 5 мін.

• гніздо бочки 2,1 мм

Dupont кабелі для виготовлення проводів: http: //goo.gl/vfFXOA

Щит Adafruit i2c lcd з кнопками: http: //www.adafruit.com/products/714

3x водонепроникні кнопки:

Додаток (я включив файли для лазерного різання, але зверніть увагу, що він не є водонепроникним)

ДОДАТКОВІ: Arduino Ethernet Sheild

ДОДАТКОВИЙ: Витратомір: http: //goo.gl/Mr3Por

ПРИМІТКА: PCB і код ОК зараз!

Сліди друкованої плати не достатньо товсті, щоб обробляти насос, тому вам потрібно буде додати додатковий дріт, щоб переконатися, що це нормально.


Крок 2: Головний контролер

Характеристики:

  1. Atmel 328p з заголовками FTDI
  2. 3 релейних виходи (заповнюючий клапан / насос, дозатор мила, стопорний клапан / насос)
  3. Щит екрана Adafruit (i2c)
  4. Приймач 434 МГц для пульта дистанційного керування в термокабі
  5. Шина 1-wire для датчика температури ds18b20 для моніторингу вхідної температури
  6. вилки для Ethernet і витратоміра (v2.5 ще не реалізовано)
  7. Може управляти клапанами 12v безпосередньо
  8. Лазерне вирізання корпусу
  9. Користувальницькі PCB

Це головний контролер для цього проекту.

Вона дозволяє вибрати профіль і запустити ванну.

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

як тільки ванна буде готова, вона подасть звуковий сигнал, щоб ви знали, що є також низький темп автоматичного відключення.

Крок 3: Качка

Характеристики:

1. Atmel 328p з заголовками FTDI

2. 434-мегагерцовий передавач для пульта дистанційного керування у ванні, що вимикає качку з полиці

3. Автоматичне зондування води для економії батарей (версія 2.5 ще не реалізована)

4. Водонепроникний, використовує батареї aaa

5. Користувальницькі PCB

В основному ви хочете, щоб видалити внутрішні з качки, підключити датчик температури і датчики води до користувальницької друкованої плати, а потім запечатати все назад знову.

качка є віддаленим датчиком температури для ванни. вона передає темп кожну секунду назад до основного блоку.

зверніть увагу, що поточний код не має вимикання, тому батареї тривають лише тиждень. це буде виправлено у версії 2.5

Крок 4: Зламайте мильницю

Таким чином, це була одна з найпростіших, але найхолодніших частин проекту.

Мені потрібен був спосіб видалення мила, але я не хотів будувати все це з нуля, тому я купив один з цих дешевих дозаторів:

як це працює, це фототранзистор і ІЧ-світлодіод. коли промінь розбивається рукою, він видає мило.

Те, що мені треба було зробити, було імітувати рух рук. Найкращим рішенням було просто керувати ІЧ-провідником з реле (зауваживши, що він видав лише одну кількість мила на спусковий гачок і не скидався, поки він знову не засвітився).

Для цього просто розведіть її, знайдіть дріт, що йде до верхнього світлодіода, і виріжте один з двох проводів. Я вивів це на роз'єм, який підключається до головного контролера. Зробіть маленьку дірку в спині, і ви зробили !!

Останній крок полягає в тому, щоб просвердлити отвір у мильничному картриджі, щоб ви могли використовувати будь-яку мило / міхурну ванну.

Додатковий кредит:

якщо ви робите перемичку для роз'єму, ви навіть можете відновити його, щоб працювати так, як це було легко!

5. Етч або замовлення плати

Не збираюся робити повний навчальний посібник тут, тут є два хороших з методами, які я використовував раніше:

Опір фото:

http: //www.instructables.com/id/How-to-make-a-prin …

Перенесення тонера з ламінатором:

www.instructables.com/id/How-to-Etch-a-PCB/

особисто зараз я використовую метод ламінатора з сумішшю HCL + перекис водню. Тільки будьте обережні при використанні цих хімікатів.

Я висвердлював отвори для друкованих плат з Dremel Pillar / bench-press і долотами зі швидкорізальної сталі.

Замовити дошки:

Я також використав цей китайський виробник PCB з великими результатами це просто займає більше часу:

www.seeedstudio.com/service/index.php?r=site/pcbService

Додатковий кредит:

Я використовував Grafix Rub Onz, щоб зробити шовковий екран. це стало набагато простішим для заповнення дощок, і це теж виглядало чудово:

Інший метод, який я використовував тут, полягає у використанні лазерного різака для травлення верхньої сторони друкованої плати. це спрацювало добре, але вирівнювання було складним.

Крок 6: Заповнюйте плати

Заповнюйте дошки за допомогою BOM, як показано.

Зображення показують домашню дошку і професійно виготовлену дошку.

Як звичайно починають з менших компонентів 1, а потім працюють до найбільших.

Завжди використовуйте роз'єм для мікросхем і приймач 434 МГц, оскільки ви, ймовірно, пошкодите частину, якщо ви повинні її видалити.

Крок 7. Завантажте код тесту

Використовуючи ваш FTDI і Arduino IDE, завантажте цей тест-ескіз до плати.

Він повинен щебетати зумер і тестувати кожне реле, щоб переконатися, що все працює нормально.

Регулятор напруги потребує радіатора, але просто перевірте, щоб переконатися, що він не стає занадто гарячим.

РК-дисплей також повинен засвічуватися під час виконання тесту.

Вам знадобляться такі бібліотеки:

Wire.h

Adafruit_MCP23017.h

Adafruit_RGBLCDShield.h

avr / wdt.h

OneWire.h

DallasTemperature.h

Ethernet.h

SPI.h

MemoryFree.h

VirtualWire.h

Крок 8: Як відкалібрувати таймер заповнення

Вам потрібно буде налаштувати параметри ванни, оскільки всі ми витісняємо різну кількість води (в основному)

детальніше про переміщення тут (іронічно це було виявлено у ванні):

http: //en.wikipedia.org/wiki/Displacement_%28fluid …

Коли ми говорили про переміщення, потрібно час, скільки часу потрібно, щоб наповнити ванну на правильну висоту для кожної людини.

для цього вам знадобиться олівець, секундомір або секундомір.

як ми це робимо:

  1. заповнити ванну вручну
  2. залазь
  3. нехай вода виходить з ванни, поки не буде потрібна глибина (я люблю її трохи нижче переповнення)
  4. забирайся
  5. чекати, поки вода осідає
  6. позначте висоту води на стороні ванни за допомогою олівця.
  7. порожню ванну
  8. час, скільки часу потрібно, щоб заповнити позначку олівцем
  9. перетворити це в секунди і ввести його в код.

    Якщо ви налаштовуєте більше одного профілю, якщо ви починаєте з найменшої особи 1, ви можете зробити позначку висоти для кожної людини, не випускаючи воду.

Крок 9: Завантажте повний код!

Вже незабаром з'явиться GitHub, але до цього скористайтеся доданим кодом.

Як це використовує терміни ви повинні розробити, як довго потрібно, щоб заповнити ванну на правильну висоту для вас (не в стік, коли повне, що б стічні води).

ця інформація переходить до таких змінних:

інша частина, що має значення, - це цільова та попереджувальна темпи. (мої темпи у F)

// це темп оповіщення 95.00 для введення. F

// це - цільова температура у ванні.

що робить код моніторингу вхідної температури, і якщо вона перевищує темп оповіщення, то повертається вниз нижче він зупинить заповнення та щебечуть зумер.

Цей код також використовує сторожовий таймер як захист від його переповнення, якщо збій коду.

Крок 10: Додатки

Тут є кілька варіантів.

  1. Лазерна різана деревина або акрил
  2. Нормальний корпус потім просвердлюють / розрізають отвори.

Особисто я віддаю перевагу маршруту лазерного різання, але не всі мають доступ до лазера.

Я додав шаблон для лазерного вирізу, який можна використовувати. зверніть увагу, що я бачив деякі РК-дисплеї різного розміру, так що виходи можуть бути небагато.

ПРИМІТКА: це буде використано біля води, НІ НІКОЛИ. Тому прийміть це до уваги при виборі типу корпусу.

Я вибрав водонепроникні кнопки, але дерев'яний корпус, який буде пошкоджений водою. Я все ще працюю на хорошому корпусі, який є більш водостійким.

Крок 11: Сантехніка

Зверніть увагу на це на свій страх і ризик. Електроенергія та вода потенційно можуть убити вас. НІКОЛИ не використовуйте 110v / 220v біля води.

Я використовую 12V акумулятор для запуску пристрою, так що існує набагато менше ризику нічого поганого відбувається, але знаю, що є ризик.

У моїй поточній установці я використовував 12-вольтовий клапан NC, 2 лінії живлення, підключені до адаптера для аератора до змішувача.

це дозволяє використовувати цей інструмент без видалення ванни. Кожна інсталяція буде іншою, тому деталі для вас можуть бути різними.

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

Частини скоро з'являться

Крок 12: Майбутні можливості: IoT Etc …

Таким чином, ви могли помітити, що на платі розташовані заголовки Ethernet і Flowmeter і Drain.

це майбутні заплановані функції, які ще не впроваджені, але за ними йшла теорія:

Ethernet:

це працює (іноді)! покладіть щит Ethernet на ці контакти (необхідно схематичне) і налаштувати код, і у вас є IoT.

питання, здається, пов'язане з відсутністю Ram в arduino і як я зробив свій код. Мені вдалося зробити її річ, і вона працювала, але вона була досить ненадійною. майбутні випуски кодів сподіваються виправити це.

Автоматизація будинку:

Планується, що як тільки це буде на Ethernet, щоб мати можливість контролювати його через Homeseer (www.homeseer.com) або будь-якої іншої платформи домашньої автоматизації.

Витратомір:

Я додав підтримку для витратоміра ефекту залу. Чесно кажучи, метод часу працює відмінно, тому я ніколи не відчував необхідності зробити цю роботу, але всіма засобами дати йому спробу.

Клапан зливу:

Це одне легко, план полягав у використанні нормально відкритого клапана (що означає, що клапан відкритий до подачі живлення, що дуже відрізняється від заповнювального клапана, який нормально закритий) на стоку. Це буде закрито, коли ванна буде запущена і знову відкрита, коли ви закінчите. Я ніколи не реалізовував це, оскільки мені знадобився доступ до стоку ванни, який вимагав би видалення ванни, що неможливо в цей час.

Крок 13. Це завершує навчальний посібник.

Це завершує навчальний посібник. Я працюю над цим проектом з 2011 року, і я дуже радий поділитися ним зі світом.

Ви можете слідувати за моєю іншою роботою тут:

Я хотів би подякувати всім за підтримку. це велика честь виграти ці змагання!

Гран-прі в Росії

Конкурс дистанційного керування

Перша премія в Росії

Домашній конкурс технологій