Приветствую, знатоки. Решил создать устройство на базе ардуино, которое должно облегчить мне немного жизнь. Но столкнулся с небольшой проблемой, т.к. программирование не мой канёк и как работает МК плохо представляю, поэтому решил обратится к сообществу знатоков.
Что я хочу?
На ардуино мега2560 создать устройство, которое бы:
1. Управляло и контролировало работу локальной очистной системой (ЛОС),
2. Система контроля и управления доступом (калитка и распашные ворота),
3. Миниметео-станция, на 1 датчик температуры(или DS18B20, или DHT22) и возможно освещенности,
4. Отправка статистики и взаимодействие с сервером MajorDoMo.
Что имеем?
1. Arduino Mega2560,
2. Блок реле (управление насосами,компрессором, магнитным замком, воротами),
3. DS1302 часы реального времени,
4. JSN-SR04T влагозащищённый Ultrasonic,
5. Ethernet w5100,
6. Датчик освещенности,
7. Датчик температуры DS18B20 (герметичный),
8. Датчик давления газа.
Принцип работы ЛОС:
В течении дня работает поочередно компрессор 2 часа, потом 1 час дренажный насос. Ночью в 3:00 режим тишины в течении 1:15, затем на 15 мин. включается 2-й дренажный насос для откачки очищенной воды и пошло опять по кругу. DS18B20 контролирует температуру воды в канализации, а Ultrasonic уровень. Датчик освещённости активируется во время откачки о контролирует прозрачность воды. Датчик давления контролирует работу компрессора. Все изменения состояний отсылаются на сервер MajorDoMo.
Принцип СКУД:
Управление эл. приводами ворот и магнитным замком калитки, а также контроль их концевиков (геркон).
Отправка статистики подразумевает взаимодействие Arduino и MajorDoMo по ModbusTCP, и вот тут начались первые проблемы.
Прочитать суть проблемы. Пришлось немного извращаться, думаю что отсюда и дальнейшие проблемы работы меги, флаги я пишу по ModbusTCP, а состояния и измерения отправляю в Get.
До подключения 18B20 и Ultrasonic (Давления и освещённости еще не было) все работало как запланировано, после начались зависания МК. температура должна была отправляться каждые 5 мин, а уровень каждые 30 мин. и это работало до отключения 1-го насоса, потом зависало, а на выходах привязанных к открыванию ворот и калитки появлялись единички. Без подключения ЛОС и СКУД 18B20 и Ultrasonic работают нормально.
При дальнейшей отладке заметил, что по истечении времени опроса датчика ds18b20 (установленного в настройках) дважды моргает светодиод L на 13 пине (при подключенном по I2C дисплее в этот момент тухнет подсветка), ethernet начинает слать все GET-запросы, а реле насоса если включено продолжает работать. По гуглил, по этим признакам похоже на программный reset и отсюда первый вопрос:
Это программный reset, так и должно быть или я что-то не так делаю?
Думаю зависание и происходило из-за Get-запросов, т.к. в одно и тоже время их отправлялось несколько, даже статусы СКУД, которые по моим расчётам должны отсылаться только при изменении. Поставил задержки на GET и проблема вроде разрешилась. Решил добавить датчик освещённости, который должен отсылать свои данные всё тем же GET с 4:15 каждую секунду хотя бы секунд 15-20 и опять такое же зависание, пока не понимаю почему, вроде бы уже и Get не пересекаются, и считывание с датчика должно происходить в указанное время, а зависает через непродолжительное время после включения в любое время.
Взываю к помощи знатоков. Проект прилагаю.
P.S. Автору программы большое спасибо, готов поддерживать проект на постоянной основе, если проект будет и дальше развиваться. Зная немного азы схемотехники, логики и языка С и посмотрев Ваши видео начал осваивать Arduino, а когда-то это слово было для меня матерным.
Спасибо тем кто дочитал.
Проблема взаимодействия
Проблема взаимодействия
Внес небольшие изменения в проект и отказался от ModbusTCP заменив его на WebServerPage, всё вроде заработало как надо, кроме DS18b20 и WebServerPage. Термодатчик работает несколько часов, потом присылает 0, хотя к макетке никто не лезет и ничего не отключает. А WebServerPage работает как положено около 2-х часов, а потом при обращении к нему запросы уходят, но не отрабатываются, а Get-запросы WebClient от Меги идут как положено даже после отказа WebServerPage.
Установил FLprog 2.3 скомпилировал и уже почти сутки DS18B20 работает как положено, а WEB-сервер по-прежнему без изменений.
Кто-нибудь использует WebServerPage в своих проектах продолжительное время? Что может быть не так?
Установил FLprog 2.3 скомпилировал и уже почти сутки DS18B20 работает как положено, а WEB-сервер по-прежнему без изменений.
Кто-нибудь использует WebServerPage в своих проектах продолжительное время? Что может быть не так?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Проблема взаимодействия
Внес небольшие изменения в проект и отказался от ModbusTCP заменив его на WebServerPage, всё вроде заработало как надо, кроме DS18b20 и WebServerPage. Термодатчик работает несколько часов, потом присылает 0, хотя к макетке никто не лезет и ничего не отключает. А WebServerPage работает как положено около 2-х часов, а потом при обращении к нему запросы уходят, но не отрабатываются, а Get-запросы WebClient от Меги идут как положено даже после отказа WebServerPage.
Установил FLprog 2.3 скомпилировал и уже почти сутки DS18B20 работает как положено, а WEB-сервер по-прежнему без изменений.
Кто-нибудь использует WebServerPage в своих проектах продолжительное время? Что может быть не так?
Установил FLprog 2.3 скомпилировал и уже почти сутки DS18B20 работает как положено, а WEB-сервер по-прежнему без изменений.
Кто-нибудь использует WebServerPage в своих проектах продолжительное время? Что может быть не так?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Проблема взаимодействия
Зависания часто бывают следствием некачественного питания.
Надо разделять питание релейных модулей и самой Ардуино. Ставить фильтра, оптроны, экранирование.
И все же надо заводить переменные.
Надо разделять питание релейных модулей и самой Ардуино. Ставить фильтра, оптроны, экранирование.
И все же надо заводить переменные.
Проблема взаимодействия
Настроен, но не скажу_ что смотрю туда часто.Mikhail72 писал(а):то-нибудь использует WebServerPage в своих проектах продолжительное время? Что может быть не так?
Параллельно натрона передача на народный мониторинг.
А так работает уже два года.
Но зависания иногда случаются, притом я уверен, что сама плата работает нормально, а виснет
Проверти температуру чипа, у многих он греется и если в закрытом корпусе, то может и сбоить.Mikhail72 писал(а):5. Ethernet w5100,
- Siberian
- Лейтенант
- Сообщения: 633
- Зарегистрирован: 07 сен 2015, 11:51
- Откуда: СССР
- Имя: Александр
- Благодарил (а): 34 раза
- Поблагодарили: 5 раз
Проблема взаимодействия
Когда-то давно я уже описывал проблему при подключении ультразвукового датчика.
При подключении не работают генераторы (если используются в проекте), и точно уже не помню, но вроде были какие-то глюки с таймерами...
А собака зарыта в самой программе работы с ультразвуковым датчиком, основа лежит в функции прерывания.
Я в те давние времена, задавал вопрос автору программы, но на тот момент ничего нельзя было изменить.
Наверное так всё и осталось.
Чтобы убедиться, можно собрать весь проект без ультразвукового датчика (не использовать его вобще в проекте), и посмотреть работоспособность всего остального, не имеющего отношения к ультразвуковому датчику.
При подключении не работают генераторы (если используются в проекте), и точно уже не помню, но вроде были какие-то глюки с таймерами...
А собака зарыта в самой программе работы с ультразвуковым датчиком, основа лежит в функции прерывания.
Я в те давние времена, задавал вопрос автору программы, но на тот момент ничего нельзя было изменить.
Наверное так всё и осталось.
Чтобы убедиться, можно собрать весь проект без ультразвукового датчика (не использовать его вобще в проекте), и посмотреть работоспособность всего остального, не имеющего отношения к ультразвуковому датчику.
Проблема взаимодействия
Спасибо, откликнувшимся, всё функционирует нормально, даже после последнего обновления DS18B20 стал работать как задумано, но проблема в другом. Вчера ещё подправил программу и сделал вывод значений с датчиков на хостовую страницу WebServerPage. Сегодня посмотрел с утра хостовая работает данные на нее выводятся, а при обращении к другим страницам (адрес/1, адрес/2, адрес/3, адрес/4) должны появляться единицы на соответствующих выходах, при первом запуске и перезагрузки Меги они работают, проверял вчера через 2 часа после запуска всё работало, ушёл спать, а утром выходы не работают. W5100 работает к ней претензий нет, хоть и греется, я на нее поставил радиатор от малины.
От меги на сервер данные приходят, но мне нужно чтобы при обращении к ней, она дергала ножки, т.е. например удалённо открыть калитку или ворота, хотел использовать ModbusTCP, но сервер MajorDoMo не корректно с Мегой взаимодействует. Нужно чтобы один из разработчиков той(MDM) или этой(FLProg) программы допилили этот протокол, а лучше скооперировались и допилили.
Как ещё можно активировать выходы ардуино удалённо?
[spoiler=Спойлер]
[/spoiler]
Добавлено (05.02.2017, 15:38)
---------------------------------------------
Посмотрел видео, почитал информацию по протокол MQTT и решил остановится на нём, перевёл написанную программу на MQTT и уже сутки всё работает так как и планировалось. Если сравнивать температуру чипа w5100, то при использовании MQTT чип чуть тёплый в районе 50 градусов, при использовании GET и ModbasTCP через 5-10 сек палец невозможно держать на чипе. Спасибо ещё раз Слимперу за созданные блоки MQTT.
От меги на сервер данные приходят, но мне нужно чтобы при обращении к ней, она дергала ножки, т.е. например удалённо открыть калитку или ворота, хотел использовать ModbusTCP, но сервер MajorDoMo не корректно с Мегой взаимодействует. Нужно чтобы один из разработчиков той(MDM) или этой(FLProg) программы допилили этот протокол, а лучше скооперировались и допилили.
Как ещё можно активировать выходы ардуино удалённо?
[spoiler=Спойлер]
[/spoiler]
Добавлено (05.02.2017, 15:38)
---------------------------------------------
Посмотрел видео, почитал информацию по протокол MQTT и решил остановится на нём, перевёл написанную программу на MQTT и уже сутки всё работает так как и планировалось. Если сравнивать температуру чипа w5100, то при использовании MQTT чип чуть тёплый в районе 50 градусов, при использовании GET и ModbasTCP через 5-10 сек палец невозможно держать на чипе. Спасибо ещё раз Слимперу за созданные блоки MQTT.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость