Съдържание:

JavaStation (Самозареждаща се напълно автоматична IoT кафемашина): 9 стъпки (със снимки)
JavaStation (Самозареждаща се напълно автоматична IoT кафемашина): 9 стъпки (със снимки)

Видео: JavaStation (Самозареждаща се напълно автоматична IoT кафемашина): 9 стъпки (със снимки)

Видео: JavaStation (Самозареждаща се напълно автоматична IoT кафемашина): 9 стъпки (със снимки)
Видео: Установка Sun Java Desktop 2003 на Virtualbox 2024, Юли
Anonim
JavaStation (Напълно зареждаща се напълно автоматична IoT кафемашина)
JavaStation (Напълно зареждаща се напълно автоматична IoT кафемашина)
JavaStation (Самозареждаща се напълно автоматична IoT кафемашина)
JavaStation (Самозареждаща се напълно автоматична IoT кафемашина)
JavaStation (Напълно зареждаща се напълно автоматична IoT кафемашина)
JavaStation (Напълно зареждаща се напълно автоматична IoT кафемашина)

Целта на този проект беше да се направи напълно автоматична кафемашина с гласово управление, която да се зарежда автоматично с вода и всичко, което наистина трябва да направите, е да смените клиентите и да изпиете кафето си;)

Стъпка 1: Въведение

Въведение
Въведение

Тъй като това беше вторият ми режим на кафе, научих много в процеса, по -специално, че колкото по -сложна машина модифицирате, толкова повече проблеми/грешки ще срещнете по време на ежедневната работа. Предишната машина беше просто обикновена стара кафемашина с 1 превключвател с реле.

Circolo (напълно автоматична версия) е върхът на премиум машината на Dolce Gusto. Трябваше да прекарам часове в търсене на подходящата машина, защото всички останали машини от тази серия използват горния механичен лост за превключване между потоци студена и гореща вода, както е показано на снимката.

Стъпка 2: Изберете правилната машина

Изберете правилната машина
Изберете правилната машина

Моята базова машина не е просто напълно автоматична, но има забележителни функции като автоматично изключване след 5 минути и запомняне на последното количество кафе (което ще направи нещата много по -лесни по -късно при модифицирането). Основната работа на машината:

1, бутонът за захранване е натиснат

2, бутон за студена вода е натиснат (той веднага ще разпръсне водата в чашата)

3, бутонът за гореща вода е натиснат (той ще загрее котела ~ 20-60 сек и ще започне да отделя гореща вода към чашата) Индикаторът за захранване ще мига в червено през периода на готовност, след което ще свети постоянно в зелено, когато котелът е готов.

Тази машина също има възможност да открива следните грешки:

Резервоарът за вода е празен

Поставката за чаша не е на място

И в двата случая индикаторът за захранване ще мига между червено/зелено.

Стъпка 3: Хардуерни модификации

Хардуерни модификации
Хардуерни модификации

В това писане няма да описвам подробно разглобяването и сглобяването на случая, защото има видеоклипове за това в YouTube. Основният микропроцесор е скрит точно под панела на главата, където са 2 -те превключвателя. Котелът е от дясната страна на корпуса отделен от всичко останало, помпата и захранващият панел са от лявата страна.

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

Захранващият панел не съдържа нищо полезно, но може да се използва за извличане на стабилен +5V (още един палец нагоре за тази машина), който може да бъде директно свързан към VIN щифта на Arduino, заобикаляйки регулатора на напрежението на борда.

Бърз списък с хардуер (не пълна спецификация, не включва основи):

  1. Dolce Gusto Circulo пълна автоматична версия
  2. 5V 4-канален релеен модул с оптрон за PIC AVR DSP (предлагам да се използва 4x SIP-1A05 Reed Switch Relay)
  3. Arduino Micro (предлагам да използвате SparkFun Pro Micro или по -нови в бъдеще)
  4. 2PCS 4n35 FSC оптрони Фототранзистор
  5. 1/2 "електрически електромагнитен клапан за воден въздух N/C нормално затворен DC 12V
  6. Ултразвуков модул HC-SR04 Сензор за измерване на разстоянието на датчика (купете някои екстри, ще видите по-късно защо)
  7. 2бр. Модул на сензор за откриване на влажност на дъждовна капка Откриване на дъжд за Arduino
  8. 1 Xbee
  9. Тръбна арматура за водни блокове (може да варира в зависимост от къщата, най -добре е да я закупите в железария и да я съберете там, преди да купите)

Стъпка 4: Основни връзки и платката на контролера

