Arduino. ТехноСфера. Шаг-2. Скетч для ESP-12F WeMos D1 WiFi

На предыдущую страницу…

Назначение скетча — обеспечение информационного обмена:
1. «ESP-12F WeMos D1 WiFi» с «внешним» ПО через Wi-Fi;
2. «ESP-12F WeMos D1 WiFi» с сопряженным Arduino UNO через «Tx/Rx»;
3. «Внешнего» ПО с сопряженным Arduino UNO через «ESP-12F WeMos D1WiFi».

Важно! Для того, чтобы не связываться с нюансами парсинга HTTP-запросов принято, что в строке HTTP-запроса вместо символа «точка с запятой» используется цепочка символов z9z
Например:
http://192.168.0.103/serial_println?098BB20A0CEE4FBBAB7BDC71EB2A8778 z9z pin_12=HIGH z9z pin_13=1

При разработке скетча для ESP-12F WeMos D1 WiFi частично воспользовался уже сделанными наработками других авторов, которые были опубликованы в Инете.

И еще...
Не "СИ-шник" я (думаю на Pascal). 
Да и аппаратную матчасть (Arduino) знаю, пока что, очень слабо.
Так что - приношу извинения, за низковатое (вероятно) качество исходников в скетче...

Текст скетча можно посмотреть в PDF-формате или скачать INO-файл в ZIP-архиве.

Некоторые замечания к этому скетчу

Перед «заливкой» скетча в ESP-12F WeMos D1 WiFi необходимо определить актуальные значения 3-х констант и одной переменной.

Прежде всего, необходимо указать актуальное имя WI-FI-сети (см. выноска-1 на рисунке 1) и пароль доступа (см. выноска-2 на рисунке 1).

Рисунок-1 Константы, значения которых необходимо актуализировать

Далее, следует назначить уникальный ID для каждого конкретного Устройства в рамках ТехноСферы (см. выноска-3 на рисунке 1).

Необходимость использования ID связана с тем, что в процессе тестов выяснилось:
1. При очередном подключении Устройства (ESP-12F WeMos D1 WiFi) к источнику питания, ему может быть назначен иной IP в сети, чем был «перед этим».
2. Иногда, ESP-12F WeMos D1 WiFi может и самостоятельно перезагрузиться (по непонятным мне причинам) и в этом случае ему тоже может быть назначен иной IP в сети.

Т.е., ПО, которое предназначеное для обеспечения процесса формирования информационного пространства, должно быть «готово» к подобного рода аварийным ситуациям.
При возникновении подобной ситуации, ПО должно «уметь» автоматически найти заданное устройство (в сети), перенастроиться и продолжить выполнять свою функцию.

Важно:
1. Нет никаких концептуальных ограничений на значение ID, кроме уникальности.
Но… лично я предпочитаю (по возможности) использовать значения, сгенерированные на основе GUID.
2. В данном случае, значение ID оставляем в скетче «As Is» (как есть).
Т.е., не меняем по той причине, что во всех примерах, которые приведены далее, используется это значение.

Далее — еще один важный момент.
Иной раз, в процессе отладки или модификации скетча (с использованием Arduino IDE), может быть полезным оперативно получить текущее значение IP в сети, назначенное устройству.
Для этого, необходимо установить значение переменной ItsMode_Debug, равное true (для реальной работы, если Устройство физически сопряжено с Arduino UNO ( с использованием Tx/Rx ), значение должно быть false, как показано на рисунке 2, выноска-4).___

Рисунок-2 Значение переменной ItsMode_Debug

___

На рисунке 3 приведен пример сообщения от Устройства (принятое в мониторе COM-порта Arduino IDE). Это возможно в том случае, если ItsMode_Debug = true.

___

Рисунок-3 Сообщение (отправленное устройством после его перезагрузки через
COM-порт), содержащее текущее значение его IP в сети

___
Следует помнить, что в реальной ситуации, когда ESP-12F WeMos D1 WiFi физически сопряжено с Arduino UNO (в данном случае) с использованием Tx/Rx, значение переменной ItsMode_Debug должно быть всегда равно FALSE!!!

ItsMode_Debug = false

На следующей странице приведен перечень команд, распознаваемых Устройством (ESP-12F WeMos D1 WiFi) с использованием данного скетча.


Дата: 03.11.2021