Форум самогонщиков Сайт Барахолка Магазин Помощь солдатам

Доступная автоматика HelloDistiller на Ардуино Мега 2560

Форум самогонщиков Автоматика
1 ... 299 300 301 302 303 304 305 ... 795 302
binomus Специалист Люберцы 179 64
Отв.6020  25 Нояб. 16, 22:37
Подскажите, что будет если в ардуину залить скетч и подключить толко дисплей шилд с кнопками?
У меня какая-то ерунда.
Сначала секунды на 2 появляется экран с определение количества датчиков температуры.
Потом на 2 секунды номер прошивки и номер упрощенной версии.
А далее начинают прыгать параметры отраженные на экране. То пишет развар, то аларм, то вода.
На клавиатуру не реагирует.

Это все нормально?

Прошивка 347i-1 упрощенка - 0.
woddy Доцент Новосиб 1.3K 489
Отв.6021  26 Нояб. 16, 06:06
Нормально. Из за того что не подключены датчики
msg31 Научный сотрудник Барнаул 4.6K 2.5K
Отв.6022  26 Нояб. 16, 07:04, через 58 мин
А далее начинают прыгать параметры отраженные на экране.binomus, 25 Нояб. 16, 22:37
Это не подключен аналоговый вход ардуины А0. Неправильно стоит шильд, он неисправен или неисправны аналоговые порты ардуины. Вход А0 ловит помехи и считает что нажимаются клавиши. Вот хаотчино все на экране и прыгает.
binomus Специалист Люберцы 179 64
Отв.6023  26 Нояб. 16, 09:26
Спасибо. Вчера проверил это соображение.
Я отогнул контакт а0 на шилде и все устаканилось.
Шрам мне скинул скетч для проверки кнопок.Так вот кнопки шилда были с нестандартными параметрами.
Подскажите,где можно скорректировать скетч автоматики под нестандартные аналоговые кнопки?
via Специалист Питер 183 77
Отв.6024  26 Нояб. 16, 09:39, через 14 мин
скинул скетч для проверки кнопокbinomus, 26 Нояб. 16, 09:26
сори: может приложить к сообщению?
binomus Специалист Люберцы 179 64
Отв.6025  26 Нояб. 16, 10:19, через 41 мин
Скетч маленький. Его проще в сообщении указать:
#include <LiquidCrystal.h> //подключаем библиотеку работы с ЖКИ

LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
int analogPin = 0;    // номер порта к которому подключены  кнопки
int val = 0;          // переменная для хранения считываемого значения

void setup()
{
  lcd.begin(16, 2);             
}

void loop()
{
  val = analogRead(analogPin);    // считываем значение
  lcd.setCursor(0, 1);
  lcd.print(val);          // выводим полученное значение
  delay(500);
  lcd.setCursor(0, 1);
  lcd.print("    ");        // стираем старое значение
}

Его задача показывать значения нажатых клавиш. А вот как основной скетч автоматики подправить, если я знаю значения нажатых кнопок?
shram1970 Доцент Желтая гора 1.3K 325
Отв.6026  26 Нояб. 16, 13:44
 Смеющийся
