pinport

304 в открытом доступе 300 просмотров
ESP32

Таймер обратного отсчёта

Минуты и секунды на четырёх разрядах. Кнопка запускает и сбрасывает, а отсчёт идёт по millis, а не по delay.

ДисплейКнопки и ручки
0 просмотров
ESP32

NVS: сохранение рекордов

Запись только при изменении. Ресурс флеша конечен, и переписывать одно и то же в цикле не стоит.

Кнопки и ручкиАналоговый вход
0 просмотров
ESP32

Метеостанция с журналом

Датчик, часы и карта вместе: раз в минуту строка в файл, имя файла — из даты.

I2CSPIДатчикПамятьЧасы
0 просмотров
ESP32

Часы с мигающим двоеточием

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

I2CДисплейЧасы
0 просмотров
ESP32

NTPClient: время из сети

Библиотека поверх UDP: свой пакет, свой разбор, свой период обновления. Отличие от configTime — в том, кто владеет временем.

0 просмотров
ESP32

Веб-сервер: щиток из двух реле

Два канала, состояние каждого и кнопка «всё выключить». Показывает, как одна страница управляет несколькими нагрузками и как перед…

РелеWi-Fi
0 просмотров
ESP32

Расписание: свет по часам

Включать нагрузку в заданные часы. Проверка написана так, чтобы работать и на промежутке через полночь.

I2CСветодиодыЧасы
0 просмотров
ESP32

Индикатор духоты

Три величины сводятся в одну оценку. Гистерезис в пороге — иначе индикатор мигает на границе.

I2CДатчикСветодиоды
0 просмотров
ESP32

Дополняющий фильтр

Акселерометр шумит, гироскоп уплывает. Одна строка фильтра берёт от каждого лучшее — и объясняет, почему.

I2CДисплейДатчик
0 просмотров
ESP32

TM1637: четыре разряда

Индикатор на двух проводах: не I2C, хотя и похоже. Числа, ведущие нули и то, чем показ отличается от вычисления.

Дисплей
0 просмотров
ESP32

Сигнал перегруза

Порог с гистерезисом и усреднением. Заодно — что делает power_down и зачем он нужен на батарее.

ДатчикСветодиоды
0 просмотров
ESP32

TimeLib: время без часов

Библиотека не знает, откуда время, — она его считает. Отсюда её сила и её главная ловушка.

0 просмотров
ESP32

Секундомер

Пуск, стоп, сброс одной кнопкой по длительности нажатия. Состояние — три поля и переход между ними.

Кнопки и ручки
0 просмотров
ESP32

NVS: настройки прибора

Строки и числа под именами. Команды из Serial меняют настройки, и они остаются после перезапуска.

0 просмотров
ESP32

Форматирование вывода

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

0 просмотров
ESP32

Будильник: раз в минуту

Будильник внутри микросхемы: она сама сравнивает время и поднимает признак. Плата может в это время спать.

I2CСветодиодыЧасы
0 просмотров
ESP32

Матрица 8×8: первая точка

Микросхема после подачи питания выключена, и это первое, обо что спотыкаются. Дальше — точки, строки и вся матрица.

SPIДисплейСветодиоды
0 просмотров
ESP32

Высота по давлению

Барометрическая высота: считается от давления на уровне моря, и ошибка в этом одном числе смещает всю шкалу.

I2CДатчик
0 просмотров
Электроника

Датчик освещённости: фоторезистор и АЦП

Фоторезистор включают в делитель с постоянным резистором: U = 3,3·R/(R+R_ф). На свету сопротивление фоторезистора падает до килоом…

2 просмотров
ESP32

Какой стороной вверх

Шесть положений кубика из знаков трёх ускорений. Простая задача, на которой видно, зачем нужен порог уверенности.

I2CДатчик
0 просмотров
ESP32

Жизнь на матрице

Игра «Жизнь» на поле 8×8 с замыканием краёв. Считается в двух буферах — иначе клетки видят соседей уже нового поколения.

SPIДисплейСветодиоды
0 просмотров
ESP32

Яркость и выключение

У микросхемы шестнадцать ступеней яркости и настоящее выключение. И то и другое видно на схеме.

SPIДисплейСветодиоды
0 просмотров
ESP32

Яркость и ночной режим

Восемь ступеней яркости и настоящее гашение. Ночью индикатор в спальне светит как прожектор — отсюда и пример.

I2CДисплейЧасы
0 просмотров
ESP32

Кухонные весы

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

ДисплейДатчик
0 просмотров
ESP32

HX711: сырые отсчёты

Двадцать четыре разряда тактами и признак готовности на линии данных. С этого начинается всё остальное.

Датчик
2 просмотров
ESP32

Конфиг в JSON и в памяти

Настройки хранятся строкой JSON в NVS: одно поле вместо десяти ключей, и добавить новое можно не ломая старое.

0 просмотров
ESP32

Несколько задач по времени

Три независимых периода в одном loop(). Каждая задача помнит своё время последнего запуска.

Светодиоды
0 просмотров
ESP32

Аппаратный таймер

Прерывание строго по расписанию, независимо от того, чем занят loop(). Точнее любого millis().

0 просмотров
ESP32

FreeRTOS: задачи по ядрам

У ESP32 два ядра. xTaskCreatePinnedToCore прибивает задачу к одному из них — и это видно по xPortGetCoreID().

2 просмотров
ESP32

Веб-сервер: JSON с показаниями

Машиночитаемый ответ вместо страницы. Откройте «Веб-интерфейс» и наберите /data — отсюда данные забирает что угодно, от скрипта до…

Кнопки и ручкиWi-FiАналоговый вход
0 просмотров
220 В

Косинус фи: почему двигатель берёт больше, чем написано на шильдике

