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

post125

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

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

  • Посещение

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

    9

Сообщения, опубликованные пользователем post125


  1. 26.02.2019 в 09:29, Kitsum сказал:

    Добавление датчика

    Добрый день! Подскажите, пожалуйста, куда лучше добавлять описания переменных и инициализацию wire в основной файл или в sensors.h? И надо ли  еще добавлять библтотеку wire.h  или достаточно, что она загружается в tools.h?

    И еще не пойму куда добавлять

    Функцию сбора данных

    float getSensorData() {
      float value = 0;
      /* Тут описываем работу с Slave по i2c, результат записываем в value */
      return value;
    }

    и

    Добавление датчика

    sensors.add(sensor_knob_cfg, device::out, "sensor_uid", getSensorData);

     то ли в sensor.h, то ли в user_auto.h, то ли в user_bme280_2.h, либо создать новый файл с аналогичной структурой?


  2. 26.02.2019 в 09:29, Kitsum сказал:

    Я бы копал в сторону стандартной библиотеки Wire.h

    Добрый день! Благодарю за помощь. Ваши магические строки "*(float*)b1 = f1;" и "f2 = *(float*)b1; "  решили проблему передачи данных с ардуино на ESP. Долго мучался, как оказалось, с библиотекой ESP v2.5.0 - она категорически не хотела принимать массив из 8-и и более бит. Замена на более старую версию 2.4.2 решила проблему. В ходе опытов остановился на том, что к ESP как slave будут подключаться несколько ProMini каждая со своей NRFкой, т.к. в этом случае не надо сортировать и раскладывать данные из разных труб NRF в большой масив (>32байт) , потом его делить и передавать на ESP.

    Начинаю пробовать добавлять датчики в скетч Метеостанции.

    • Like 1

  3. 10.03.2019 в 23:08, Kitsum сказал:

    попробуйте такой вариант разбора float на массив byte

    что-то не хочет компилироваться:

    float2byte:9:3: error: stray '\357' in program
       Serial.printf ("f1: %f\r\nf2: %f\r\n", f1, f2);
       ^
    float2byte:9:3: error: stray '\273' in program
    float2byte:9:3: error: stray '\277' in program
    float2byte:9:3: error: stray '\357' in program
    float2byte:9:3: error: stray '\273' in program
    float2byte:9:3: error: stray '\277' in program
    exit status 1
    stray '\357' in program

     

     


  4. 5 часов назад, Kitsum сказал:

    Таким образом получается, что ProMini является агрегатором данных со всех беспроводных устройств, работающих через NRF и передающих мастеру данные в виде массива из 4-х byte для каждого float.

    Добрый день! Благодарю за ответ. У меня так и получается, что та ProMini , которая рядом с ESP, получает данные от пяти удаленные ProMini, причем каждая удаленная ProMini передает данные массивом от 3 до 8 параметров. Эти данные принимаются и висят в памяти этой принимающей ProMini. А вот забрать ESPшкой я не понимаю как. Подскажите, пожалуйста, где почитать как разобрать данные float (либо int) на байты и обратно. Ничего вразумительного в сети не нашел. Застрял на этой передаче данных по I2C и не вижу просвета... Заранее благодарен.


  5. 26.02.2019 в 09:29, Kitsum сказал:

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

    Добрый день!

    Соединил ESP(master) c ProMini(c NRF)(slave). ProMini принимает данные с датчика через NRF и отдаёт ESP. Но возникла проблема в том, что Wire.h может передавать данные как byte или char, а через NRF я могу иередать массив из 8-ми float (либо из 16-ти int). Соответственно, ESP в serial выдаёт не то, что хотелось бы видеть. Можете подсказать, как разобрать массив из floatов на байты и после передачи обратно собрать из байтов во float? Либо, может быть, возможен другой путь?


  6. 4 часа назад, Kitsum сказал:

    Если причина действительно в этом и Вам удастся выловить символ, то дайте мне знать какой он.

    не стал откладывать на завтра, сделал сегодня. ESPке не понравиля символ & , ответила ошибкой 500


  7. Добрый вечер! Есть ли какие либо ограничения по используемым символам в SSID и пароле. Не могу понять , почему к одной сети подключается, а к другой нет. И то сохраняет настройки сети в вебинтерфейсе, то нет.(не ругается, пишет, что сохранено, но при перезагрузке контроллера или страницы остаются старые значения)


  8. 1 час назад, Kitsum сказал:

    Как мне кажется, эта библиотека не подойдет, но проверить конечно же стоит.

    Спасибо, буду пробовать. К ESP будет подключен только один датчик BME280 по i2c для давления, темп и влаж в помещении. Всё остальное через ардуину (скорее Нано) с приемнком NRF. Каждый передатчик NRF может за раз передать массив из 8 floatов, из них 1 уйдёт на напряжение батареи. Поскольку каждая NRF передает данные в своей трубе, то идентификатор передавать не надо. 7 floatов остается на датчики. И таких NRF можно подключить 5шт. (не строя сеть для экономии батарей). Полагаю, мне этого хватит. 


  9. 08.10.2018 в 12:04, Kitsum сказал:

    Я не вижу причин не позволяющих реализовать то, что Вы задумали. Конечно есть нюансы, но они будут всегда.

    Добрый день! За прошедшее время освоил передачу данных через NRF24 с датчиков , подключенных к ProMini . И прием данных на Мегу с выводом на экран . Теперь в раздумье, как забрать ESPшкой с Меги (или Нано) полученные данные датчиков. Как Вы уже рекомендовали, хочу подключить Ардуину как slave к ESP по I2C. Нашел библиотеку iarduino_I2C_connect для этих целей. Думаю, должно получиться. А вот как потом эти данные переварить в ESP и отправить в локальный web-сервер и (или) народный монитор? Подскажите, пожалуйста, куда копать, а то несколько дней никак не могу сообразить, с чего начать.

    PS: пробывал перепаивать на ESP 64Mbit и 128Mbit флеш , программировал как Generic ESP8266 module в формате 8(7SPIFFS) и 16(15SPIFFS). Ваша метеостанция работает, в веб-интерфейсе корректно отображается размер установленной памяти. Так что запас для модификации веб-интерфейса есть.


  10. 23 часа назад, Devilisimo сказал:

    Если кому-то интересно выкладываю свою версию, она пока сырая, но работает.

    Добрый день! Попробовал залить Вашу версию, не может найти библиотеку U8g2lib, Откуда закачать?

    2 часа назад, Kitsum сказал:

    ошибка связана с использованием одной из Beta версий библиотеки ArduinoJson

    Благодарю за ответы, прошу прощения за невнимательность - на версии вообще не обратил внимание. Все залилось, точка доступа появилась, приступаю к изучению. Тёмный лес, конечно же для меня, но "дорогу осилит идущий". Спасибо!


  11. 09.10.2018 в 10:10, Kitsum сказал:

    @post125 Это хороший и довольно интересный вариант.

    Вам будут доступны несколько интерфейсов для связи. Разработчик заложил связь через UART, но Вы вполне можете связать ATmega 2560 и ESP8266 через I2C, порты GPIO4 и GPIO5 доступны и выведены на колодку #1.

    image.png

    Указано, что на плате распаяна флешь на 32 мегабайта, это хорошо т.к на старых ревизиях с 1-м мегабайтом было бы совсем грустно и пришлось бы облегчать оформление web интерфейса ESP.

    Из особенностей отмечу, что управление внешними исполнительными механизмами полностью ложиться на ATmega 2560, если вообще этот функционал будет востребован.

    Благодарю за ответ,

    1. с сегодняшнего дня решил начать пробовать программировать ESP, взял Вашу стандартную прошивку, подсоединил поддержку ESP в Arduino IDE, выделил 3Мб под SPIFFS. залил "ESP8266 Sketch Data Upload". а воот надо ли нажимать кнопку обычной загрузки скетча? у меня выдает ошибку - с этим разобрался, а вот теперь пишет другие ошибки:

    Arduino: 1.8.5 (Mac OS X), Плата:"NodeMCU 1.0 (ESP-12E Module), 80 MHz, Flash, 4M (3M SPIFFS), v2 Lower Memory, Disabled, None, Only Sketch, 115200"

    In file included from /Users/i74790/Documents/Arduino/ESP8266_WS_V2.0_iT4IT.CLUB/ESP8266_WS_V2.0_iT4IT.CLUB.ino:24:0:
    sketch/config.h: In member function 'bool config::read()':
    config.h:151: error: 'DynamicJsonBuffer' was not declared in this scope
           DynamicJsonBuffer jsonBuffer;
           ^
    config.h:151: error: expected ';' before 'jsonBuffer'
           DynamicJsonBuffer jsonBuffer;
                             ^
    config.h:152: error: 'jsonBuffer' was not declared in this scope
           JsonObject &json = jsonBuffer.parseObject(configFile);
                              ^
    config.h:154: error: 'class ArduinoJson650_0_0::JsonObject' has no member named 'success'
           if (json.success()) {
                    ^
    sketch/config.h: In member function 'bool config::write()':
    config.h:171: error: 'DynamicJsonBuffer' was not declared in this scope
           DynamicJsonBuffer jsonBuffer;
           ^
    config.h:171: error: expected ';' before 'jsonBuffer'
           DynamicJsonBuffer jsonBuffer;
                             ^
    config.h:172: error: 'jsonBuffer' was not declared in this scope
           JsonObject& json = jsonBuffer.createObject();
                              ^
    config.h:178: error: 'class ArduinoJson650_0_0::JsonObject' has no member named 'printTo'
           if (json.printTo(configFile)) {
                    ^
    sketch/config.h: In member function 'bool config::write(String)':
    config.h:189: error: 'DynamicJsonBuffer' was not declared in this scope
         DynamicJsonBuffer jsonBuffer;
         ^
    config.h:189: error: expected ';' before 'jsonBuffer'
         DynamicJsonBuffer jsonBuffer;
                           ^
    config.h:190: error: 'jsonBuffer' was not declared in this scope
         JsonObject& json = jsonBuffer.parseObject(apiSave);
                            ^
    config.h:191: error: 'class ArduinoJson650_0_0::JsonObject' has no member named 'success'
         if (json.success()) {
                  ^
    exit status 1
    'DynamicJsonBuffer' was not declared in this scope

    2 второй вопрос по плате ATmega 2560 с 32Мб - там встроен ESP8266, всё равно надо внешний подключать?

    ATmega 2560 с 32Мб больше нет в наличии, может использовать обычную Мегу с SD-картой?

    На Алиэкспрессе некоторые продавцы пишут, что это 32 Мбита=4Мбайта, что , скорее всего так и есть, тем более, что в даташите указано на максимальный теоретический объём памяти в 16Мбайт. Может, к ESP8266 прикрутить SD-карту или, если общаться с датчиками будет Мега, на долю ESP останется свой сервер и передача данных на удаленный сервер. В таком случае может и 3МБ хватит?

    продавец в России подтвердил 32 Мегабита


  12. 20 часов назад, Kitsum сказал:

    В общем памяти у Вас на все это хватит

    Премного благодарен за подробное объяснение. Понял, что малое количество портов на ESP8266 не проблема. Продумаю конфигурацию, начну пробовать. Еще раз спасибо!

    Есть плата 2в1 Мега+ESP

    https://robotdyn.ru/catalog/arduino/boards/mega_wifi_r3_atmega2560_esp8266_flash_32mb_usb_ttl_ch340g_micro_usb.html

    Может на ней собрать? Мега будет собирать данные с со всех датчиков, а ЕСП делать всё остальное? Или лучше отдельно Мегу и отдельно ESP?


  13. Добрый день!

    Прочитал  вчера все 20 страниц этой темы, круто, голова распухла. Хочу собрать метеостанцию для дома , улицы и теплицы в одном флаконе. Ответьте, пожалуйтста, на вопрос - получится ли собрать метеостанцию без исполнительных модулей на основе модели в этой теме в следующей конфигурации:

    1.esp8266,

    2. датчик давления ESP180 -1шт. (через провод),

    3. четыре датчика температуры и влажности hdc1080 (из них 2 собраны на Ардуино Мини каждый и передают данные через NRF24L01),

    4. два датчика температуры DS18B20 (через провод),

    5. датчик скорости и направленя ветра (собраны на Ардуино Мини и передают данные через NRF24L01),

    6. модуль RTC DS3231 и синхронизация времени через интернет,

    7. еще один датчик температуры на Ардуино Мини на DS18B20 и анализом наличия сети 220В на 3-х каналах (генератор, обычная сеть и бесперебойник) с передачей через NRF24L01.

    8. датчик осадков (либо через провод, либо через NRF24L01)

    8. Дисплей c интерфейсом I2C

    9. Данные надо передавать на внешний сервер, от внутреннего сервера можно отказаться, если не будет хватать памяти

    10. для сохранения логов хотелось бы воспользваться SDкартой через Micro SD SPI адаптер

    10. Если вдруг хватит входов еще 2 отдельных датчика DS18B20 через NRF24L01.

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

    Заранее благодарен за ответ

×
×
  • Создать...