Подскажите,где можно скорректировать скетч под нестандартные аналоговые кнопки?binomus, 26 Нояб. 16, 09:26
binomus, Я же тебе написал.правка-найти-analogRead(A0)-вставляешь свои значения
Это проще бинома Ньютона.
golem73 Студент Ульяновск 43 23
Отв.6027  26 Нояб. 16, 15:39
Если кто собирал насос из этой ветки [Перистальтический насос на шаговом двигателе и ардуино в качестве мозгов] подскажите как подключить его к автоматике. Собрал версию с внешним управлением, на какие пины подключить сигнал enable и брозенхейм. Спасибо.
max506 Специалист Москва 197 181
Отв.6028  26 Нояб. 16, 16:32, через 53 мин
Продолжая тему, начатую здесь [сообщение #12860905], опишу в этом сообщении как установить MQTT Dash, скачать настройки для отображения информации, завести аккаунт на бесплатном MQTT-брокере CloudMQTT и подключиться к нему.

1. Установка MQTT Dash и скачивание настроек.
Программу можно установить на любое ваше андроид устройство. Скачиваете программу по этой ссылке https://play.google.com/store/apps/details?id=net.routix.mqttdash (не забудьте плюсануть разработчику за абсолютно безвозмездное предоставление программы Улыбающийся). Запустите программу и создайте новое соединение с MQTT-брокером для скачивания настроек. Для этого нажмите на "+" в правом верхнем углу. Заполните настройки соединения, как показано на скриншоте. Пароль пользователя 12345. Идентификатор клиента заполняется автоматически. Имя для страницы можете указать любое.
screenshot_2016-11-26-15-06-52.png
Screenshot_2016-11-26-15-06-52. Доступная автоматика HelloDistiller на Ардуино Мега 2560. Автоматика.

После заполнения нажмите на кнопку сохранения в правом верхнем углу.
Войдите в созданное соединение и нажмите на кнопку с двумя разнонаправленными стрелками. Появится окно диалога для скачивания настроек.
screenshot_2016-11-26-14-11-44.png
Screenshot_2016-11-26-14-11-44. Доступная автоматика HelloDistiller на Ардуино Мега 2560. Автоматика.

Введите в поле "Топик" значение page_settings и нажмите на кнопку "Подписаться и ждать метрики". Настройки будут скачены с MQTT-брокера и отобразятся на странице.
Повторите аналогичные действия для создания страницы "Ректификация".
screenshot_2016-11-26-14-09-29.png
Screenshot_2016-11-26-14-09-29. Доступная автоматика HelloDistiller на Ардуино Мега 2560. Автоматика.

При скачивании настроек в поле "Топик" введите значение page_rectif.

2. Создание аккаунта на брокере CloudMQTT.
Как зарегистрироваться и настроить брокер, подробно описано в начале этой статьи https://esp8266.ru/IoT-Manager-for-DIY/#quickstart, поэтому копипастом заниматься не буду. На видео в статье также показаны все необходимые действия.
Единственное, на что надо обратить внимание, не используйте имена пользователей и пароли из скриншотов в статье.
ВАЖНО: когда будете описывать доступ к темам в разделе "New Rule", обязательно включите оба чекбокса Read Access и Write Access.
После регистрации и настройки своего аккаунта на брокере, необходимо подключить к нему MQTT Dash. Для этого используем долгое нажатие на имени соединения и попадаем в настройки соединения (мы это уже делали в первом пункте, когда подключались к брокеру для скачивания настроек).
В указанной выше статье показан скриншот страницы брокера "Instance Info", надо ввести с подобной страницы параметры своего аккаунта при настройке соединения в MQTT Dash.
ВАЖНО: обратите внимание, что значение порта надо брать из графы "Port" (не SSL Port и не Websoscets Port).
Если вы все сделали правильно, то при входе на страницу отображения информации у вас не будет появляться сообщение в нижней части экрана "Connection failed".

Для проверки соединения с брокером добавим тестовую кнопку и "поуправляем" клапаном отбора. Для этого нажимаем на "+" в правом верхнем углу страницы и попадаем в диалог добавления нового элемента отображения информации.
screenshot_2016-11-26-14-24-41.png
Screenshot_2016-11-26-14-24-41. Доступная автоматика HelloDistiller на Ардуино Мега 2560. Автоматика.

Выбираем элемент Switch (переключатель) и остальные параметры заполняем, как указано на этом скриншоте.
screenshot_2016-11-26-14-27-43.png
Screenshot_2016-11-26-14-27-43. Доступная автоматика HelloDistiller на Ардуино Мега 2560. Автоматика.

Не забывайте сохранить введенные настройки.
Теперь при нажатии на эту тестовую кнопку изображение состояния клапана отбора будет меняться.

Скетчи для ардуино и ESP выложу чуть позже. Ну и опишу, как установить локальный брокер Mosquitto в локальной домашней сети (чтобы был выбор между облачным брокером и локальным).

Продолжение здесь [сообщение #12869179]
mak Модератор Екатеринбург 6.3K 1.8K
Отв.6029  26 Нояб. 16, 21:00
golem73,детали точно знает shram1970
max506 Специалист Москва 197 181
Отв.6030  27 Нояб. 16, 12:01
Начало здесь [сообщение #12868551]

Если вам удалось подключиться к MQTT-брокеру и через него с помощью тестовой кнопки поуправлять состоянием клапана отбора, то самое время перейти к заливке скетчей в ардуино Мега и ESP8266.

1. Подготовка среды разработки Arduino IDE для поддержки плат ESP.
Загружаете среду разработки Ардуино (у меня версия 1.6.10). Открываете меню Файл => Настройки.
В открывшемся окне в поле "Дополнительные ссылки для Менеджера плат" вводите строку http://arduino.esp8266.com/...6com_index.json. Жмете "OK".
pic1.png
Pic1. Доступная автоматика HelloDistiller на Ардуино Мега 2560. Автоматика.

Открываете меню Инструменты => Менеджер плат (в самом верху меню, в котором выбирается используемая плата). В открывшемся окне в строке поиска вводите "esp".
pic2.png
Pic2. Доступная автоматика HelloDistiller на Ардуино Мега 2560. Автоматика.

Выбираете esp8266 by ESP8266 Community.
pic3.4.png
Pic3. Доступная автоматика HelloDistiller на Ардуино Мега 2560. Автоматика.

ВАЖНО: Устанавливаемую версию обязательно выбирать 2.0.0, поскольку с более свежими версиями не всегда корректно работает передача данных по UART. Жмете "Установка" и дожидаетесь установки поддержки семейства плат ESP.
Теперь необходимо выбрать саму плату. Мне повезло, поскольку я использую плату WeMos D1, и конкретно она есть в списке. Но также пробовал выбирать ESP-12 Module и ESP-12E Module, тоже работает. Пробуйте варианты для своих плат.
Осталось скопировать библиотеку поддержки MQTT PubSubClient в каталог libraries среды разработки Ардуино. Библиотека в присоединенном файле pubsubclientesp8266.rar
Теперь среда разработки готова для компиляции и загрузки скетча в модуль ESP.

2. Загрузка скетча в ESP.
ВАЖНО:
- перед загрузкой скетча убедитесь, что вы сможете/умеете вернуть в свой модуль ESP предыдущую прошивку.

В этой теме многие писали, что умеют загружать прошивки на основе AT-команд (именно эта прошивка используется программой автоматики изначально), но для непосвященного процесс может быть не тривиальным. Ну, или как вариант, купить еще один модуль. В хозяйстве всегда пригодится и цена их сейчас копеечная.
- я тестировал скетч с модулями, имеющими память 4Mб. Ранние модули ESP имеют память 1Mб, с ними надо пробовать.
Открываем в среде разработки скетч из присоединенного файла Esp8266_MQTT.rar
В верхней части скетча необходимо прописать свои значения в переменные, выделенные на скриншоте
pic4.png
Pic4. Доступная автоматика HelloDistiller на Ардуино Мега 2560. Автоматика.

ssid и pass - это имя и пароль точки доступа, через которую вы выходите в интернет.
mqtt_server, mqtt_port, mqtt_user, mqtt_pass - это значения, которые вы вводили при настройке соединения с брокером в программе MQTT Dash. В переменную esp_name можете прописать название своего модуля esp.
Теперь можно компилировать скетч и загружать его в ESP.

3. Загрузка скетча автоматики в ардуино Мега.
За основу взят скетч версии 347i-1 (см. присоединенный файл HelloDistiller347i-1.rar). Он полностью готов к компиляции и загрузке.
Если вы используете свои версии скетчей, то просто перенесите блоки кода в свои скетчи на те же места (таких блоков пять).
Каждый блок кода помещен в директивы компилятору
//###########################################################################################
#ifdef MQTT_BROKER

<здесь сам код>

#endif
//###########################################################################################

Таким образом код легко переносить между скетчами и с помощью комментирования директивы условной компиляции  //#define MQTT_BROKER полностью исключать его из основного кода программы.

ВАЖНО: платы ардуино Мега и ESP обмениваются информацией по UART. Для ардуино это аппаратный Serial3, пины 15(RX) и 14(TX). У ESP один аппаратный Serial. Не забудьте при подключении согласовать модули по питанию, например, вот через такое устройство http://brainid.ru/product/level-converter-4p/

4. Несколько слов об известной проблеме с недостатком свободной памяти.
Сейчас при компиляции скетча мы видим сообщение о недостатке динамической памяти для размещения в ней значений переменных. Я сразу же столкнулся с этой проблемой, поскольку написанный код содержал много строковых констант, которые передаются потом по UART. Ну а вот Flash памяти, куда загружается код программы, у нас предостаточно. И там же хранятся все текстовые строки. Так почему бы их значения не читать непосредственно из этой памяти, экономя при этом динамическую память? Что я и сделал, объявив эти переменные с директивой PROGMEM и используя соответствующие функции для доступа к Flash (PROGMEM). Благодаря этому удалось разместить весь код в 261 байт динамической памяти (остальное во Flash).
Думаю, что если применить подобный подход к хранению всех текстовых шаблонов строк, выводимых на LCD дисплей, можно совсем избавиться от сообщения "Недостаточно памяти, программа может работать нестабильно".

5. Установка локального брокера Mosquitto.
Если вы не хотите расходовать интернет трафик для подключения к облачному брокеру CloudMQTT, установите в своей локальной сети брокер Mosquitto.
Процесс установки подробно показан в этом видео
Кратко о некоторых моментах:
Скачать брокер можно по этой ссылке в разделе Windows http://mosquitto.org/download/. Инсталляция очень проста и не вызовет проблем. Единственный нюанс (об этом упоминается на видео в 2:35 по времени), требуется скачать дополнительные файлы и поместить их в директорию mosquitto установленного брокера. Я выложил их для вас в присоединенном архиве Mosquitto_files.rar.
Для запуска брокера рекомендую создать ярлык на рабочем столе и запускать с опцией -v, так вы будете видеть в окне консоли брокера все посылаемые через него сообщения.
yarlik.png
Yarlik. Доступная автоматика HelloDistiller на Ардуино Мега 2560. Автоматика.

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

ВАЖНО. Настройка подключения к локальному MQTT брокеру Mosquitto программы MQTT Dash:
- в поле Адрес надо ввести ip-адрес компьютера, на котором установлен брокер;
- порт всегда 1883 по умолчанию;
- если вы не настраивали аутентификацию на брокере, то поля Имя пользователя и Пароль пользователя не заполняете.
Аналогичные настройки требуется прописать в скетч для модуля ESP.

С удовольствием отвечу на возникшие (как по прочтению, так и в процессе установки) вопросы.
Удачи!

Видео ректификации с использованием MajorDoMo и MQTTDash здесь [сообщение #12901566]
msg31 Научный сотрудник Барнаул 4.6K 2.5K
Отв.6031  27 Нояб. 16, 12:52, через 52 мин
Скетч Ардуины не компилируется.
max506 Специалист Москва 197 181
Отв.6032  27 Нояб. 16, 13:06, через 14 мин
Скетч Ардуины не компилируется.msg31, 27 Нояб. 16, 12:52
Скомпилировал у себя. Всё норм.
А какие ошибки пишет?
via Специалист Питер 183 77
Отв.6033  27 Нояб. 16, 13:07, через 2 мин
HelloDistiller347i-1.rar скомпилировался 1.6.9
Скомпилировал у себя.max506, 27 Нояб. 16, 13:06
пжл указывай среду
msg31 Научный сотрудник Барнаул 4.6K 2.5K
Отв.6034  27 Нояб. 16, 13:09, через 2 мин
А какие ошибки пишет?max506, 27 Нояб. 16, 13:06

exit status 1
invalid conversion from 'const char*' to 'char*' [-fpermissive]
HelloDistiller347i-1.rar скомпилировался 1.6.9via, 27 Нояб. 16, 13:07
У меня 1.6.8, наверное надо обновить.
sevpro Доктор наук Worldwide 769 281
Отв.6035  27 Нояб. 16, 17:33
Что я и сделал, объявив эти переменные с директивой PROGMEM и используя соответствующие функции для доступа к PROGMEM.max506, 27 Нояб. 16, 12:01
PSTR не проще?
динамической памятиmax506, 27 Нояб. 16, 12:01
наверное все-таки ОЗУ
binomus Специалист Люберцы 179 64
Отв.6036  27 Нояб. 16, 19:46
msg31, подскажи, бывали в твоей практике косяки с ардуиной или с экраном?
Делаю самый простой эксперимент: ардуина + экран. Прошивка 347i-1. Все настройки по умолчанию.
При питании от USB начинает идти время с надписью Аларм вода (смена тары). На кнопки реагирует, но не всегда. Заходил в некоторые экраны.
При питании от блока питания время вообще хаотически идет.
Предполагаю, что ардуина брешет.
woddy Доцент Новосиб 1.3K 489
Отв.6037  27 Нояб. 16, 20:09, через 24 мин
binomus ,
скорее блок питания брешет. и усб шнурок плохой.
пробуй
1) брать хороший брендовый желательно короткий УСБ шнут
2) питать от другого компа или лучше от брендовой телефонной зарядки
3) другой блок питания  
kn9zb Студент Муром 36 15
Отв.6038  27 Нояб. 16, 20:15, через 6 мин
binomus подтяни датчики сопротивлением к земле, А5,А6,А7 вроде бы, точно не помню, датчики успокоятся,
"При питании от USB начинает идти время с надписью Аларм вода (смена тары)"  пропадёт.
binomus Специалист Люберцы 179 64
Отв.6039  27 Нояб. 16, 20:37, через 23 мин
Самое интересное, что усб шнурок - короткий с оплеткой, шел вместе с платой.
Ардуина была куплена на алиекспрессе.
Датчики вообще никакие не подключены. То что мигает аларм вода меня не напрягает.
Проблема в том, что не на все нажатия клавиш реагирует ардуина.
Пытался подключить внешнюю клавиатуру под руководством шрама, не получилось. Не реагирует.
Внешнюю клавиатуру подключал путем отгиба контакта A0 LCD шилда. При этом мигание надписи аларм вода пропадает, время также не идет.
Картинка следующая.
img_20161127_1302031.jpg
Img_20161127_1302031. Доступная автоматика HelloDistiller на Ардуино Мега 2560. Автоматика.

У меня ощущение, что одна из трех деталей бракованная. Ардуина, экран, или клавиатура.

Попробовал запитать ардуину от усб зарядки 2А. Вроде полегчало. Во всяком случае уже на кнопки лучше реагирует. Но с ними нужно будет еще поразбираться.