Оглавление:

JavaStation (полностью автоматическая кофеварка IoT с функцией самозаполнения): 9 шагов (с изображениями)
JavaStation (полностью автоматическая кофеварка IoT с функцией самозаполнения): 9 шагов (с изображениями)

Видео: JavaStation (полностью автоматическая кофеварка IoT с функцией самозаполнения): 9 шагов (с изображениями)

Видео: JavaStation (полностью автоматическая кофеварка IoT с функцией самозаполнения): 9 шагов (с изображениями)
Видео: №6 JAVA GUI JAVA АППЛЕТЫ 2024, Июль
Anonim
JavaStation (полностью автоматическая кофеварка IoT с функцией самозаполнения)
JavaStation (полностью автоматическая кофеварка IoT с функцией самозаполнения)
JavaStation (полностью автоматическая кофеварка IoT с функцией самозаполнения)
JavaStation (полностью автоматическая кофеварка IoT с функцией самозаполнения)
JavaStation (полностью автоматическая кофеварка IoT с функцией самозаполнения)
JavaStation (полностью автоматическая кофеварка IoT с функцией самозаполнения)

Целью этого проекта было создание полностью автоматической кофеварки с голосовым управлением, которая автоматически наполняется водой, и все, что вам действительно нужно сделать, это заменить посетителей и выпить кофе;)

Шаг 1. Введение

Вступление
Вступление

Поскольку это был мой второй мод кофе, я многому научился в процессе, в частности, что чем более сложную машину вы модифицируете, тем больше проблем / ошибок вы столкнетесь в повседневной работе. Предыдущая машина была простой старой кофеваркой с одним переключателем и реле.

Circolo (полностью автоматическая версия) - это топовая машина премиум-класса от Dolce Gusto. Мне пришлось потратить часы на поиск подходящей машины, потому что все остальные машины из этой серии использовали верхний механический рычаг для переключения между потоками холодной и горячей воды, как показано на рисунке.

Шаг 2: выберите подходящую машину

Выберите подходящую машину
Выберите подходящую машину

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

1, кнопка питания нажата

2, кнопка холодной воды нажата (она немедленно диспергирует воду в чашку)

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

Эта машина также может обнаруживать следующие ошибки:

Резервуар для воды пуст

Подстаканник не на месте

В обоих случаях индикатор питания будет мигать между красным и зеленым.

Шаг 3: Модификации оборудования

Модификации оборудования
Модификации оборудования

В этой статье я не буду подробно рассказывать о разборке и повторной сборке корпуса, потому что на YouTube есть видео об этом. Главный микропроцессор спрятан прямо под головной панелью, где находятся 2 переключателя. Котел находится в правой части корпуса отдельно от всего остального, панель насоса и источника питания - слева.

Кофеварка - это тяжелая среда для электроники, ни одна из сторон не подходит для интеграции схемы. Справа от котла больше места, но вы будете иметь дело с теплом, очевидно, контур не может касаться плиты котла или даже находиться рядом с ней. Я выбрал сторону источника питания / насоса, но здесь вам придется иметь дело с сильным резонансом, возникающим из-за работы мембранного насоса, который со временем может разрушить схему управления / привести к выскальзыванию проводов из их разъемов.

Панель источника питания не содержит ничего полезного, но может использоваться для вывода стабильного напряжения +5 В (еще один большой палец вверх для этой машины), который можно напрямую подключить к выводу VIN Arduino, минуя встроенный регулятор напряжения.

Краткий список оборудования (не полная спецификация, не включает основы):

  1. Полная автоматическая версия Dolce Gusto Circulo
  2. 4-канальный релейный модуль 5 В с оптопарой для PIC AVR DSP (я предлагаю использовать 4 реле с герконовым переключателем SIP-1A05)
  3. Arduino Micro (в будущем я предлагаю использовать SparkFun Pro Micro или новее)
  4. 2PCS 4n35 FSC Оптопары Фототранзистор
  5. Электромагнитный клапан 1/2 "для воды, воздуха N / C, нормально закрытый, 12 В постоянного тока
  6. Ультразвуковой модуль Датчик измерения расстояния HC-SR04 (купите дополнительные принадлежности, позже вы увидите, почему)
  7. 2 шт. Модуль датчика влажности дождя обнаружения дождя для Arduino
  8. 1 Xbee
  9. Фитинги для водоблоков (могут отличаться в зависимости от дома, лучше всего покупать в строительном магазине и собирать все вместе перед покупкой)

Шаг 4: Основные соединения и плата контроллера

Основные соединения и плата контроллера
Основные соединения и плата контроллера
Основные соединения и плата контроллера
Основные соединения и плата контроллера
Основные соединения и плата контроллера
Основные соединения и плата контроллера

Необходимо подключить следующие точки цепи:

1, горячая кнопка

2, холодная кнопка

3, красный светодиод

4, зеленый светодиод

5, кнопка включения основного питания

6, общий GND

К сожалению, я потерял свои заметки / фотографии о том, где их припаять на плате, но все можно легко отследить с помощью мультиметра (просто используйте режим проверки диодов, чтобы отследить провода). Пайка была не слишком сложной, подберите точки с SMD ножками и припаяйте туда провода.

Красный / зеленый светодиоды расположены рядом друг с другом на переключателе питания. Они нужны для определения состояний машины (включен, готов к приготовлению кофе (котел нагрелся), ошибка). Мне пришлось снимать их прямо с основной платы, потому что сложно повозиться с маленькой схемой вокруг переключателя питания.

