27 МОСКОВСКАЯ ВСТРЕЧА
Форум самогонщиков Сайт Барахолка Магазин 27 МОСКОВСКАЯ ВСТРЕЧА

Недоавтоматика на Arduino + Nextion

Форум самогонщиков Автоматика
1 2 3 1
Thorr Бакалавр Прибалтика 97 70
03 Апр. 18, 09:30
По сути речь пойдет не об автоматике, а о термометре на 3 датчика температуры и тревогой по достижению заданного параметра.
Сделал для себя, когда надоело прыгать вокруг колонны с термометрами-щупами, и захотелось спокойно смотреть телек, пока дело делается.

Cам совсем не программист, для написания софта использовал среду визуального программирования FLProg.
Код получился рабочим, но не без косяков и 100% может быть значительно улучшен.

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

Элементная база:
Экран Некстион 3,5"
Arduino - в моем случае Мега, просто потому, что была.  Нет проблемм сделать на любой другой.
Модуль контроля атмосферного давления BMP180
Светодиод, несколько резисторов и буззер.

lcd-temp.jpg
Lcd-temp. Недоавтоматика на Arduino + Nextion. Автоматика.
LCD-temp.rar 617.1 Кб
argon43 Кандидат наук ст.Динская 330 62
Отв.1  03 Апр. 18, 12:43
А под Экран Некстион 3,2",можете сделать?
Thorr Бакалавр Прибалтика 97 70
Отв.2  03 Апр. 18, 13:39, через 57 мин
А под Экран Некстион 3,2",можете сделать?argon43, 03 Апр. 18, 12:43

Сделать могу, но тут вопрос времени, а его нет.
Там все не сложно, сделать ресайз картинок (их всего 4) и перетянуть в нужные места кнопки в редакторе некстиона.
Картинки на другой размер могу сделать, если с фотошопом не дружите, это не долго.
argon43 Кандидат наук ст.Динская 330 62
Отв.3  03 Апр. 18, 13:44, через 6 мин
Сделать могу, но тут вопрос времениThorr, 03 Апр. 18, 13:39
Я подожду Улыбающийся ,просто я не дружу с редакторами:(
Thorr Бакалавр Прибалтика 97 70
Отв.4  03 Апр. 18, 16:01
Выдалась пара минут - переделал прошивку под некстион 3,2
По интерфейсу появилась проблема - график температур теперь не вмещает шкалу до 100 градусов, цену деления в сетке задал как 20 точек (градусов). В оригинале было 25.

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

И есть подозрения, что числа перестали влезать в отведенные поля.
Tipp Бакалавр Уральск 90 5
Отв.5  29 Авг. 18, 14:50
Может кто-нибудь поподробнее чуть расписать? Тоже хочу собрать, на 2-3 датчика.
tanir196 Студент Балашиха 26 2
Отв.6  26 Нояб. 18, 08:32
Помогите разобраться. Повторил проект, дисплей работает на иконки реагирует. Мега прошита в FLProg без ошибок.

В итоге температура не отображается и соответственно графики не строятся. DS18B20 проверял,на этих пинах работают.

Пробую только с одной термопарой и без датчика давления. Может быть это причиной или нет???
Thorr Бакалавр Прибалтика 97 70
Отв.7  26 Нояб. 18, 18:26
Вы в коде ИД своего датчика прописали?
Датчики давления точно не причем, отсутствие других температурных тоже.
kon13 Специалист Гомель 183 74
Отв.8  26 Нояб. 18, 19:15, через 50 мин
ИД своего датчика прописали?Thorr, 26 Нояб. 18, 18:26

  Использование блока ScanOneWare решит проблему прописи DS-ок
tanir196 Студент Балашиха 26 2
Отв.9  26 Нояб. 18, 20:50
Да ID прописан в FLProg шина сканируется. Подключаю только один датчик,другие входа висят в воздухе.

Можно как то в сериал мониторе в ардуино посмотреть что шлет датчик в экран?

В Nextion editor в окне Debug можно увидеть что шлет ардуино?
Thorr Бакалавр Прибалтика 97 70
Отв.10  26 Нояб. 18, 21:40, через 50 мин
Я уже подзабыл что где можно смотреть, но послушать порт 232 можно однозначно.
Там в обмене все просто: некстион получает значения датчиков от ардуино сразу после их изменения, а сам отправляет раз в секунду уставки тревоги.
Все датчики температуры у меня висели на пин2.
Порт 232 на пинах тх - 16, рх - 17 на ардуине.

Подключение тх на ардуине идет на рх на некстионе, здесь думаю не ошиблись.
Датчики подключал по схеме:
sv18.jpg
Sv18. Недоавтоматика на Arduino + Nextion. Автоматика.


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

О! Думаю понял - я на некстионе задал скорость общения 115200 (bauds=115200 в preinitialized events), чтобы график быстрее грузился, а в скетче осталось 9600.
Поправьте строку: Serial2.begin(9600);
tanir196 Студент Балашиха 26 2
Отв.11  28 Нояб. 18, 11:37
Ок буду пробовать.
Tomat7 Магистр Черноморская губинния 236 138
Отв.12  28 Нояб. 18, 13:47
Вы в коде ИД своего датчика прописали?Thorr, 26 Нояб. 18, 18:26
Кстати, а зачем? OneWire и не зная ИД всех вроде найдет и проиндексирует.
А если нужно знать какой в какое место колонны воткнуть - то при первом запуске нагревая руками можно определить...  ;)
Либо вообще - каждый датчик на свой пин чтобы уж наверняка не запутаться [сообщение #12556687]
8)
tanir196 Студент Балашиха 26 2
Отв.13  28 Нояб. 18, 19:25
Супер все заработало (поменял скорость) огромное спасибо ,буду вникать,изучать.
Недоавтоматика на Arduino + Nextion
Недоавтоматика на Arduino + Nextion. Автоматика.
 
Недоавтоматика на Arduino + Nextion
Недоавтоматика на Arduino + Nextion. Автоматика.
 
Недоавтоматика на Arduino + Nextion
Недоавтоматика на Arduino + Nextion. Автоматика.
Thorr Бакалавр Прибалтика 97 70
Отв.14  29 Нояб. 18, 21:32
Кстати, а зачем? OneWire и не зная ИД всех вроде найдет и проиндексирует.Tomat7, 28 Нояб. 18, 13:47

Тут скетч писался не руками. Его писала FLProg - там по умолчанию задаются ид датчиков.
Может и можно по другому как-то, но я такого пути не увидел.
Thorr Бакалавр Прибалтика 97 70
Отв.15  29 Нояб. 18, 21:40, через 8 мин
Супер все заработалоtanir196, 28 Нояб. 18, 19:25
Ну и отлично.
Насколько помню был баг - нельзя было задавать тревогу по температуре меньше 10 (могу ошибаться).
Связано с тем, что значения температур у меня сравниваются как строки, а не как числа.
Это не совсем корректно, но работает.
Сделано так потому, что Некстион не дружит с дробными числами и температура тревоги передается из него как строка.
tanir196 Студент Балашиха 26 2
Отв.16  07 Дек. 18, 09:53
А переделать проект на UNO не позволит количество памяти?
Thorr Бакалавр Прибалтика 97 70
Отв.17  07 Дек. 18, 20:14
Не вижу препятствий.
tanir196 Студент Балашиха 26 2
Отв.18  08 Дек. 18, 07:21
Вот так получилось для UNO. Может массив надо уменьшить? Я в этом не спец.

Скетч использует 23492 байт (72%) памяти устройства. Всего доступно 32256 байт.
Глобальные переменные используют 2237 байт (109%) динамической памяти, оставляя -189 байт для локальных переменных. Максимум: 2048 байт.
Thorr Бакалавр Прибалтика 97 70
Отв.19  09 Дек. 18, 10:38
Доберусь до компьютера - подумаю. Подозреваю, что количество глобальных переменных можно сильно сократить.
Уже не помню чего я там нагородил.