Перейти к содержанию
    

dontsov

Участник
  • Постов

    138
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Информация о dontsov

  • Звание
    Частый гость
    Частый гость
  • День рождения 01.01.1988

Контакты

  • Сайт
    Array

Посетители профиля

2 528 просмотров профиля
  1. Добрый день! Требуется реализовать веб-интерфейс настройки ESP8266 на, видимо, RTOS или Non-OS. Сейчас реализация на Arduino Framework и из-за тысяч устройств мы достаточно часто натыкаемся на проблемы с подключением к определенным роутерам. Требуется сделать демо-проект в котором реализовано следующее: - поиск wi-fi роутеров, отображение списка - подключение к выбранному wi-fi роутеру по паролю - отображение статуса подключения: успех, не успех(причина). Среда разработки PlatformIO. Проект будет opensource в GitHub. Опыт серийных коммерческих проектов на ESP обязателен. В случае успешного тестирования 2й этап: проект обрастет веб-страницами, i2c. Связь: tg dontsovcmc или здесь
  2. Добрый день всем! Ищу программиста для доработки open source прошивки Ватериуса. С увеличением количества электронных счетчиков тепла, газа, появился запрос сделать поддержку коротких импульсов (4мс). Т.е. нужна поддержка прерываний в прошивке. Электрическую схему менять не хочется. Задача: 1. Добавить прерывания как отдельную функцию в имеющуюся прошивку (это возможно?). Чтобы attiny прочитав настройку понимала, по прерываниями работать или просыпаться периодически. *Требуется ли изменение электрической схемы Ватериуса? Можно ли обойтись текущей? Дорабатывать вебсервер ESP не требуется, но если можете, то ок.
  3. Какая то страшная переписка здесь. Есть куча готовых плат с антеннами для LoRa — подключаете датчики и скидывайте на базовую станцию (они тоже готовые есть). Опишите подробнее задачу — объем данных, расстояния, тогда комментарии будут релевантнее.
  4. Есть OpenSource прошивка ESP8266 на базе Arduino Framework + WiFiManager: https://github.com/dontsovcmc/waterius Задача 1: Требуется обновить Arduino Framework и WiFiManager, проверить на нескольких роутерах. Кинем в сообщество для тестирования. WiFiManager пришлось чуть доработать - добавил 1 вызов и другой код страниц. Надо будет перенести изменения, ничего сложного. Задача 2*: Проверить проблему с ошибкой подключения к 1% роутеров. Есть роутер Sercomm rv6699 к которому не подключается, могу выслать почтой. Другие роутеры: - Sercomm rv6699 - Innbox e70 - TP-Link AX5400 Иногда лечится установкой статического ip в ESP, иногда нет. Версия фреймворка достаточно старая, возможно стабильность уже улучшили. Тестировать можно на NodeMCU. Аналогичным образом не подключалась к данному роутеру какая то из прошивок ESPEasy, а старая ESPEasy stable подключалась. Гипотезы: - Ошибка вылечится обновлением версий; - WiFiManager некорректно использует WiFiClient; - WiFiClient необходимо донастроить, может вынести параметр в интерфейс; - Ошибка в WiFiClient (Однажды я уже исправлял в нём ошибку. Будет и у вас commit.=)) Оплачиваемо по этапам. Бюджет на первую задачу 10к. Торг.
  5. Оpensource проекту Ватериус требуется программист C++. Нужен опыт работы с ESP8266. Задача писать лог ESP8266 в LittleFS, чтобы можно было загрузить из вебинтерфейса при возникновении ошибок: https://github.com/dontsovcmc/waterius/issues/203 Оплату предлагайте. (Если сотрудничество удастся, есть ещё несколько задач на рефакторинг).
  6. @Сергей Борщ спасибо! Я вчера поучаствовал в долгой дискуссии в которой объяснили (и я понял и признал) насколько у меня «французский с Нижегородским» в коде.. ахах Буду рефакторить. Вообще, если начать понимать, что написал, можно убрать половину кода. Мда. Я до сих пор удивлен, насколько мало находится примеров с watchdog. И те без комментариев. Вот думаю насколько целесообразно переписать с нуля на регистрах всё.
  7. @Сергей Борщ @jcxz У меня прерывание после sleep... Других нет.
  8. А как это сделать?
  9. Хм… атомарного не уверен… а где это можно узнать? да, uint32_t здорово увеличивают память
  10. Да, в последней версии сделали uint32_t его! https://github.com/dontsovcmc/waterius/tree/dev
  11. @slanted wdt_enable в setup убрал. Посмотри, пожалуйста: https://github.com/dontsovcmc/waterius/tree/dev
  12. Все таки зависает прошивка. Не понятно отчего. Да, она не перезагружается по watchdog аварийно. Тему продолжил тут:
  13. Я попробовал имитировать задержку в коде, чтобы сработал watchdog на перезагрузку - он срабатывает, но плата уходит в зависание. Кажется потому что не выставлял MCUSR = 0. @slanted: Вот такой код корректно перезагружает если wdt_reset не наступит за 250мс: volatile uint32_t wdt_count; ISR( WDT_vect ) { ++wdt_count; WDTCR |= _BV(WDIE); } void setup() { noInterrupts(); info.service = MCUSR; // причина перезагрузки MCUSR = 0; // без этого не работает после перезагрузки по watchdog wdt_disable(); // а нужно ли тут, если у меня код быстро дойдёт до инициализации watchdog? interrupts(); set_sleep_mode( SLEEP_MODE_PWR_DOWN ); // достаточно же 1 раз сделать? wakeup_period = WAKEUP_PERIOD_DEFAULT; ..... } void loop() { power_all_disable(); //NoInterrupts не нужно? т.к. в wdt_enable есть ассемблерная команда cli wdt_enable(WDTO_250MS); interrupts(); wdt_count = 0; while ((wdt_count < wakeup_period) && !button.pressed()) { counting(); WDTCR |= _BV(WDIE); //пока не понял, обязательно ли здесь или можно после wdt_enable раз в WDT_vect есть. без этого не работает. sleep_mode(); } power_all_enable(); // Далее: я не отключаю watchdog, для надежности. wdt_reset() вызывается в button.wait_release() где я могу долго ждать пока пользователь отпустит кнопку. ... //взаимоотношения с ESP }
  14. @slanted последняя версия пока не зависала. но и предыдущая на столе 3 месяца назад не висла.. https://github.com/dontsovcmc/waterius/commit/612b8c626a5d018d566dfa210f00ac661e73affe#diff-9f275c81ac6d42b2d0a1caa9dee157db9fa36a1193217286fb083b66fb933914
×
×
  • Создать...