Перейти к публикации
iT4iT.CLUB

Forester

Пользователи
  • Публикации

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

  • Посещение

  • Дней в лидерах

    2

Все публикации пользователя Forester

  1. Forester

    Метеостанция на ESP8266 от it4it.club

    services: send data to MQTT server answer: CONNECTED P.S. Вручную забил в Корневой путь espWeatherStation, после этого заработало. Может, кто подскажет, как отправить по MQTT текст? Т.е. мне нужно отправить URL. Если воспользоваться mqttPublish, при компиляции получаю что-то типа: cannot convert 'const char*' to 'float' for argument '2' to 'bool mqttPublish(String, float)'
  2. Forester

    Метеостанция на ESP8266 от it4it.club

    А кто-нибудь проверял работу MQTT? Что-то у меня не работает. Хотя на предыдущих версиях работало.
  3. Forester

    Метеостанция на ESP8266 от it4it.club

    Что-то не компилируется у меня. Ошибки сыпятся типа 'WiFiMode_t' has not been declared P.S. А нет. Распаковал архив через 7-zip, а не WinRar. Скомпилировалось. Вот оно чо...
  4. Forester

    Метеостанция на ESP8266

    Что я думаю? Я думаю, где мне взять "Arduino IDE с поддержкой контроллера ESP8266 не ниже v2.4.0" под виндувс))) P.S. Всё понял. Нужно всего-лишь обновить модуль для платы ESP в ARDUINO IDE
  5. Forester

    Метеостанция на ESP8266 от it4it.club

    Может быть, не совсем в тему, но опишу забавный случай. У меня есть реле Sonoff Base, на котором я провожу периодически тестирование разных прошивок. Последний раз тестировал ESPEasy. И в процессе тестирования обнаружился аппаратный брак. Если плату вынести на холод (примерно -10 градусов), то через некоторое время она теряет wifi роутер и уходит в бесконечный реконнект. Заносишь в дом, нагревается, и уже минуты через две нормально коннектится к точке. Я предполагаю, что проблема в бракованном кварцевом резонаторе, у которого уплывает частота при охлаждении.Просто была уже подобная проблема с клоном Arduino UNO. Только там наоборот плата нормально работала только в холодильнике, а принагреве зависала)) Поменял резонтатор - отлично работает уже не один год. Вот такие поделки иногда приходят с али. Либо во втором случае присутствует какая-то микротрещина на плате.
  6. Forester

    Метеостанция на ESP8266 от it4it.club

    Удалось мне реализовать свою идею, которую я описывал в этом посте (про визуализацию скорости изменения давления). Так как программирование веб-интерфейса для меня даже не темный лес, а что-то типа области за горизонтом событий черной дыры, решил использовать для этого протокол MQTT и андроид-приложение с возможностью получения URL картинки и отображения этой самой картинки в интерфейсе. Код получился такой (программистам с расшатанными нервами смотреть не рекомендуется!): Если кому-то интересно, файлик ESP8266_WS_iT4iT.CLUB.ino со своими изменениями прикрепил. Понимаю, что грамотный человек реализует все гораздо правильней, взяв уже готовые данные из таблицы для графика. Но моих знаний для этого не хватает. Так что как-то так)) Для отображения показаний сваял в фотошопе на первое время вот такой манометр. В MQTT клиенте это пока выглядит так: ESP8266_WS_iT4iT.CLUB.zip
  7. Forester

    Метеостанция на ESP8266 от it4it.club

    Ну тогда подозрение падает на ESP. Либо у вас качество сигнала по какой-то причине ухудшается (расстояние, помехи), либо какая-то аппаратная особенность конкретно этого ESP модуля. Попробовать другой модуль.
  8. Forester

    Метеостанция на ESP8266 от it4it.club

    Судя по скриншотам, там роутер asus. Со штатной прошивкой vpn сервер отлично работает. Не один год пользуюсь.
  9. Forester

    Метеостанция на ESP8266 от it4it.club

    А если заполнить массив не нулями а примерно средними значениями? Ну, например, для давления 730 мм.рт.ст.... Тогда, наверное, масштабирование будет адекватным с самого начала построения графика?
  10. Forester

    Метеостанция на ESP8266 от it4it.club

    Ну, как вариант, попробовать с другого роутера подключиться. Смартфон настроить как точку доступа, подключить ESP к ней и посмотреть, как ситуация изменится на мобильном интернете. Чтобы появилась хоть какая-то информация для размышления)
  11. Forester

    Метеостанция на ESP8266 от it4it.club

    Ну пока умные люди ничего не ответили, попробуйте поменять в этой строке 600000 на 300000, чтобы данные отправлялись каждые пять минут, а не 10. Вдруг что-то изменится) Но, скорее всего, в настройках вашего интернета надо разбираться. Еще я б попробовал (как советуют здесь https://esp8266.ru/forum/threads/primer-otpravki-na-narodmon-ru.917/ ) в этой строчке заменить narodmon.ru на IP адрес 94.142.140.101
  12. Forester

    Метеостанция на ESP8266 от it4it.club

    Может, сохранить страницу как .html на компе, который открывает нормально. Перенести сохраненный файл и папку на проблемный комп и попробовать это открыть? Проблема то ведь не в соединении, а в каких-то параметрах винды (которые используют все установленные браузеры). Чего там может быть... джаву обновить?
  13. Forester

    Метеостанция на ESP8266 от it4it.club

    Имхуется мне, что что-то с выводами SDA и SCL напутано. Раз BME280 перестал определяться. Смотрите, где-то ваш код переназначает SDA и SCL на другие пины. Если оставить только ваш код, дисплей нормально работает именно на тех пинах, к которым подключен датчик?
  14. Forester

    Метеостанция на ESP8266 от it4it.club

    Да, мы наконец то поняли друг друга. Если быть точным, японцы не закладывали в часы сравнение двух показаний. В часах CASIO просто идет построение графика изменения давления на матричном ЖКИ. И каждая следующая точка на индикаторе "зажигается" через два часа после предыдущей. Нас интересует первая производная от этого грубого графика. Если давление изменяется менее чем на 1 гПа, следующая точка загорается на одном уровне с предыдущей. Изменилось на +/- 1 гПа (0,03 дюйма.рт.ст или 0,75 мм.рт.ст.) - загорается на один уровень выше или ниже относительно предыдущей. И так далее. То есть, я в своем "барометре" ввел пять уровней изменения атмосферного давления. Каждый следующий уровень отличается от предыдущего на 1 гПа. Свои выводы сделал после многолетних наблюдений за графиком японских часов. Разницу между соседними точками на графике более чем на 4 уровня я ни разу не видел. Ну, возможно, в других уголках планеты такое бывает. Но это в любом случае очень сильные изменения давления. Я тут поднял инструкции снова от часов. И понял, что, во-первых, в инструкции допущена ошибка (вместо 0,05 дюймов.рт.ст. нужно было написать 0,03 дюйма.рт.ст.). Наверное, при переводе инструкции на русский допустили опечатку. Во-вторых, я в своем коде тоже неправильно указал диапазоны для сравнения. наверное перенес эту опечатку, начав рассчитывать от 0,05 дюймов, а не от гектопаскаля. Пересчитав заново, получаются такие цифры (если ошибся, поправьте): 0. 0,00 < ΔP < 0,75 мм.рт.ст. (1 гПа) - стабильное атмосферное давление 1. 0,75 ⩽ ΔP ⩽ 1,50 мм.рт.ст. (1 гПа) - легкие возмущения атм. давления 2. 1,50 ⩽ ΔP ⩽ 2,25 мм.рт.ст. (2 гПа) - к перемене погоды 3. 2,25 ⩽ ΔP ⩽ 3,00 мм.рт.ст. (3 гПа) - к резкой перемене погоды 4. 3,00 ⩽ ΔP мм.рт.ст. (4 гПа) - к концу света Так же в отрицательную сторону. Промежуток между измерениями 2 часа.
  15. Forester

    Метеостанция на ESP8266 от it4it.club

    Понял причину бага, из-за которого у меня ESP не реконнектится к роутеру после перезагрузки роутера. Если в роутере настроен невидимый SSID, то ESP не видит точку доступа и соответственно не пытается к ней подключиться. Не знаю, можно ли такое реализовать...Но надо, видимо, не искать SSID в эфире, а потом к ней подключаться. А просто пытаться к ней подключиться.
  16. Forester

    Метеостанция на ESP8266 от it4it.club

    Нет. Я держу в памяти только два значения, остальные отбрасываю. То есть все измеренные значения выводятся на экран, но для сравнения выбираются только два с разницей в два часа (такой алгоритм заложен в часах CASIO). Сравнение происходит не с каждым измерением, а раз в два часа. Этого достаточно. Около года тестирую такой алгоритм. Ардуина адекватно повторяет своими стрелками на экране "крутизну" графика на часах CASIO. В данном проекте самый простой вариант, наверное, - подсвечивать шкалу давления четырьмя разными цветами. Ну например: зеленый - давление стабильное; желтый - первая скорость изменения давления; оранжевый - вторая; красный - третья; черный - четвертая. А падение или рост обозначать какой-то стрелкой. Ну это мои соображения. У кого-то всегда найдутся идеи получше))
  17. Forester

    Метеостанция на ESP8266 от it4it.club

    Если интересно, вот полный код https://yadi.sk/d/B0x4Thf73RSUvH
  18. Forester

    Метеостанция на ESP8266 от it4it.club

    Нет. Опрашивать можно сколько угодно раз. Но запоминать одно значение, а второе через два часа. И сравнивать их. Я не программист и свой страшный код даже боюсь показывать здесь. В моем случае код простой. Опрос датчиков каждые две секунды с инкрементом переменной и сбросом ее в ноль через 3599 циклов (через два часа). Если переменная равна нулю, запоминаем первое значение давления. Если переменная равна 3599 - запоминаем второе.
  19. Forester

    Метеостанция на ESP8266 от it4it.club

    Может быть, в проекте приживется идея с индикацией скорости изменения атм. давления? Ведь, как правило, интересно именно это значение, а не абсолютное. Например, на дисплее HD44780 я реализовал это в виде четырех стрелок, указывающих либо вверх, либо вниз. Диапазоны для скорости изменения взял с часов CASIO ProTrek PRG-40. Получился такой код. Отлично работает. Очень информативно получается. Видишь на экране две-три стрелки - жди изменения погоды. Четыре - еще не видел ни разу ни на часах CASIO, ни на своей поделке. Первые два часа вместо стрелок выводится слово "wait". В общем, такой вариант отображения информации с барометра (на мой взгляд!) несет гораздо больше смысла, чем абсолютное значение. И даже крутизну графика давления оценить гораздо сложнее, чем четыре стрелки или, например, четыре цветовых уровня... Как уж это реализовать в интерфейсе - вопрос вкуса. Думаю, что в данном проекте это получилось бы красиво. if(((Q2 - Q1) >= 0.64)&((Q2 - Q1) < 1.27)){ //Если разность между измерениями давления с интервалом в 2 часа от 0.64 до 1.27 мм.рт.ст. Press[0] = '\1'; //Зажигаем ОДНУ стрелку ВВЕРХ Press[1] = ' '; Press[2] = ' '; Press[3] = ' '; } if(((Q2 - Q1) >= 1.27)&((Q2 - Q1) < 2.54)){ //Если разность между измерениями давления с интервалом в 2 часа от 1.27 до 2.54 мм.рт.ст. Press[0] = '\1'; //Зажигаем ДВЕ стрелки ВВЕРХ Press[1] = '\1'; Press[2] = ' '; Press[3] = ' '; } if(((Q2 - Q1) >= 2.54)&((Q2 - Q1) < 3.81)){ //Если разность между измерениями давления с интервалом в 2 часа от 2.54 до 3.81 мм.рт.ст. Press[0] = '\1'; //Зажигаем ТРИ стрелки ВВЕРХ Press[1] = '\1'; Press[2] = '\1'; Press[3] = ' '; } if((Q2 - Q1) >= 3.81){ //Если разность между измерениями давления с интервалом в 2 часа от 3.81 мм.рт.ст. и более Press[0] = '\1'; //Зажигаем ЧЕТЫРЕ стрелки ВВЕРХ Press[1] = '\1'; Press[2] = '\1'; Press[3] = '\1'; } if(((Q2 - Q1) <= -0.64)&((Q2 - Q1) > -1.27)){ //Если разность между измерениями давления с интервалом в 2 часа от -0.64 до -1.27 мм.рт.ст. Press[0] = '\2'; //Зажигаем ОДНУ стрелку ВНИЗ Press[1] = ' '; Press[2] = ' '; Press[3] = ' '; } if(((Q2 - Q1) <= -1.27)&((Q2 - Q1) > -2.54)){ //Если разность между измерениями давления с интервалом в 2 часа от -1.27 до -2.54 мм.рт.ст. Press[0] = '\2'; //Зажигаем ДВЕ стрелки ВНИЗ Press[1] = '\2'; Press[2] = ' '; Press[3] = ' '; } if(((Q2 - Q1) <= -2.54)&((Q2 - Q1) > -3.81)){ //Если разность между измерениями давления с интервалом в 2 часа от -2.54 до -3.81 мм.рт.ст. Press[0] = '\2'; //Зажигаем ТРИ стрелки ВНИЗ Press[1] = '\2'; Press[2] = '\2'; Press[3] = ' '; }; if((Q2 - Q1) <= -3.81){ //Если разность между измерениями давления с интервалом в 2 часа от -3.81 мм.рт.ст. и более Press[0] = '\2'; //Зажигаем ЧЕТЫРЕ стрелки ВНИЗ Press[1] = '\2'; Press[2] = '\2'; Press[3] = '\2'; }; if(((Q2 - Q1) < 0.64)&((Q2 - Q1) > -0.64)){ //Если разность между измерениями давления с интервалом в 2 часа от 0.64 до -0.64 мм.рт.ст. Press[0] = ' '; //Не зажигаем ни одной стрелки Press[1] = ' '; Press[2] = ' '; Press[3] = ' '; }
  20. Forester

    Метеостанция на ESP8266 от it4it.club

    По-моему, помимо отсутствия автоматического реконнекта к роутеру после перезагрузки последнего, еще проблема с давлением на BME280. За несколько часов абсолютно не отклонилось от величины 740 мм.рт.ст. Вроде как, не бывает такого. В narodmon то же самое отправляет. P.S. Прошу прощения. С давлением разобрался. Вроде бы, всё в порядке. просто первое показание записалось как "0". Отсюда соответственное масштабирование графика было. В narodmon можно удалить это ошибочное показание. А как быть с графиком в веб-интерфейсе ESP? У меня там тоже первое значение давления равно нулю. И график поэтому в неправильном масштабе (прямая линия). P.S.S. Да, с BME280 проблема: первое показание равно нулю. Нужно исключить его в коде.
  21. Forester

    Метеостанция на ESP8266 от it4it.club

    Да, проблема ушла. Спасибо. Но у себя обнаружил другую большую проблему. Если роутер перезагружается, ESP переходит в режим точки доступа. И обратно коннектится к роутеру , только после ручной перезагрузки... Или необходимо подождать?
  22. Forester

    Метеостанция на ESP8266 от it4it.club

    Ну... я имею ввиду, что мне не понятно абсолютно, что там происходит))) Это программирование не для средних умов. А я просто приколхозил чего-то) Интуитивно.
  23. Forester

    Метеостанция на ESP8266 от it4it.club

    Спасибо за быстрый ответ =) Но там решение такое сложное... Я, как настоящий дуремар, решил проблему таким способом: #ifdef TG_BME_280_I2C_H BME280I2C::Settings settings; //settings.bme280Addr = 0x76; // 0x76 0x77 BME.setSettings(settings); Wire.beginTransmission(0x76); if (Wire.endTransmission() == 0) { temperature.status = humidity.status = pressure.status = BME.begin(); } #endif Строки с BMP180 все закомментировал.
  24. Forester

    Метеостанция на ESP8266 от it4it.club

    Не могу связать с датчиком BME280. Если раскомментировать строчки //#include <BME280I2C.h> //BME280I2C BME; Arduino IDE ругается: А если оставить, как есть, то ESP находит датчик по адресу 0х76, но данные с датчика на главную страницу не выводит.
×
×
  • Создать...