Суицид на базе esp8266

Тема в разделе "ESP8266, ESP32", создана пользователем kolkapetkinsyn, 20 окт 2018.

  1. kolkapetkinsyn

    kolkapetkinsyn Нерд

    Привет всем Самоделкиным! Выручайте, я на грани "суицида".
    Как оказалось, делать что-то своими руками намного сложнее, чем смотреть видео на Ютюбе!

    Ну а теперь по делу. Купил esp8266 и горстку модулей, дабы освоить азы.
    Но уже который день у меня ничего не выходит. Решил обратиться к вам за помощью.
    Купил следующие модули для сбора метеостанции.
    Esp8266 https://www.aliexpress.com/item/New...710.html?spm=a2g0s.9042311.0.0.329b33ed5D5nY3
    TFT дисплей 128 на 160 https://www.aliexpress.com/item/WAV...289.html?spm=a2g0s.9042311.0.0.329b33ed5D5nY3
    Htu21d https://www.aliexpress.com/item/WAV...988.html?spm=a2g0s.9042311.0.0.329b33ed5D5nY3
    Mq135 https://www.aliexpress.com/item/WAV...572.html?spm=a2g0s.9042311.0.0.329b33ed5D5nY3
    Bmp280 https://www.aliexpress.com/item/I2C...406.html?spm=a2g0s.9042311.0.0.329b33ed5D5nY3

    Мне, дураку, надо было купить самые попсовые модули и собрать готовы проект по шаблону из сети. Но я, такую мать, оригинал! Вот теперь расплачиваюсь.

    Скетч пишу в программе flprog.
    Начал с подключения esp8266 к домашней wi-fi сети. При помощи базовых функций flprog получилось со второго раза.
    Далее решил подключить mq135, там всего один контакт, Что может быть проще? А хрен угадал. Создаю один аналоговый вход, естественно к нему подключен датчик, переношу этот вход на доску и загорается ошибка блока. Думаю ничего страшного, просто надо куда-то отправить информацию с этого входа, но не тут-то было, ни с одним другим блоком этот вход соединить невозможным. Пробовал компилировать, соединяет с блоками отправки в интернет сервисы, вычислять. Плюнул на mq135 и решил подключить дисплей и дачи htu21d.
    И сразу начались новые карусели, на моём дисплее некоторые пины подписаны не так, как на схемах в интернете, догадаться не получилось. Решил просто получить информацию с датчика htu21d. Но и тут меня постигло фиаско. Программа flprog предлагает подключать модули по i2c к пинам D1 D2, Но это грёбаное чудо китайской индустрии не обнаружилось. На просторах интернета нашел информацию, что это чудо китайской индустрии не хочет работать с этими ногами и нужно подключать к ногам D3 D4. Как уведомить flprog о том что я решил использовать эти пины для подключение по i2c я не нашел. Перебрав все возможные комбинации подключения к пинам D1, D2, D3, D4 обнаружить датчик не удалось. Мучай датчик bmp280 Я не стал. Башка просто разрывается.

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

    Максимальная что получилось достичь, почти за неделю, получить непонятные три числа от датчика mq135. Нашёл в интернете библиотеку и скетч получения информация.
    Выручайте мужики.
     
  2. Вам бы на форум по flprog сходить, раз уж вы этим путем пошли. А то тут эту хрень видели только на картинках.
     
    kolkapetkinsyn и Daniil нравится это.
  3. Mitrandir

    Mitrandir Гуру

    Берем каждый модуль пишем в гугле esp8622 <модуль>
    Гугл выдаст кучу ссылок. Читаем учимся работать с каждым модулем изолиированно. Затем скрещиваем все в одну прогу
     
    kolkapetkinsyn, Daniil и NikitOS нравится это.
  4. Daniil

    Daniil Гуру

    Да, в описанных вами действиях постоянно отсутствует чтение документации.
    И flprog - зачем? Да, есть такая штука, но...зачем? Я не видел статей по этой программе, которые выделяли бы её из серой массы. Программирование прямоугольничками прошло мимо меня. Когда пробовал это, то чувствовал, что мне сковывают движения.
    И ещё, любое обучение начинается с основ и с повторения примитивов. Если берётесь сразу за сложное, то нужно быть готовым к проблемам.
     
    kolkapetkinsyn нравится это.
  5. kolkapetkinsyn

    kolkapetkinsyn Нерд

    Читал я и документацию и статьи, но что то не въезжаю.
    от flprog и в прямь стоит отказаться.
    Будем внимательнее читать документацию и статьи.
    А если кто нибудь скажет какие пины экрана https://www.aliexpress.com/item/WAV...289.html?spm=a2g0s.9042311.0.0.329b33ed5D5nY3 куда втыкать в esp8266 я буду благодарен
     
  6. kolkapetkinsyn

    kolkapetkinsyn Нерд

    воспользовался скетчем для определения адреса htu21d
    Код (C++):

    #include <Wire.h>

    void setup(){
        Wire.begin();

        Serial.begin(9600);
        while (!Serial);
        Serial.println("\nI2C Scanner");
    }

    void loop(){
        byte error, address;
        int nDevices;

        Serial.println("Scanning...");

        nDevices = 0;
        for(address = 8; address < 127; address++ ){
            Wire.beginTransmission(address);
            error = Wire.endTransmission();

            if (error == 0){
                Serial.print("I2C device found at address 0x");
                if (address<16)
                    Serial.print("0");
                Serial.print(address,HEX);
                Serial.println(" !");

                nDevices++;
            }
            else if (error==4) {
                Serial.print("Unknow error at address 0x");
                if (address<16)
                    Serial.print("0");
                Serial.println(address,HEX);
            }
        }
        if (nDevices == 0)
            Serial.println("No I2C devices found\n");
        else
            Serial.println("done\n");

        delay(5000);
    }
     
    в ответ вот это:
    и как понять что это?
     
  7. Daniil

    Daniil Гуру

    WhatchDog таймер влезает и перезагружает.
    Дисплей подключается к spi
     
    Последнее редактирование: 21 окт 2018
  8. kolkapetkinsyn

    kolkapetkinsyn Нерд

    а как его убрать? прописать в скетче и отключить?
     
  9. Daniil

    Daniil Гуру

    Мне кажется, что вы чего-то не то делаете. Я с esp не работал и почему он включён я не знаю. (у ардуинок он выключен)
    Если кратко, то вотчдог нужен на случай если есть вероятность попасть в столь долгий цикл (не предусмотренный программистом). Вызывается прерывание и мк, обычно, перезагружается (что делать в случае срабатывания этого таймера программируется). При этом в тех местах где программист уверен, что программа не зависла, нужно сбрасывать его счётчик.
    Так вот, есть 2 варианта:
    1. выключить его
    2. сбрасывать его счётчик
    и то, и другое это запись в регистры. В какой? - надо читать документацию.
     
  10. Mitrandir

    Mitrandir Гуру

    зачем вам цикл for?

    Конструкцию вида
    Код (C++):
    void loop(){
    byte address;
    for(ADDRESS=8;ADDRESS<127;address++){
    //...

     
    Замените на:
    Код (C++):
    byte AD=8;

    void loop(){
    if ( ad<127){
    /...
    ad++;
    }
    }
    Тогда вотчдог не будет тревожиться
     
    kolkapetkinsyn нравится это.
  11. kolkapetkinsyn

    kolkapetkinsyn Нерд

    не откуда до куда заменять.
    не могли бы вы сами внести изменения в скетч?
     
  12. Mitrandir

    Mitrandir Гуру

    Только если вечером. С телефона неудобно.
     
    kolkapetkinsyn нравится это.
  13. ZAZ-965

    ZAZ-965 Гуру

    @kolkapetkinsyn, к каким ногам подключен htu21d, какая плата выбрана в Arduino IDE?
     
  14. kolkapetkinsyn

    kolkapetkinsyn Нерд

    Все комбинации D1,D2,D3,D4,D5.
    настройки https://yadi.sk/i/70tMr6O6dFKCLg
     
  15. ZAZ-965

    ZAZ-965 Гуру

    На nodemcu SLC - D1, SDA - D2. Пины описаны в pins_arduino.h для вашей платформы
    Код (C++):
    #define PIN_WIRE_SDA (4)
    #define PIN_WIRE_SCL (5)

    static const uint8_t SDA = PIN_WIRE_SDA;
    static const uint8_t SCL = PIN_WIRE_SCL;

    static const uint8_t D0   = 16;
    static const uint8_t D1   = 5;
    static const uint8_t D2   = 4;
     
  16. ИгорьК

    ИгорьК Гуру

    Флуд. (Там в первом посте его полно и название темы располагает)

    Ну вот сделают за вас эту железку, а дальше?
    Так и будете "сыном полка"?
     
    alp69, Airbus и kolkapetkinsyn нравится это.
  17. kolkapetkinsyn

    kolkapetkinsyn Нерд

    подключил, тот же бред в выдаче. bmp280 тоже
     
  18. kolkapetkinsyn

    kolkapetkinsyn Нерд

    А как учиться, если не в общение? Да и ситуация уже бесит. У датчика 4 конкретных провода, которые подключены к конкретным выходам. код самый простой. по запросу "i2c сканер" лежит на всех сайтах с первой страницы Ядекса. Но на выходе лажа! и что делать?
     
    Airbus нравится это.
  19. kolkapetkinsyn

    kolkapetkinsyn Нерд

    а пины я другие пробовал, потому что в мануалах по подключению датчиков использовали не стандартные пины, из-за не желания датчиков работать на стандартных.
     
  20. Airbus

    Airbus Радиохулиган Модератор

    А Форум почитать не?Здесь куча материала по esp8266 и по метеостанциям в частности.ИгорьК целую докторскую диссертацию по ним написал и с кодами в бесплатный доступ выложил.Бери не хочу.Только млять никто не хочет.Все хотят готовый код под свое железо непонятно как и зачем купленное.
     
    Daniil и Mitrandir нравится это.