NodeMCU (Lua) — ADC
АЦП (aналого-цифровой преобразователь) используется для считывать аналоговые значения с таких компонентов, как датчики температуры, потенциометры, датчики света и т.д. ESP8266 имеет только один канал АЦП (A0), который в зависимости от настройки можно использовать для считывания внешнего напряжения или для считывания напряжения питания ESP8266.
В каком режиме будет использовать АЦП можно настроить с помощью функции adc.force_init_mode().
Обратите внимание, что после переключения с одного режима на другой требуется перезагрузка, прежде чем изменение вступит в силу.
Получить напряжение питания чипа ESP8266 можно с помощью функции adc.readvdd33(0), функция возвращает результат уже в милливольтах.
if adc.force_init_mode(adc.INIT_VDD33) then
node.restart()
return
end
print("System voltage (mV):", adc.readvdd33(0))

Функция adc.read(0) используется для измерения внешнего напряжения, разрядность 10 бит (1024), диапазон изменяемого напряжения для "голых" модулей от 0 до 1В, при использовании плат NodeMCU, Wemos D1 от 0 до 3.3В, так на плате уже имеется делитель напряжение.
if adc.force_init_mode(adc.INIT_ADC) then
node.restart()
return
end
print(adc.read(0))

