ESP8266:Примеры/Отправка данных от Arduino на ESP8266 через последовательный порт

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

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

Контакты:

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


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


Отправка данных от Arduino на ESP8266 через последовательный порт[1]

Эта статья рассказывает, как настроить отправку данных от платы Arduino на модуль ESP8266 через последовательную коммуникацию.

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

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

  • Один модуль ESP8266
  • Одна плата Arduino Uno
  • Один программатор FTDI
  • Одна макетная плата
  • Один светодиод
  • Один резистор на 220 ом
  • Один резистор на 1 кОм
  • Один резистор на 2 кОм
ESP01v0 1.jpg

Загрузка скетча на Arduino

Скетч для этого проекта очень прост. Сначала в блоке setup() запускается последовательная коммуникация со скоростью 9600 бод. Затем в блоке loop() каждую секунду печатается слово «HI!» (это сообщение, которое будет передаваться на ESP).

Скопируйте скетч ниже в IDE Arduino, а затем загрузите его на плату Arduino.

  1. /*
  2.  * Автор - Руи Сантос (Rui Santos)
  3.  * Более подробно о проекте на: randomnerdtutorials.com
  4.  */
  5.  
  6. // отправка данных от Arduino на ESP8266
  7. // через последовательный порт на скорости 9600 бод:
  8.  
  9. void setup() {
  10.     Serial.begin(9600);
  11. }
  12.  
  13. void loop() {
  14.     Serial.print("HI!");  //  "ПРИВЕТ!"
  15.     delay(1000);
  16. }

Теперь, если открыть монитор порта IDE Arduino на скорости 9600 бод, в нем ежесекундно будет печататься сообщение «HI!»

Схема подключения ESP8266 к 3,3-вольтовому программатору FTDI

Загрузив на ESP8266 прошивку NodeMCU, подключите ESP8266 и программатор FTDI друг к другу как показано на картинке ниже. Это установит между ними последовательное соединение, с помощью которого на ESP8266 можно будет загрузить скрипт для этого проекта.

Schematics (3.3V FTDI Programmer) 2.png

Загрузка ESPlorer IDE

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

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

В результате перед вами откроется вот такое окно:

Esplorer-start 3.png

Скрипт для ESP8266

Вставьте в ESPlorer IDE вот этот код:

  1. -- Автор – Руи Сантос (Rui Santos)
  2. -- Более подробно о проекте на: randomnerdtutorials.com
  3.  
  4. ledOn = 0
  5. pin=4
  6. gpio.mode(pin,gpio.OUTPUT)
  7. uart.on("data", 3,
  8.     function(data)
  9.         print("Received from Arduino:", data)
  10.           --  "Получено от Arduino:"
  11.         if data=="HI!" then
  12.             if ledOn==0 then
  13.                 ledOn = 1
  14.                 gpio.write(pin,gpio.HIGH)
  15.                 print("LED On")
  16.                   --  "Светодиод включен"
  17.             else
  18.                 ledOn = 0
  19.                 gpio.write(pin,gpio.LOW)
  20.                 print("LED Off")
  21.                   --  "Светодиод выключен"
  22.         end        
  23.     end        
  24. end, 0)

После загрузки скрипта ESP будет настроен на прослушивание последовательного соединения. При каждом получении сообщения «HI!» на скорости 9600 бод он будет либо включать, либо выключать светодиод, подключенный ко 2-ому GPIO-контакту.

Загрузка скрипта

Чтобы загрузить скрипт на ESP8266, проделайте следующее:

  1. Подключите программатор FTDI к компьютеру
  2. Выставьте скорость передачи данных на 9600 бод
  3. Выберите порт, к которому подключен программатор FTDI (к примеру, COM3)
  4. Нажмите кнопку «Open/Close»
  5. Кликните на вкладку «NodeMCU+MicroPython»
  6. Скопируйте LUA-скрипт в ESPlorer IDE

После этого вам останется лишь нажать на кнопку «Save to ESP» и сохранить файл под названием «init.lua». Все элементы программы, необходимые для этих действий, подсвечены на картинке ниже красным цветом:

Esplorer Uploading Your Script 4.png

Общая схема

Подключите компоненты друг к другу как показано на картинке ниже:

Esp8266-talks-via-serial-with-arduino-s 5.png

Примечание: В этой схеме используется делитель напряжения, переключающий логику с 5-вольтовой (Arduino) на 3,3-вольтовую (ESP8266). Для низких скоростей он работает хорошо, но на высоких могут возникнуть проблемы. О том, как понизить вольтовую логику, читайте в этой статье.

Демонстрация

Теперь светодиод должен начать мигать по одному разу в секунду. Если это происходит, то все настроено правильно – Arduino посылает сообщение «HI!», а ESP это сообщение получает. В видео ниже этот проект показан вживую:

https://www.youtube.com/watch?v=VROj6i3npo0

Теперь вместо отправки простого «HI!» вы можете подключить к Arduino какие-нибудь датчики, а затем отправлять на ESP данные от этих датчиков. Потом на основе этой сборки можно сделать веб-сервер, который будет показывать эти данные в браузере.

См.также

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

  1. randomnerdtutorials.com - Sending Data From an Arduino to the ESP8266 via Serial