Оглавление:
- Шаг 1. Инструменты и материалы
- Шаг 2: отключение исходного устройства
- Шаг 3: объяснение схемотехники
- Шаг 4: Подготовка ATTiny85
- Шаг 5: создание Wemos Shield
- Шаг 6: подготовка Wemos
- Шаг 7: Собираем все вместе
Видео: IOToilet: 7 шагов (с изображениями)
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:54
IOToilet - это первый интеллектуальный держатель туалетной бумаги, который отслеживает ежедневное использование туалетной бумаги и позволяет накапливать статистику, показывающую эти показатели. Вы спросите, почему я должен заботиться о ежедневном использовании туалетной бумаги? Что ж, как оказалось, здоровье нашего живота, особенно цикл пищеварения, во многом зависит как от нашего физического, так и от психического здоровья. Например, вот хороший доклад на TED (кстати, один из многих), который раскрывает эту тему:
Изначально мне было поручено создать 10 единиц этого устройства для брендового агентства, клип которого вы видите выше (2 место), для целевой маркетинговой кампании для крупной компании. Вначале я отверг эту идею, поскольку идея исходит от другого чрезмерно творческого ума, отчаянно пытающегося завоевать учетную запись клиента, но постепенно она росла на мне, пока я не осознал ценность информации, собранной с помощью этого устройства.
Сборка была основана на существующем аппаратном обеспечении, которое мой клиент получил от EBay, - устройстве записи голоса, заключенном в держатель для туалетной бумаги. Он имел правильный форм-фактор и все необходимые периферийные устройства, уже встроенные, такие как динамик, датчик движения для срабатывания устройства, пружины для удержания самой туалетной бумаги, батарейный отсек и выключатель, поэтому я с радостью выбрал Я использую это уже готовое, а не моделирую и распечатываю самостоятельно.
Шаг 1. Инструменты и материалы
Используемые материалы:
Держатель туалетной бумаги
Wemos D1 Mini
Микросхема ATTiny85, DIP-упаковка
2 х 2n2222 транзистор
Резистор 220 Ом
Резистор 2 * 1 кОм
Акселерометр MPU6050
Необязательно, если моя печатная плата не используется:
Щит для прототипирования Wemos
проволока, припой и т. д.
Используемые инструменты:
Dremel с отрезным диском
Плата разработчика ATTiny (для удобной загрузки прошивки)
Программатор USB Tiny ISP
треугольная отвертка, я использовал этот комплект:
Шаг 2: отключение исходного устройства
Получив оригинальный шпиндель туалетной бумаги, я открыл его корпус с помощью треугольной отвертки и удалил исходную печатную плату, отсоединив динамик и оставив подключенным к нему как можно больше проводов.
Затем я выпаял светодиод и датчик наклона из оригинальной печатной платы, чтобы позже встроить их в новую схему. Следите за тем, чтобы не перегревать переключатель наклона, так как это может повредить его. Мой был серым, но так как я не сделал хорошего снимка при снятии с исходного устройства, мне пришлось использовать фотографию из сети (см. Выше), где она была зеленой. Небольшая деталь.
После открытия корпуса и извлечения электроники я также использовал Dremel для удаления излишков пластика, который использовался для удержания оригинальной печатной платы на месте, этих маленьких пластиковых полочек и одной из 4 резьбовых трубок. При желании можно отложить это до этапа сборки, но в любом случае потребуется подрезка пластика.
Шаг 3: объяснение схемотехники
Итак, вот немного о логике схемы:
Чтобы батарей хватило на долгое время, мне пришлось перевести акселерометр MPU6050 и процессор ESP8266 в Wemos D1 Mini в спящий режим между активациями. Первое было легко сделать с помощью транзистора, который включал и выключал MPU6050.
Примечание: изначально я думал, что могу запрограммировать его на отправку сигнала прерывания, который разбудит основной процессор. Увы, я не смог найти способ сделать это, настройка правильных регистров MPU6050 была сложной задачей, и я до сих пор не знаю, возможно ли это вообще …
Моим вторым вариантом было использование переключателя наклона, поставляемого с оригинальным устройством, для пробуждения ESP. Сначала я привязал его непосредственно к выводу Wemos RESET, как описано на фотографиях выше, используя транзистор для активации / деактивации механизма. Когда база транзистора была высока, GND может пройти через переключатель наклона и вызвать его временное подключение к выводу RESET, вызывая сброс MCU (по-видимому, это единственный способ вывести ESP из глубокого сна). Затем я подключил D0 к базе транзистора, исходя из предположения, что эта нога находится в ВЫСОКОМ состоянии, пока MCU спит, и как только он просыпается, D0 возвращается в НИЗКИЙ, отключая механизм сброса. В конце концов, мне не нужно было, чтобы повторяющийся сброс происходил, просто в первый раз, когда держатель туалетной бумаги начал двигаться.
Однако я обнаружил, что контакту D0 требуется довольно много времени после сброса MCU, чтобы вернуться в LOW, около 200 мс. Это означало, что если я достаточно быстро вращал держатель туалетной бумаги, когда MCU спал, он получал бы несколько сбросов, вместо того, чтобы считать раунды, как должно.
Итак, я попытался решить эту новую ситуацию с помощью некоторых дискретных компонентов (конденсаторов, транзисторов и т. Д.), Но мне удалось получить лишь частичное решение проблемы.
Я закончил тем, что добавил еще один MCU, ATTiny85, который будет выходить из спящего режима переключателем наклона, затем разбудить ESP8266 и ждать некоторое время, прежде чем снова заснуть. Знаю, что это, наверное, не самое экономичное решение проблемы, но у меня был крайний срок…
Вы можете увидеть подробное решение в схеме, которую я включил. Обратите внимание, что резисторы 10 кОм были заменены на 1 кОм, так как резисторы 10 кОм были слишком велики для того, чтобы транзисторы могли полностью открыться.
Шаг 4: Подготовка ATTiny85
Если вы никогда не программировали ATTiny85, не бойтесь! Использование всеми любимой Arduino IDE поможет вам на всем пути. Начните с этих инструкций по настройке Arduino IDE:
github.com/SpenceKonde/ATTinyCore/blob/mas…
Затем установите драйверы для USBTinyISP отсюда:
learn.adafruit.com/usbtinyisp/drivers
Теперь загрузите прикрепленный тестовый код: WakeOnExternalInterruptTest.ino
и подключаемся (см. схему распиновки ATTiny85):
1. Тактовая кнопка между контактом 3 и землей.
2. Светодиод и резистор 220 Ом последовательно между контактом 2 и массой.
Следующий, Выберите USBTinyISP в качестве программиста (в меню «Инструменты» -> «Программист») и загрузите тестовый скетч на плату.
Светодиод должен мигнуть 5 раз, затем микросхема должна перейти в спящий режим. Нажатие кнопки заставит его проснуться и повторить эту последовательность.
Получил работать? большой! Загрузите окончательный набросок «Пробудителя» в ATTiny, чтобы использовать его на последней трассе.
Шаг 5: создание Wemos Shield
Итак, чтобы построить щит, у вас есть 3 варианта на выбор:
1. Используйте стандартный протощиток для Wemos и припаяйте к нему схему.
2. Изготовьте печатную плату на основе прикрепленных файлов EAGLE.
3. Попросите меня принести печатную плату, которую я могу отправить вам обычной почтой (у меня есть несколько, почти ничего не стоит).
В любом случае, я рекомендую собрать схему на макетной плате, прежде чем переходить к печатной плате!
Если вы используете варианты печатной платы, обязательно подключите черный провод, как на фотографиях, либо на передней, либо на задней стороне платы (последнее сработало для меня лучше всего). Этот провод соединяет GND от Wemos с ATTiny85, и без него пробуждение не состоится.
Просто внимательно посмотрите на изображения и прочтите добавленные мной аннотации, этого должно быть достаточно.
Шаг 6: подготовка Wemos
Если вы никогда не использовали Arduino IDE для программирования платы Wemos, начните с установки менеджера плат и выбора платы в меню Инструменты -> Плата, как описано здесь:
github.com/esp8266/Arduino
Начните с загрузки скетча мигания на свою доску, убедившись, что код загружен правильно.
Шаг 7: Собираем все вместе
Установите щит на Wemos. Вы можете припаять его, но я рекомендую использовать гнездовые разъемы, припаянные к Wemos, что обеспечит временное соединение между Wemos и экраном в случае каких-либо проблем. Только имейте в виду, что женский заголовок должен будет выйти на заключительном этапе сборки, чтобы агрегат поместился в пластиковую оболочку. Кроме того, чтобы немного усложнить ситуацию, есть большая вероятность, что при подключении щита к Wemos загрузка кода будет отключена. Я столкнулся с этим явлением непоследовательным образом, и у меня не было времени исследовать его.
Совет: планируйте заранее.
Теперь тестирование!
После установки начните с загрузки скетча теста BlinkAccelerometer в Wemos и убедитесь, что он включает и выключает светодиод MPU6050. Если нет, проверьте проводку транзистора, который отвечает за питание MPU6050. Его база должна быть подключена к выводу D5 Wemos, коллектор должен быть подключен к GND акселерометра, а эмиттер должен быть подключен к общему GND.
Затем загрузите скетч TurnCountTest1 на плату Wemos и откройте Serial Monitor. Вы должны увидеть данные, поступающие с акселерометра, представленные на мониторе. Если не работает, проверьте часы и проводку данных: CLK должен быть подключен к D1, а DATA должен быть подключен к D2.
Теперь припаяйте переключатель наклона к обозначенным отверстиям на плате (см. Аннотации), убедившись, что он перпендикулярен оси вращения, чтобы вращение шпинделя закрыло и разомкнуло соединение между двумя его выводами.
Затем подключите вход Battery 3V к Wemos VCC, а его минусовую клемму - к Wemos GND. Убедитесь, что включение выключателя включает устройство. Наконец, подключите динамик к GND и контакту D4 Wemos.
Загрузите окончательный код в Wemos - скетч под названием SmartWipe. Откройте монитор последовательного порта и убедитесь, что устройство переходит в спящий режим через 3 минуты и просыпается, перемещая переключатель наклона (на мониторе должны появиться соответствующие сообщения).
Если вы хотите уменьшить время пробуждения Wemos (в основном для целей тестирования), уменьшите значение WIFI_CONFIGURATION_IDLE_TIMEOUT, определенное в params.h, и загрузите эскиз на доску. Убедитесь, что после перехода Wemos в режим глубокого сна перемещение переключателя наклона вызывает пробуждение ATTiny (сигнализируется светодиодом), который, в свою очередь, выводит Wemos из режима сна.
Измените значение параметра обратно на 180000L (3 минуты в миллисекундах) и убедитесь, что Wemos запускает точку доступа с именем IOToilet_XXXXXXXX, где XXXXXXX будет извлекаться из MAC-адреса чипа. Подключитесь к этому Wi-Fi с помощью смартфона, и вы должны быть перенаправлены к форме регистрации (механизм, называемый Captive Portal). Заполните данные, особенно важны SSID и пароль вашего локального Wi-Fi, и отправьте форму. Затем устройство должно попытаться подключиться к сети, используя предоставленные учетные данные, и в случае успеха воспроизвести 3 восходящих звука на динамике. Если возникла проблема с подключением к Wi-Fi, будут воспроизводиться 3 нисходящих звука. После этого Wemos должен погрузиться в глубокий сон, пока не проснется от движения.
Наконец: Сквозной системный тест.
Прокрутите держатель туалетной бумаги вдоль его оси вращения на несколько оборотов, затем поместите его на устойчивую поверхность (чтобы подать сигнал об окончании рулона и запустить загрузку данных). Подождите около 10 секунд, пока счетчик прокрутки не будет отправлен в облако, затем перейдите на https://smartwipe-iot.appspot.com/ и нажмите «Запрос». Вы должны увидеть свои регистрационные данные и недавний счетчик использования в облаке! Обязательно запишите свой uuid, который является вашим уникальным идентификатором в системе, извлеченным из вашего MAC-адреса Wemos.
Если вы хотите извлечь только свою статистику в формате JSON, используйте URL-адрес, подобный этому:
smartwipe-iot.appspot.com/api?action=query&uuid=1234567890
просто замените uuid своим.
Я включил все источники для веб-приложения, которое размещено на движке Google App, чтобы пользователи, желающие повысить конфиденциальность данных, могли развернуть его на своем собственном пользователе Google, добавить аутентификацию и т. Д.
Когда все заработает, вставьте электронику в пластиковый корпус, при необходимости обрезав пластик дремелем. Вся деталь должна хорошо входить в корпус.
Беда? Напиши мне!
ОБЪЕДИНЯЕМСЯ!
Рекомендуемые:
Как: установка Raspberry PI 4 Headless (VNC) с Rpi-imager и изображениями: 7 шагов (с изображениями)
Как: установка Raspberry PI 4 Headless (VNC) с Rpi-imager и изображениями: я планирую использовать этот Rapsberry PI в кучу забавных проектов еще в моем блоге. Не стесняйтесь проверить это. Я хотел вернуться к использованию своего Raspberry PI, но у меня не было клавиатуры или мыши в моем новом месте. Прошло много времени с тех пор, как я установил Raspberry
Счетчик шагов - Micro: Bit: 12 шагов (с изображениями)
Счетчик шагов - Микро: Бит: Этот проект будет счетчиком шагов. Мы будем использовать датчик акселерометра, встроенный в Micro: Bit, для измерения наших шагов. Каждый раз, когда Micro: Bit трясется, мы добавляем 2 к счетчику и отображаем его на экране
Bolt - Ночные часы с беспроводной зарядкой своими руками (6 шагов): 6 шагов (с изображениями)
Bolt - Ночные часы с беспроводной зарядкой своими руками (6 шагов): Индуктивная зарядка (также известная как беспроводная зарядка или беспроводная зарядка) - это тип беспроводной передачи энергии. Он использует электромагнитную индукцию для обеспечения электропитания портативных устройств. Самым распространенным применением является беспроводная зарядка Qi st
Как разобрать компьютер с помощью простых шагов и изображений: 13 шагов (с изображениями)
Как разобрать компьютер с помощью простых шагов и изображений: это инструкция о том, как разобрать компьютер. Большинство основных компонентов имеют модульную конструкцию и легко снимаются. Однако важно, чтобы вы были организованы по этому поводу. Это поможет уберечь вас от потери деталей, а также при повторной сборке
Проектирование печатной платы с помощью простых и легких шагов: 30 шагов (с изображениями)
Проектирование печатных плат с помощью простых и легких шагов: ПРИВЕТ, ДРУЗЬЯ Это очень полезное и легкое руководство для тех, кто хочет изучить дизайн печатных плат. Давайте начнем