Wi-fi slot: адресация к модулям на slot expander

Тема в разделе "ESP8266, ESP32", создана пользователем Xan, 15 июн 2020.

  1. Xan

    Xan Нуб

    Добрый день!
    Никак не пойму, как подружить Wi-Fi slot в связке со Slot Expander с разными датчиками.
    Возьмём самый простой пример подключения датчика освещения. При подключениии непосредственно в Wi-Fi Slot минимальный код, выводящий показания датчика, выглядит, например, так:
    Код (C++):
    #include <TroykaLight.h>
    TroykaLight sensorLight1(A0);

    void setup() { Serial.begin(115200); }

    void loop() {
        sensorLight1.read();
        Serial.print(sensorLight1.getLightLux());
        Serial.print(" Lx\n");
        delay(500);
    }
    Теперь подключим Slot Expander со стандартным id = 42 и переставим сенсор в на pin 1 платы расширения.
    Напрашивается что-то типа:
    Код (C++):
    #include <Wire.h>
    #include <GpioExpander.h>
    #include <TroykaLight.h>

    GpioExpander expander(42);
    TroykaLight sensorLight1(42);

    void setup() {
        Serial.begin(115200);
        Wire.begin();
        expander.begin();
    }

    void loop() {
        sensorLight1.read();
        Serial.print(sensorLight1.getLightLux());
        Serial.print(" Lx\n");
        delay(500);
    }
    то есть опрос датчика как обычно. Но вот только адрес 42 не подходит.
    Да, я знаю про expander.pinMode; да, можно конечно использовать expander.analogRead(), а потом копировать и менять код из стандартной библиотеки, чтобы преобразовать полученные данные, но нет ли более правильного решения по адресации пинов из Slot Expander с использованием классов из стандартных библиотек Амперки? Или, возвращаясь к данному примеру, можно ли как-то создать объект TroykaLight sensorLight1(); с адресом на Slot Expander?