Двигатель на 1,1 кВт при косинусе 0,8 берёт из сети около 6 ампер, а не 4,8, как следовало бы из одной мощности. Разницу даёт реак…

1 просмотров
ESP32

Второй UART и мост

У ESP32 три аппаратных UART. Второй выводится на любые выводы и работает независимо от отладочного.

0 просмотров
ESP32

Часы: поставить время и читать

Первое, с чего начинается любой скетч с часами: проверить, шли ли они, и поставить время только если нет.

I2CЧасы
0 просмотров
ESP32

Настольные часы на OLED

Часы и экран на одной шине I2C: два устройства, два провода. Экран перерисовывается только когда сменилась секунда.

I2CДисплейЧасы
0 просмотров
ESP32

Температура из часов

У DS3231 внутри свой термометр — им микросхема поправляет ход кварца. Его можно читать и просто так.

I2CДисплейЧасы
0 просмотров
ESP32

Журнал на карту с отметкой времени

Часы и карта вместе: каждая запись получает время, а не «столько-то миллисекунд с включения».

I2CSPIПамятьЧасы
0 просмотров
12 В

Реле: слабая кнопка управляет сильной нагрузкой

Кнопка в салоне не рассчитана на ток звукового сигнала. Поэтому кнопка включает катушку реле — тридцать миллиампер, — а контакт ре…

2 просмотров
ESP32

Будни и выходные

День недели микросхема хранит отдельным регистром. Пример показывает, как на нём строить недельное расписание.

I2CСветодиодыЧасы
0 просмотров
ESP32

Режим по требованию и экономия

Датчик умеет спать между измерениями. Разница режимов и то, чем за неё платят.

I2CДатчик
0 просмотров
220 В

Сечение кабеля и номинал автомата

Автомат защищает не прибор, а провод. Пара «C16 на кабеле 1,5 мм²» — самая частая ошибка домашнего щитка: при нагрузке в двадцать…

1 просмотров
ESP32

Уровень: крен и тангаж

Углы считаются из вектора силы тяжести — двумя арктангенсами. Покрутите наклон в свойствах датчика и смотрите на пузырёк.

I2CДисплейДатчик
0 просмотров
ESP32

Свободное падение

Падающий датчик не чувствует силы тяжести: длина вектора уходит к нулю. На этом и строится определение падения.

I2CДатчикСветодиоды
0 просмотров
ESP32

Шагомер

Шаг — это всплеск длины вектора. Считать всплески без гистерезиса и паузы бесполезно: один шаг насчитается пятью.

I2CДатчик
0 просмотров
ESP32

Калибровка нуля

У лежащего неподвижно датчика гироскоп показывает не ноль. Смещение снимают один раз при старте и вычитают дальше.

I2CДатчик
0 просмотров
ESP32

Семисегментный: счётчик

Та же микросхема, другой индикатор. Цифры рисует она сама — если включить знакогенератор.

SPIДисплейСветодиоды
0 просмотров
ESP32

Термометр на индикаторе

Показать -3.7°C на семисегментном индикаторе: знак, десятые и буква. Буквы C знакогенератор не знает — значит рисуем сегментами са…

I2CSPIДисплейДатчикСветодиоды
0 просмотров
220 В

Щиток однокомнатной квартиры

Собранный целиком щиток: ввод, счётчик, вводной автомат, противопожарное УЗО и три группы — свет, розетки комнаты, розетки кухни…

1 просмотров
ESP32

Термометр с буквой

Показать -3.7C на четырёх разрядах: знак, десятые и буква. Сегменты приходится задавать руками.

I2CДисплейДатчик
0 просмотров
ESP32

Тара и отрицательный вес

Ноль весов — это не ноль датчика. Что происходит, когда груз снимают после тары, и почему это нормально.

Датчик
0 просмотров
ESP32

Калибровка: из отсчётов в граммы

Коэффициент подбирается известным грузом один раз и записывается в скетч. Без него на экране будут отсчёты, а не вес.

Датчик
0 просмотров
ESP32

Preferences: что переживает перезагрузку

Счётчик запусков в NVS. Три строки кода и одна мысль: сброс платы — это не выключение питания, а для NVS разницы нет вовсе.

0 просмотров
ESP32

Preferences: настройки прибора

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

0 просмотров
12 В

Почему 60 ампер-часов не значит 60 ампер в течение часа

Тот же аккумулятор, но нагрузка стартерная: две сотни ампер. Паспортная ёмкость измерена неспешным двадцатичасовым разрядом, и при…

6 просмотров
220 В

Свет в комнате: автомат, выключатель, светильник

Самая частая схема в квартире, собранная правильно. Фаза идёт с автомата на выключатель, с выключателя — на светильник; ноль прихо…

1 просмотров
ESP32

TimeLib и часы: кто кого сверяет

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

I2CЧасы
0 просмотров
ESP32

Сеть как источник, часы как резерв

Сеть точнее, но её может не быть. Микросхема всегда на месте, но уходит. Правильная схема — сверять первым вторым.

I2CЧасы
0 просмотров
Электроника

Первый закон Кирхгофа: сколько втекло, столько и вытекло

В любом узле сумма втекающих токов равна сумме вытекающих: ΣI = 0. Здесь ток источника разветвляется на три: I = I₁ + I₂ + I₃. Вет…

1 просмотров
ESP32

Замер времени выполнения

micros() и разница до/после. Первый шаг к оптимизации — узнать, что именно медленное.

0 просмотров
ESP32

FreeRTOS: очередь между задачами

Правильный способ передать данные из задачи в задачу. Общая переменная без защиты рано или поздно подведёт.

2 просмотров
ESP32

Файл во внутренней памяти

SPIFFS даёт обычные файлы поверх флеша: открыть, дописать, прочитать.

0 просмотров