Я использовал оптопары 4N35 для безопасного взаимодействия с Arduino и считывания состояний светодиодов. Первоначальная идея заключалась в том, чтобы использовать 5 из них и одновременно снимать показания и переключать элементы управления (сделать полностью бесшумную схему). К сожалению, этот чип не смог создать достаточно низкое сопротивление, чтобы имитировать нажатие кнопки, поэтому я был вынужден использовать реле. Я использовал стандартный 4-канальный релейный модуль, который у меня был под рукой, но если бы мне пришлось переделать этот проект, я бы просто использовал небольшие герконовые реле (SIP-1A05 Reed Switch Relay с внутренними обратными диодами), которые можно напрямую подключить к выходу Arduino. контакты (нагрузка ~ 7 мА), чтобы все можно было разместить на двухуровневой плате.

5 небольших кабелей можно легко проложить рядом со шнурами питания под платой питания.

Чтобы более эффективно использовать пространство в машине, я решил разделить электронику на 2 основные панели:

Слева находится основная плата управления, справа (то, что я называю коммуникационной платой) находится Xbee, и, хотя это не показано на картинке, 2 датчика воды (для обнаружения переполнения) зажаты позади него. Сверху часы реального времени (необязательно для безотказной работы:)) и 4-канальная релейная плата, занимающая место рядом с насосом внизу, завернутая в губку, также немного наклеенная для защиты от резонанса.

Что касается коммуникационной платы, я не стал делать печатную плату, просто использовал обычную макетную плату, потому что там мало что происходит. Он имеет 6 подключений к основной плате:

Vcc (5 В), GND, Xbee (TX), Xbee (RX), Датчик воды 1 (данные), датчик воды 2 (данные)

Шаг 5: Контроль потока воды и механизм заправки

Контроль потока воды и механизм доливки
Контроль потока воды и механизм доливки
Контроль потока воды и механизм доливки
Контроль потока воды и механизм доливки
Контроль потока воды и механизм доливки
Контроль потока воды и механизм доливки

Я разработал эту машину с учетом требований безопасности, чтобы злоумышленники / неисправности не могли нанести серьезный ущерб дому водой, поскольку машина была бы подключена как к крану, так и к Интернету 24/7. Это то, что делает следующая схема защиты 555 поверх соленоида.

Также обратите внимание, что соленоид работает от источника питания 12 В, который мне все же удалось втиснуть в нижнюю часть кофемашины рядом с платой насоса и реле. Чтобы не тратить энергию впустую, плата 4-канального реле переключает сеть 230 В напрямую на адаптер, который затем включает соленоид. Конечно, есть задержка выключения на пару микросекунд, которую вы должны рассчитать для коллапса магнитного поля как на соленоиде + на адаптере, так и при вытаскивании вилки.

Я использую стандартный разъем 3,5 мм для подключения внешнего водоблока с помощью длинного 3-метрового провода и трубы ПВХ небольшого диаметра, выходящей из блока, идущего к кофеварке.

В верхней части резервуара для воды просверливается отверстие для этой трубы, которая затем опускается на дно резервуара. Отмечу, что очень важно подавать трубу до дна сбоку, не проходя через середину и не мешая ультразвуковым датчикам.

После того, как соленоид включен, цепь автоматически отключится через ~ 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,4 ГГц в моем доме начал насыщаться из-за множества радиоустройств в этом диапазоне, что привело к тому, что Xbee вызвал какую-то повторную отправку на уровне радио, и данные были отправлены дважды (не всегда). Как только первая команда пришла на машины, функция xcomm () начала ее обрабатывать, однако вторая пришла сразу после того, как она ждала в буфере Xbees, а когда цикл закончился, она начала обрабатывать вторую команду. Чтобы обойти эту проблему, я ввел в код 3 порога, чтобы сделать невозможным приготовление более 1 кофе за 2 минуты. Также существует ограничение на CMSTAT, но чтобы не мешать управляющему коду C / Android, он просто подавляет ответы в течение 2 секунд.

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

Шаг 9: Соображения по поводу дизайна и заключительные мысли

После множества проблем, связанных с коммуникацией Xbee, я бы не рекомендовал Xbee для этого проекта. Либо используйте стандартное дешевое радио 433 МГц с VirtualWire и пониженным бит / с для стабильности, либо вставьте Raspberry PI Zero с подключением Wi-Fi непосредственно в кофемашину.

Как видно из даты, это старый проект, поэтому я прошу прощения за отсутствие мелких деталей, таких как соединение схемы управления с точными ножками на материнской плате. Этот проект требует определенного уровня технических знаний, чтобы сделать его самостоятельно. Если вы обнаружите какие-либо ошибки / проблемы или захотите внести свой вклад в это руководство, пожалуйста, дайте мне знать.

Программное обеспечение для управления, методы голосового управления - это еще одна часть, которая позволит приготовить кофе с помощью голосовой команды, даже не вставая с постели.

Я завершил документацию своей системы хранения воды (WasserStation) и обновил CoffeeControlCode до последней версии, которая также включает автоматическое пополнение. Если вы используете ту же машину для сборки, заправка будет работать безупречно (без каких-либо изменений кода), так как уровни воды были откалиброваны по резервуару для воды Circolo.

Рекомендуемые: