Код (C++): #include <LiquidCrystal_I2C.h> #include <Wire.h> #include <Strela.h> // подключаем библиотеку для работы с платформой "Strela" boolean buttFlag = LOW; // флажок кнопки int numCase = 1; unsigned long lastPress = 0; // время последнего нажатия byte lamps[] = {L4, L3, L2}; // порты ламп int pin = 0; // переменная для бегущего огонька LiquidCrystal_I2C lcd(LC_ADDR, LCEN, LCRW, LCRS, LC4, LC5, LC6, LC7); void setup() { uPinMode(S1, INPUT); // кнопку - на вход // настройка всех ламп на выход for (int i = 0; i <= 2; i++) uPinMode(lamps[i], OUTPUT); lcd.begin(8, 2); lcd.home(); } void loop() { if (uDigitalRead(S1) && buttFlag == LOW && millis() - lastPress > 200) { numCase++; if (numCase > 3) numCase = 0; buttFlag = HIGH; } if (uDigitalRead(S1) == LOW && buttFlag) buttFlag = LOW; switch (numCase) { case 1: uDigitalWrite(lamps[0], HIGH); uDigitalWrite(lamps[1], LOW); uDigitalWrite(lamps[2], LOW); lcd.home(); lcd.print("Temp:"); case 2: uDigitalWrite(lamps[1], HIGH); uDigitalWrite(lamps[0], LOW); uDigitalWrite(lamps[2], LOW); lcd.home(); lcd.print("Light:"); case 3: uDigitalWrite(lamps[2], HIGH); uDigitalWrite(lamps[0], LOW); uDigitalWrite(lamps[1], LOW); lcd.home(); lcd.print("Length:"); } } } Это только часть кода)
А вот тебе урок IoT, но тоже немного сокращен.... http://wiki-amperkot.h1n.ru/doku.php?id=esp_iot:урок_2._интернет_термометрnf