ESP8266:Примеры/Считывание аналоговых данных через контакт ADC на ESP8266

Материал из Онлайн справочника
Перейти к: навигация, поиск

Перевод: Максим Кузьмин (Cubewriter)
Перевел 1848 статей для сайта.

Контакты:

Проверка/Оформление/Редактирование: Мякишев Е.А.


Ambox content.png Черновик


Считывание аналоговых данных через контакт ADC на ESP8266[1]

Модули ESP-12E и ESP-07 имеют контакт ADC. Доступ к нему получить очень просто и благодаря ему ESP-12E и ESP-07 могут считывать аналоговые значения от устройств вроде датчиков температуры, потенциометров, датчиков света и т.д.

Перед тем, как продолжить, советую пройти эти руководства:

Контакт ADC

Этот контакт на ESP8266 могут называть по-разному:

  • ADC (от «analog-to-digital converter», т.е. «аналогово-цифровой преобразователь»)
  • TOUT
  • Контакт 6
  • A0
  • Аналоговый контакт 0

На данный момент контакт ADC имеет 10-битное разрешение, а его диапазон для входящего напряжения составляет от 0 до 3,3 вольт (если ADC подключен к внешней цепи).

Доступ к контакту ADC на ESP8266

Доступ к этому контакту на ESP-12E получить очень просто – вам нужно всего лишь подключить к нему провод-перемычку (см. фото ниже).

Контакт A0 на модуле ESP-12E

На модуле ESP-07 к этому контакту нужно припаять провод.

Контакт A0 на модуле ESP-07

Необходимые компоненты

  • Рекомендуемый вариант – один модуль ESP-12E; альтернативный вариант – один модуль ESP-07 + один программатор FTDI
  • Одна макетная плата
  • Один резистор на 100 Ом
  • Один резистор на 220 Ом
  • Один потенциометр на 1 кОм

Запись на ESP прошивки NodeMCU

В этом проекте для считывания аналоговых данных используется прошивка NodeMCU. О том, как загрузить ее на ESP, читайте тут.

Загрузка ESPlorer IDE

Для отправки команд на ESP8266 рекомендую использовать программу ESPlorer IDE, написанную пользователем 4refr0nt. Чтобы скачать и установить ее, проделайте следующее:

  1. Загрузите отсюда ZIP-архив с программой
  2. Распакуйте архив
  3. Перейдите в главную папку
  4. Запустите файл «ESPlorer.jar»
  5. Откройте ESPlorer

О вольтовом диапазоне на контакте ADC

Согласно даташиту ESP8266, контакт ADC имеет 10-битное разрешение. Это значит, что считанное аналоговое значение будет в диапазоне от «0» до «1024».

Контакт ADC конвертирует напряжение, находящееся только в диапазоне от 0 до 3,3 вольт. Поэтому перед тем, как подавать на контакт ADC (он же A0) какое-либо напряжение, убедитесь, что используете устройство, которое выдает не более 3,3 вольт. В противном случае вам понадобится делитель напряжения:

Voltage-divider-equation 3.png

Примечание: У ранних версий ESP контакт A0 может работать с напряжением не выше 1 вольта. Поэтому перед сборкой цепи, описанной в следующем разделе, убедитесь, что A0 на вашем модуле может работать с 3,3 вольтами.

Схема

Потенциометр подключается к ESP следующим образом:

  • Красный провод – к контакту 3.3V
  • Оранжевый провод – к контакту A0
  • Черный провод – к контакту GND
Esp8266 pot 4.png

Тестирование контакта ADC (A0)

Чтобы отправлять команды при помощи ESPlorer IDE, вам нужно установить последовательное соединение между компьютером и ESP. Для этого сделайте следующее:

  1. Подключите ESP-12E или программатор FTDI к компьютеру
  2. Выставьте скорость передачи данных на 9600 бод
  3. Выберите порт, к которому подключен ESP-12E или программатор FTDI (например, COM3)
  4. Нажмите на кнопку «Open/Close»

Все элементы, необходимые для этих действий, показаны на картинке ниже красным цветом:

Esplorer-1 5.png

Затем впишите команду print(adc.read(0)) и нажмите на кнопку «Send», как показано на картинке ниже:

ESPlorer 6.png

Вам должно вернуться значение в диапазоне от «0» до «1024». Теперь покрутите потенциометр и еще несколько раз отправьте команду print(adc.read(0)). Если регулятор потенциометра будет выставлен ближе к 0 вольт, программа напечатает что-то около «0», а если ближе к 3,3 вольт, то что-то около «1024».

См.также

Внешние ссылки

  1. randomnerdtutorials.com - ESP8266 ADC – Reading Analog Values with NodeMCU