Список покупок

    Описание


    У меня всегда неожиданно заканчиваются продукты. Казалось, ещё вчера был стратегический запас пива, а сегодня его уже нет. Ну и, конечно, когда обнаруживаешь, что чего-то не хватает, под рукой нет ни телефона, ни записной книжки. Не удивительно, поскольку дело обычно происходит на кухне в самый разгар готовки.

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

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



    Демонстрация работы





    История напоминалки


    Я не первый, кто придумал вешать список покупок на стену. Примерно такую же штуку использовали в начале XX века в Америке. Хозяйка отмечала, что кончилось, вставляя колышки в отверстия перед названием продукта. Помощники по кухне покупали необходимое и доставали колышки. Эти напоминалки выглядели примерно так:


    Я понял, что мне совершенно необходимо перенести эту идею в XXI век, и я принялся за дело.

    Архитектура системы


    Система состоит из трёх компонентов:
    1. Доска с кнопками
    2. Сервер, обрабатывающий запросы
    3. iOS приложение

    При нажатии кнопки доска шлёт запрос на сервер. Сервер сохраняет состояние и использует Apple Push Notifications, чтобы оповестить приложение. Приложение запрашивает состояние с сервера и отправляет туда обновления о купленных продуктах. Каждые 5 минут доска обновляет свое состояние с сервера.

    Доска с кнопками

    Основа системы – микроконтроллер STM32F051. Я использую именно его из-за простоты подключения и работы.
    В качестве Wi-Fi модуля я выбрал RN-XV WiFly. Этот модуль чрезвычайно просто программировать и использовать: всё, что надо, это питание, сброс и UART подключение.
    На доске установлено 35 кнопок без фиксации (то есть, кнопка пропускает ток, только пока держишь палец). Каждая кнопка содержит небольшой светодиод.

    Я использовал кнопки TL1265. Каждая кнопка подключаласть через отдельный транзистор. Это было необходимо, чтобы не превышать максимальную силу тока регистров сдвига:


    Кнопки (и их светодиоды) подключены с использованием регистров сдвига. 74HC165A для считывания состояния кнопок:


    74HC594 для управления светодиодами:


    К сожалению, бесплатная верия программы Eagle CAD накладывает ограничение на размер одной схемы. Так что пришлось делать несколько небольших схем с кнопками, основной управляющий модуль и связывать всё это проводами:


    С другой стороны основной слой выглядит вот так:


    Раньше я травил схемы дома, но на этот раз решил заказать в компании OSH Park. Схемы были изготовлены за 10 дней. К качеству претензий нет:


    В доме валялось довольно много старых транзисторов и резисторов, устанавливаемых в сквозное отверстие, почти все ушли на этот проект:


    Сервер, обрабатывающий запросы

    Пожалуй, это было самой простой частью. Сервер написан на PHP, использует MySQL для хранения состояния и stream_socket_client('ssl://gateway.sandbox.push.apple.com:2195', ...) для отсылки Apple Push Notifications.

    iOS приложение

    Тут тоже ничего сложного. Два экрана, один с закончившимися продуктами, другой с полным списком:



    Сборка корпуса


    Мне очень нравятся аккуратные корпуса любительских проектов. Основой корпуса для этого проекта послужила обычная фоторамка. Сплошное стекло пришлось заменить вырезанным на заказ прозрачным пластиком:


    С надписями дело было сложнее. Мне никак не удавалось либо аккуратно подписать, либо аккуратно вырезать отвестия для кнопок. В результате я нашел, как мне кажется, весьма изящное решение. Используя лазерный резак, я сначала проделал отверстия для кнопок. Потом, на меньшей мощности, вырезал борозды для букв. Я залил борозды, используя перо и белые чернила. Вот процесс работы:


    Таким образом у меня получилось три слоя:



    Результат


    Вот, что получилось в результате:



    Вот, как это смотрится в комнате:


    Я буду рад ответить на любые вопросы про эту штуку. Также было бы здорово услывать мнения о том, что можно улучшить, на что следует обратить внимание.

    В любом случае, теперь я уверен, что с такой штукой стратегический запас пива в моем холодильнике не иссякнет!
    Share post
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 88

      +9
      А если понадобится расширить список?
      Почему бы сразу не рассмотреть вариант с тачскрином (исключая стоимость изделия)?
        +16
        Я думал об этом, однако остановился на тёплых ламповых кнопках. А если придётся расширить, то повешу рядом ещё одну рамку.
          +24
          Еще одна рамка, выпадающая из-под первой при нажатии «Other».
          Продавать не думаете? Кикстартер или еще как. Определенно, будет пользоваться спросом.
            0
            Плавно выезжающая на бесшумных моторах. На худой конец на пневматике со звуком пш-ш-ш… (но тогда потребуется редизайн под стимпанк).
              +1
              «Other» — выпадающий пш-ш-ш… тачскрин
                0
                Не забыть встроить дымогенератор тяжёлого дыма для пущего муара. Светодиодиками в этот момент зазывно мерцать…
              +5
              Поддержу автора:
              * Решение выглядит весьма привлекательно (хорошее исполнение, красивая рамка). Это дает возможным использовать в хорошем интерьере, а не только в «берлоге гика».
              * На рамку можно смотреть с любой стороны, при любом освещении. У дешевого же планшета будут плохие углы, плохая цветопередача.
              * Кнопки гораздо меньше подвержены залапыванию на кухне.

              В плане улучшений – было бы здорово подумать над возможностью обновления списка. Возможно, сделать кнопки и надписи съемными плашками. И да, можно на кикстартер будет тогда) Я бы воспользовался.
                +13
                Думаю, что попользуюсь этой штукой пару месяцев. Если окажется удобно, то, может сделаю вторую версию с оглядкой на заменяемые плашки и кикстартер. По-моему никто такого ещё не делал.
                  +2
                  Сейчас у дешевых китайских планшетов (до 150-200$ за 10") уже имеются IPS экраны с углами обзора до 170-178 градусов почти без потерь. На маленькой яркости будет выглядеть очень достойно.
                  Второй вариант — взять электронную книгу типа B&N с тачскрином на андроиде — будет очень круто, правда размер поменьше
                  Заляпывание на планшете может будет и больше, но зато протереть его намного проще. В этом варианте будет забиваться грязь под множество отверстий и переходов между слоями
                    +1
                    Стилусы для емкостных экранов тоже существуют.
                +2
                Менять-расширять можно сделать шильдиками, которые держатся на магнитах, например.
                +1
                Я использую вот такой блокнот (http://www.knockknockstuff.com/catalog/categories/pads/kk-pads/all-out-of-red-pad/) с отрывными листами и магнитной задней обложкой который висит на холодильнике.
                Здесь, продукты сгруппированы по типам (отделам продуктового магазина) и это удобно не только для совершения покупок, но и для того чтобы «вспомнить» что еще нужно приобрести.
                  0
                  На холодильнике — небольшая whiteboard с маркером куда записывается что нужно купить. Перед походом в магазин просто делаю снимок на телефон, и в магазине ищу продукты подглядывая в фотку на телефоне. Дополнительный плюс — можно писать заметки и напоминалки для сожителей.
                    0
                    Уже наверно лет 10 как сделал себе в ворде список в виде таблицы. На А4 помещается 2 экземпляра. Напечатал х штук, разрезал пополам и повесил на холодильник.
                    +3
                    Сначала подумал, что перевод, а потом глянул профиль автора. Штаты)
                      0
                      Чорт, пожалуйста, укажите на ошибки.
                        +5
                        Я тоже когда увидел
                        Раньше я травил схемы дома, но на этот раз решил заказать в компании OSH Park. Схемы были изготовлены за 10 дней. К качеству претензий нет
                        подумал что для России это фантастика.
                          +1
                          А как сейчас делают схемы? Только дома, или можно где-нибудь заказать?
                            +2
                            Заказать-то уже не проблема. А вот 10 дней — это фантастика.
                              0
                              Резонит делают за 10 дней вполне
                                0
                                Резонит срочное производство быстрее недели. Да и не срочное делают за неделю, главное что-бы вы по классу им подошли.
                                  +1
                                  Да ну?

                                  От 3-х дней. Правда, в большинстве случаев с доплатой за срочность. Максимальный срок две недели, что немногим больше 10 дней.
                                    0
                                    Не такая уж там большая доплата. У меня все равно получается, что наибольшая часть денег идет на подготовку производства (цена которой постоянная и не зависит от размера платы и объема партии), на фоне чего деньги за кв. дм. платы просто теряются.

                                    Зато произвести могут за 3 дня. А если прямо свербит — можно «суперсрочно», за день.
                              0
                              Стиль текста другой какой-то. Я тоже до вашего первого комментария думал что перевод
                            0
                            Стильно получилось, но вот между кнопками желательно что-нибудь проложить, чтобы исключить паразитную заветку
                              0
                              К сожалению я заметил эту багу довольно поздно. Похоже, придётся заказать какую-нибудь картонку, чтобы исключить засветку.
                                +9
                                Можно толстым чёрным скотчем проложить бортики



                                заказать какую-нибудь картонку
                                Сурово у вас там в США :)
                                  0
                                  Хм, хорошая идея про чёрный скотч, обязательно попробую.
                                0
                                ну так же намного теплее и ламповее! =)
                                +8
                                А я сначала подумал, что это какой-то дешёвый китайский планшет висит и приложение для него. А оказалось всё хитрее :)
                                  0
                                  Супер получилось!

                                  Можно попытаться «облегчить» конструкцию убрав ключи и регистры, используя чарли-плексинг и ШИМ.

                                  Что касаемо кнопок — то тоже можно применить одну хитрость — можно использовать линию АЦП в качестве шины — туда подключены кнопки через различные резисторы и питание — т.е. через один провод можно подключить кучу кнопок.
                                    0
                                    Спасибо.

                                    Я смотрел на эти техники. Серия резисторов – очень хорошая идея, думаю, попробую в следующий раз. Интересно, как такие проблемы решают «взрослые» производства. То есть, на сколько чарли-плексинг используется в настоящих устройствах.
                                      0
                                      Используется очень часто в светотехнике. В ней вполне. Особенно любят эту технику братья из Китая.

                                      Там где нужна надежность и бесперебойность — лучше все-таки по старинке, но это мое мнение.
                                        0
                                        По-старинке, это с использованием регистров сдвига?
                                          0
                                          Ну да, т.е. используя дискретные компоненты, или еще как принято говорить «без шаманства» :-)

                                          Но в светотехнике все эти хитрости как раз наоборот «во благо» хотя-бы из-за того, что жрется гораздо меньше энергии из-за ШИМ, меньше компонентов — меньше потерь на них, ну а в плане надежности там не драконовские условия эксплуатации — по этому вполне приемлемо + конечно меньше корпусов — более прозрачная и дешевая схема.

                                          Единственная угроза, которая там может быть — это если процессор завис и оставил в этот момент на лапах чарлиплексинга напругу — выход не выдержит такой нагрузки и сдохнет.

                                          Но во-первых это очень редкая ситуация, во-вторых есть ватч дог на такие случаи, в-третьих — даже если это произошло — выходы проца работают «предохранителями» — т.е. оно сдохнет много раньше чем БП, тоже не расчитанный на такое потребление, скажет адью.

                                          Вобщем я постоянно это использую — проблем не было ни разу. Но опять-же это по моему опыту.
                                            0
                                            Понял, спасибо, что объяснили. Следующий раз обязательно попробую шаманство!
                                              0
                                              Всегда пожалуйста :-) Я думаю один раз попробуете — потом будете делать только так — здорово экономит время и нервы.

                                              Китайцы меня например вот таким вот удивляли как вам 203 светодиода всего по 15 линиям? :-)
                                    +2
                                    Как идея: Использовать резистивную тачпанель поверх светодиодной матрицы (некой самодельной панели в виде таблицы)
                                    Поверх накладываем прозрачную пленку с надписями (маркером или принтером) и подключаем все к ардуино (или что-то вроде того)

                                    Вот где пригодятся навыки «помигать диодиками» )
                                      +1
                                      Давно думаю сделать, что-то подобное, но ещё есть идея скрестить это всё со сканером штрихкодов. Два сканера один добавляет продукты, например при укладке в шкафы и холодильник, другой убирает продукты, например когда выкидываешь упаковку
                                        0
                                        Всё отлично, только вот провод бы спрятать :) Чтобы было неотличимо от обычной картины.
                                          +1
                                          Я понял, что мне совершенно необходимо перенести эту идею в XXI век, и я принялся за дело.

                                          Оно конечно получилось прикольно, но явно не в стиле 21 века.

                                          Повесить на холодильник недорогой планшет было бы куда практичней. Более интересным (но дорогим) решением было бы сделать то же самое на e-ink читалке с сенсорным экраном.
                                            +5
                                            Хм, пожалуй. Ну хотя бы на конец XX, надеюсь, вышло.
                                              +4
                                              Определённо!
                                              Ну или даже на 21 век в представлении писателей-фантастов из 20-го :)
                                                +7
                                                Вы знаете, наверное, это самая желанная похвала для меня. Спасибо.
                                            0
                                            А как быть, когда один покупает что-то одно, а другой — другое? При этом из дома они вышли с разницей в 5 минут?
                                              0
                                              Покупки, отмеченные на телефоне пушаются на остальные телефоны в тот же момент. То есть, даже если мы в одном магазине, можно делить список покупок. Идея в том, что дома, где висит доска, вряд ли что-то купить.
                                                +1
                                                Как насчёт добавить на панель кнопку «Refresh» или что-то вроде того, чтобы можно было обновить информацию, не дожидаясь 5 минут (для тех, кто дома, и следит за ходом покупок)?
                                                  0
                                                  А это идея. Добавить куда-нибудь сбоку, чтобы было незаметно.
                                              0
                                              Смотрится здорово! Я бы добавил сканер штрих кодов, чтобы упростить процесс пополнения списка покупок. Просто перед тем, как выкидывать упаковку, считать штрих код с нее(если есть). Базу штрих-кодов составить не составит труда, но это в разы упростит сам процесс.

                                              По сути это такой же терминал самообслуживания, который популярен в супермаркетах, где вы «пикаете» товары, которые загружаете в корзину.
                                                0
                                                Я с нетерпением жду, когда в большее количество продуктов будут встраивать RFID чипы. Тогда сканировать не придётся вовсе.
                                                  0
                                                  Да, тут Вы правы, это уберет необходимость участвовать в процессе составления списка.
                                                  0
                                                  подобная база данных потребует дисциплинированного подхода к учету содержимого холодильника (да и не только его, а всех покупок) всеми без исключения членами семьи, включая временно приходящих

                                                  второй момент — до сих пор слабоопределенный use case для выбрасывания упаковки:
                                                  >перед тем, как выкидывать упаковку, считать штрих код с нее
                                                  осложняется, например, сложностью с выбрасыванием упаковки, которую нельзя перевернуть (пластиковый стаканчик с испорченным содержимым) — решается усложнением читателя штрихкода, добавлением способности читать плохо позиционированный код, а также непонятным местоположением сканера для выбрасывания (если сканер при распределении покупок наиболее логичен вблизи холодильника, то для выбрасывания его нужно дублировать около ведра?...)

                                                  в общем, идея хороша, но есть вопросы
                                                  +2
                                                  Стоит обратить внимание на необходимость в многоязычности надписей. И коллективной (семейной) особенности в части приобретения продуктов — продукт еще не доставлен, но уже куплен и другие члены семьи должны знать об этгм. Аналогично и срок годности — то что истекает надо предлагать изъятие и при покупках рекомендовать купить на замену. Также с учетом индивидуальности ассортимента подходим к тому что тачскрин планшетника неизбежать
                                                    +2
                                                    Я вот тоже хочу иметь лазерный резак, чтобы вот так просто говорить «я взял лазерный резак...»
                                                      +2
                                                      Простое всегда можно сделать сложным :)

                                                      Китайский планшет за $50 + Wunderlist
                                                      image

                                                      image

                                                      image
                                                        0
                                                        А что за планшет?
                                                        0
                                                        Как же убого выглядит…
                                                          0
                                                          *посмотрев на фото* Вот теперь я понимаю, где на самом деле востребована технология беспроводного заряда qi charger…
                                                            0
                                                            как он там держится? магниты или?
                                                              0
                                                              (только не смейтесь) «Фиксирующая паста» — липкая белая штука из ашана похожая на жвачку + старый добрый «Момент» :)
                                                            +1
                                                            Ну все, теперь меня опять будет преследовать ощущение что моя жизнь не состоялась без нового гаджета. Придется хотя бы китайский планшет на холодильник повесить.
                                                              0
                                                              Да, было бы неплохо сделать взаимодействующий со смартфоном посредством push-уведомлений и приложения тачскрин.
                                                              Плюсы явно видны:
                                                              + динамическое отображение списков
                                                              + изменение размера и цвета (стилизация) всех надписей
                                                              + ночной режим (чтобы ночью в глаза резко не светило)
                                                              + составление содержимого таблицы прямо с вашего iPhone или iPad
                                                              + не будет того самого шнурка питания (ИМХО, резко отталкивает от гаджета, хоть автор и делал преимущественно для себя)

                                                              Не было ли у автора идеи, допустим, сделать планшет (да тот же самый iPad), закреплённый магнитиками или встроенный в сам холодильник, а затем с помощью приложения/сайта делать push-синхронизацию между устройствами? Чисто софтверно вполне осуществимо.
                                                                +4
                                                                Эх, когда же уже наконец-то продуктопровод появится.
                                                                  0
                                                                  Эх, вот бы напрямую с доставкой в холодильник…
                                                                  0
                                                                  Использую для этих целей обычную маркерную доску. Фотографирую её и иду в магазин. Иногда фотографирует жена, отправляет мне по почте.
                                                                    0
                                                                    На дискретной логике и без Ардуино? Огромный респект!
                                                                      0
                                                                      Я начинал с проектов на Ардуино. Но потом открыл для себя серию STM32, это недорогие и довольно мощные микропроцессоры.
                                                                        0
                                                                        Я к тому, что Ардуино сейчас лепят даже там, где можно обойтись парой корпусов 555-ой серии.
                                                                          0
                                                                          Наверное, все используют Ардуино потому, что все используют Ардуино. А вообще, иногда мне очень приятно быть любителем: можно выбирать компоненты, не думая о стоимости или долговечности изделия.
                                                                          Пожалуй, это прерогатива любителя в любой области: можно делать всякую фигню, которая профессионалу непростительна.
                                                                            0
                                                                            «А вообще, иногда мне очень приятно быть любителем: можно выбирать компоненты, не думая о стоимости или долговечности изделия.»

                                                                            Кстати, на днях меня повеселил один факт, из современности.

                                                                            Решил повторить схему, в которй использовались K561ИЕ10. Поскольку живу в Штатах, нашел аналог на mouser.com, а вот в DitTrace такого элемента не оказалось. По времени оказалось проще найти другой аналог в DipTrace, а потом уже смотреть его наличие и цену на mouser.com и конечно же он там был :)

                                                                            С болью в сердце вспомнил, как откладывал деньги со стипендии на микросхемы для Спектрума, а потом ездил за ними к чуваку-торговцу на квартиру.

                                                                            Критерии подбора элементной базы теперь несколько другие :)
                                                                          0
                                                                          У меня интерес к MSP430, но именно сейчас заказал детали на елочную мигалку с ШИМ на паре счетчиков и простой логике, вспомнить детство, так сказать :)
                                                                          Хотя, конечно, технологии с теми не сравнить — DipTrace, ЛУТ/фоторезист, паяльная станция. Ни тебе миллиметровки, ни стержня с лаком от ручки :)
                                                                        0
                                                                        А зачем столько флюса на плате оставили? Такое ощущение что во время пайки, вы потратили 2 литра флюса… Флюс, нужно смывать…
                                                                          0
                                                                          ДА! Как его смывать? Я замучился совсем.

                                                                          Я использую флюс MG Chemicals 8341. На упаковке написано, что он «no clean». Я надеялся он сам сойдёт, но нет. Может, ацитоном?
                                                                            0
                                                                            Спиртом?
                                                                              0
                                                                              Спиртом! Обязательно попробую! Спасибо.
                                                                          0
                                                                          Как ни странно, выглядит приятнее, чем монитор) Теплая ламповость.
                                                                          Но, конечно, менее практично. Можно попробовать комбинировать кнопки плюс е-инк бумагу, для вывода надписей, тогда будет намного более гибко.

                                                                          А что ж вы не воспользуетесь нормальным САПРом-то, грех разбивать на под-платы только из-за ограничений САПРа!
                                                                            0
                                                                            Посоветуйте, какой САПР нормальный? Я использовал EAGLE CAD, но может есть что-то лучше?
                                                                              0
                                                                              P-CAD, Altium, PADs, вообщем всё что сможете себе позволить)) Да и с EAEGLE судя по всему у вас просто такая лицензия, там есть какая то хобби версия за 169 баксов где 99 страниц схематика.
                                                                                0
                                                                                Ответ на поставленный вопрос абсолютно корректен, как в том анекдоте :)
                                                                                Но мы-то понимаем, что хотел спросить автор вопроса? :)
                                                                                  0
                                                                                  Автор из Америки, поэтому вполне возможно, он купил Eagle Lite за 69 баксов. Я знаю расценки и других продуктов, поэтому был слегка удивлён, что Eeagle стоит так мало.
                                                                                    0
                                                                                    Eagle Light не имеет каких-либо преимуществ по сравнению с Free, за исключением легальности использования в коммерческих проектах. Чтобы снять ограничение 100х80мм нужно как минимум Hobbyist версию за 169 долларов, а если с опцией «Commercial», то вообще минимум Standard за $820.
                                                                                      0
                                                                                      Хобби нынче дороги…
                                                                            +1
                                                                            Красиво. А если закончатся груши, нужно нажать на картинку выше? :)
                                                                              0
                                                                              … вытяни шнур, выдави стекло :)
                                                                              +1
                                                                              Когда запустите проект на Kickstarter, дайте знать :)
                                                                                0
                                                                                Один МК с 12 свободными ногами под матрицу 6*6 для опроса клавы (ищем про матричную клавиатуру) + любой драйвер динамической индикации вроде MAX7219 на все светодиоды. И того, на 2 корпусах + модуль вайфая + пучок проводков решается задача. И даже за пределы игла размер платы не выйдет :)
                                                                                А вот регистры в 21 веке, это как-то ну очень лампово… Тут и до неонок не далеко :)

                                                                                Only users with full accounts can post comments. Log in, please.