Основни връзки и платката на контролера
Основни връзки и платката на контролера
Основни връзки и платката на контролера
Основни връзки и платката на контролера
Основни връзки и платката на контролера
Основни връзки и платката на контролера

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

1, горещ бутон

2, Бутон за студено

3, червен светодиод

4, Зелен води

5, Бутон за основно включване

6, споделен GND

За съжаление съм загубил своите бележки/снимки къде да ги запоя на дъската, но всички могат лесно да бъдат проследени с мултицет (просто използвайте диоден режим за тестване, за да проследите кабелите обратно). Запояването не беше твърде трудно, изберете точки с SMD крака и запоявайте проводниците там.

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

Използвах оптроните на 4N35 за безопасно взаимодействие с Arduino и прочетох състоянията на LED. Първоначалната идея беше да се използват 5 от тях и да се направят както показанията, така и контролите за превключване (направете напълно безшумна верига). За съжаление този чип не можа да генерира достатъчно ниско съпротивление, за да подражава на натискането на бутон, така че бях принуден да използвам релета. Използвах общия 4-канален релеен модул, който имах в ръка, но ако трябваше да преработя този проект, просто щях да използвам малки релейни релета (SIP-1A05 Reed Switch Relay с вътрешни диоди за прелитане), които могат да бъдат директно свързани към изхода на Arduino щифтове (~ 7mA натоварване), така че всичко може да бъде поставено на двустепенна структура на дъската.

5 -те малки кабела могат лесно да бъдат свалени до захранващите кабели под платката за захранване.

За да използвам пространството по -ефективно в машината, реших да разделя електрониката на 2 основни панела:

Лявата е основната контролна платка, дясната (това, което наричам комуникационна платка) държи Xbee и въпреки че не е показано на снимката, 2 -те сензора за вода (за откриване на преливане), притиснати зад него. Най -отгоре часовникът за реално време (по избор за ъптайм:)) и 4 -каналната релейна платка, която заема мястото си до помпата отдолу, увити в гъба, също залепени малко, за да се предпазят от резонанса.

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

Vcc (5V), GND, Xbee (TX), Xbee (RX), сензор за вода1 (данни), сензор за вода2 (данни)

Стъпка 5: Контрол на водния поток и механизмът за зареждане

Контрол на водния поток и механизмът за зареждане
Контрол на водния поток и механизмът за зареждане
Контрол на водния поток и механизмът за зареждане
Контрол на водния поток и механизмът за зареждане
Контрол на водния поток и механизмът за зареждане
Контрол на водния поток и механизмът за зареждане

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

Също така имайте предвид, че соленоидът работи от 12V захранване, което все пак успях да притисна в дъното на кафе машината до помпата и релейната платка. За да не губите енергия, 4 -каналната релейна платка превключва 230V захранването директно към адаптера, който след това ще включи соленоида. Разбира се, има няколко микросекундно забавяне на изключването, което трябва да изчислите за срутването на магнитното поле както на соленоида + на адаптера при издърпване на щепсела.

Използвам стандартен 3,5 мм жак за свързване на външния воден блок с дълъг 3м проводник и PVC тръба с малък диаметър, излизаща от блока към кафеварката.

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

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

Ако това все още не е достатъчно добро за вас или е невъзможно да затворите водата или не искате да се занимавате с водни блокове, разгледайте моя проект WasserStation, който е създаден точно за това, за да разшири малкия резервоар за вода на кафе машината.

Стъпка 6: Откриване на наводнения

Откриване на наводнения
Откриване на наводнения
Откриване на наводнения
Откриване на наводнения
Откриване на наводнения
Откриване на наводнения

Има 2 допълнителни сензора за вода за защита:

  • Сензор1: в задната част на резервоара за откриване на преливане от резервоара
  • Сензор2: в долната част на кафе машината за откриване на препълване на чаши

И двата сензора ще задействат прекъсване, което незабавно изключва водата, включва светлината за грешка и ще прекъсне изпълнението на програмата, за да предотврати атака като правене на милион кафета и заливане на къщата по този начин. След затваряне на програмата машината вече няма да реагира на нищо и трябва да бъде ръчно задействана.

В случай, че се чудите какво би станало, ако ултразвуковият сензор се наводни (това се случи веднъж:))

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

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

Стъпка 7: Тестване и окончателно сглобяване

Тестване и окончателно сглобяване
Тестване и окончателно сглобяване
Тестване и окончателно сглобяване
Тестване и окончателно сглобяване
Тестване и окончателно сглобяване
Тестване и окончателно сглобяване

Машината в последното си състояние, почти напълно скрива следите от всяко хакерство и ако 3 -те светодиода на индикатора за състоянието и USB портът за отстраняване на грешки нямаше да бъдат там, не можете да кажете, че нещо друго се случва вътре, докато може дори да има свързан Wi -Fi Quake сървър:)

Когато променям устройства, винаги държа ръчната употреба като основен приоритет. След хакването машината е напълно използваема от всеки, както е била, с изключение на резервоара за вода, който не може лесно да се извади. Освен ако не завършите цялостната част от дизайна за автоматизация на водата, машината може да се напълни само в този момент с малка комбинация тръба + фуния.

Стъпка 8: Код за контрол на кафето

Код за контрол на кафето
Код за контрол на кафето

Намерете пълния изходен код на Arduino, приложен по -долу.

Кратко обяснение на кода:

Основният цикъл извиква функцията xcomm (), отговорна за обработката на командите, приготвяне на кафе, включване/изключване на машината.

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

Командите могат да се изпращат през Xbee или през USB порта (отстраняването на грешки трябва да бъде активирано в началото). Когато комуникацията дойде от оранжевия светодиод мига за секунда, за да покаже активността на мрежата. Прилагат се следните команди:

1, CMSTAT - статистика на заявките от машината

Машината съхранява статистика за това колко горещо/студено/ръчно кафе е направено, а също така получава време за работа от RTC, което не прелива след 3 пъти, така че може да продължи до години: P

2, CMWSTART - започва приготвянето на кафе и топли напитки с гореща вода

3, CMCSTART - започва да прави леден чай и студени напитки със студена вода

Топлите и студените процеси започват с извикване на функцията standby (), която извършва допълнителни проверки, след което задейства натискането на бутона за захранване. След това програмата изчаква зелената светлина (когато котелът се нагрява), след което емулира натискането на бутон горещо/студено. След това изчаква 50 секунди (което е повече от достатъчно дори за най -голямата чаша кафе), след което изключва захранването. Това дори не би било необходимо, тъй като тази отлична машина ще се изключи автоматично 5 минути след приготвянето на кафето, но защо да губите енергия? Между другото, консумацията на енергия в режим на готовност на машината дори след модификацията е по -малка от 2 вата.

Зареждане с вода и сигурност

Тази машина е проектирана с оглед на сигурността, така че би било невъзможно нападател, който получи контрол, да залее цялата къща с вода. Хардуерна повреда също няма да доведе до сериозни щети. До хардуерните сензори има защити, вградени в кода за зареждане. Брояч, който задейства рутинната ISR, ако машината не се зарежда отново за x секунди (това например може да се случи, ако ултразвуковият сензор се повреди и даде 20% след x секунди, след като зареждането започне).

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

Грешки

Двойна грешка в кафето: най -дразнещото в тази грешка е, че тя започна да се случва няколко месеца след използване на машината със същия код. След като командата за кафе беше издадена, тя направи кафето, изключи и включи отново и продължи да прави още 1 кафе със същия покровител.

Трябваше да започна отстраняване на грешки в дублирането на командите от нивото на Android, защото съм реализирал повторно изпращане до кода в случай на загуба на пакет. Оказа се, че нито android, C софтуерът за управление или ядрото на Linux на raspi2 не са отговорни за това, а за Xbee.

След издаване на ехо “CMCSTART”>/dev/ttyACM0 на контролния възел той излиза два пъти до другия край. Заключих, че моят 2.4Ghz спектър в дома ми започна да се насища от многото радиоустройства в този диапазон, което накара Xbee да предизвика някакво повторно изпращане в радиослоя и данните бяха изпратени два пъти (не винаги). След като първата команда дойде в машината, функцията xcomm () започна да я обработва, но втора влезе точно след това, което чакаше в буфера Xbees и когато цикълът завърши, започна обработката на втората команда. За да заобиколя този проблем, въведох 3 прага в кода, за да направя невъзможно да се направи повече от 1 кафе за 2 минути. Също така има ограничение за CMSTAT, но за да не се намесва в контролния код на C/Android, той просто ще смаже отговорите за 2 секунди.

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

Стъпка 9: Съображения за проектиране и заключителни мисли

След много проблеми с комуникацията с Xbee не бих препоръчал Xbee за този проект. Или използвайте стандартното евтино 433Mhz радио с VirtualWire и понижени Bps за стабилност, или вградете Raspberry PI Zero с Wifi връзка директно в кафемашината.

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

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

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

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