Оглавление:

Последовательный шлюз UDP / IP для Arduino на базе ESP8266 Shield: 8 шагов
Последовательный шлюз UDP / IP для Arduino на базе ESP8266 Shield: 8 шагов

Видео: Последовательный шлюз UDP / IP для Arduino на базе ESP8266 Shield: 8 шагов

Видео: Последовательный шлюз UDP / IP для Arduino на базе ESP8266 Shield: 8 шагов
Видео: Обмениваемся массивом данных между тремя и более Piranha ESP32 2024, Июль
Anonim
Последовательный шлюз UDP / IP для Arduino на базе ESP8266 Shield
Последовательный шлюз UDP / IP для Arduino на базе ESP8266 Shield

В 2016 году я уже публиковал эту инструкцию «Как создать собственный шлюз Wi-Fi для подключения Arduino к IP-сети». Так как я внес некоторые улучшения в код и все еще использую это решение.

Тем не менее, сейчас есть некоторые экраны ESP8266, которые позволяют делать то же самое без пайки, если вы не используете платы Micro или Nano.

В этом руководстве объясняется, как использовать эти экраны ESP82 в качестве последовательного шлюза UDP / IP.

Это часть глобальной инфраструктуры домашней автоматизации, которую вы можете посмотреть здесь

Больше информации о щите с этой инструкцией

Запасы

1 Arduino Mega (лучше всего иметь как минимум 1 Mega для разработки и 1 Uno для фазы запуска)

1 Rokoo ESP8266 ESP-12E UART WIFI Convertisseur

1 FTDI 3,3 В

2 макетных провода

Шаг 1. Как это работает?

Как это работает ?
Как это работает ?

Шлюз основан на модуле ESP8266

Этот модуль подключен с одной стороны последовательным каналом с другой стороны к IP-сети с помощью Wi-Fi.

Он действует как черный ящик. Пакеты данных, поступающие из последовательного канала, отправляются на порт IP / Udp и наоборот.

Вам просто нужно установить свою собственную конфигурацию (IP, WIFI…) при первом включении шлюза.

Он может передавать как необработанные ASCII, так и двоичные данные (без HTTP, JSON…)

Он предназначен для соединения объектов с серверным программным обеспечением домашнего производства, которым требуется быстрая и частая передача коротких пакетов данных.

Шаг 2. Каковы основные функции?

В основном это черный ящик, который конвертирует последовательные данные в пакет UDP обоими способами.

Но шлюз также может действовать самостоятельно, отправляя внутреннюю информацию на сервер и получая некоторые команды от сервера.

Arduino может отправлять и получать сообщения на / от сервера, подключенного через Интернет, просто распечатав / прочитав последовательную ссылку. Разработчику Arduino незачем беспокоиться о протоколе IP.

Вдобавок ко всему он предоставляет GPIO, который может использоваться Arduino для проверки правильности подключения шлюза к WIFI, а шлюз может автоматически переключаться между двумя разными SSID в случае сбоя.

Шлюз имеет 2 различных режима работы, которые выбираются путем установки GPIO.

Установите GPIO на землю, и шлюз войдет в режим конфигурации.

После установки GPIO шлюз перейдет в режим работы шлюза.

Кроме того, конфигурацию шлюза UDP / IP можно изменить удаленно.

Шаг 3: создание материала

Сборка материала
Сборка материала

Требуется очень немногое

1 ESP8266 Shield - я нашел этот модуль платы расширения последовательного WiFi Shield UNO R3 ESP8266 менее чем за 9 €

1 UNO, который является целевой целью Arduino

1 Mega - инструмент для разработки на Arduino (без него можно обойтись, но его довольно сложно отлаживать)

1 FTDI 3.3 / 5v для разработки

Некоторые провода

Шаг 4. Загрузите код шлюза

Загрузите код шлюза
Загрузите код шлюза

На этом этапе Arduino используется только для питания (от USB или другого источника питания) на плате ESP8266.

Подключите ESP8266 GPIO4 к земле (для входа в режим настройки)

Позаботьтесь о том, чтобы установить FTDI на 3,3 В в соответствии с требованиями экрана.

Подключите FTDI к шилду (от RX к TX)

Установите переключатель экрана в положение 1: выкл. 2: выкл. 3: вкл. 4: вкл.

Подключите USB-сторону FTDI к компьютеру.

Сбросьте щит с помощью кнопки ESP-RST

Загрузите код шлюза на GitHub

Откройте Arduino IDE

  • Выберите порт монитора FTDI
  • Откройте последовательный монитор IDE - установите скорость 38400
  • Выберите стандартную плату модуля ES8266
  • Обновите прошивку щита кодом шлюза

Установите переключатель 3: выключено 4: выключено

Откройте последовательный монитор IDE.

Сбросьте щит с помощью кнопки ESP-RST

На мониторе должны отображаться сообщения, начинающиеся с «Инициализация EEPROM» «Инициализация завершена»….

Пора заняться настройкой

Шаг 5: приступим к настройке шлюза

При первой загрузке кода шлюза ESP8266 Eeprom будет инициализирован со значениями по умолчанию. Вы увидите такие сообщения «установить параметр: x size: yy»

Вы можете найти эти значения в определении кода paramValue. Конечно, вы можете изменить эти значения по умолчанию перед загрузкой кода, но вы также можете настроить свою конфигурацию с помощью команды позже. Это лучше, если вы планируете использовать несколько шлюзов и хранить только одну версию кода.

Используйте последовательный порт монитора для отправки команды (установите NL и CR).

Поскольку SSID в настоящее время не определен, дождитесь сообщения «Не удалось подключиться к второму идентификатору повторной попытки: 5».

Затем автоматически начнется сканирование WIFI.

Пришло время установить ваши SSID с помощью следующих команд:

  • SSID1 = ваш выбор1
  • PSW1 = yourpsw1
  • SSID2 = ваш выбор2
  • PSW2 = yourpsw2
  • SSID = 1 (чтобы выбрать, с какого SSID начинать)
  • Перезагрузка Wi-Fi

Через несколько секунд вы можете проверить соединение с помощью команды «ShowWifi». Вы должны увидеть IP-адрес, который шлюз получил от вашего DNS-сервера. Если это так, пора идти дальше

Пришло время определить адрес вашего IP-сервера, введя 4 дополнительных адреса (сервер, на котором будет запущен тестовый код Java). Например:

  • «IP1 = 192»
  • «IP2 = 168»
  • «IP3 = 1»
  • «IP4 = 10»

Отправив пустую команду, вы увидите все поддерживаемые команды, которые вы можете использовать позже в соответствии с вашими требованиями. Все значения параметров хранятся в EEPROM и требуют перезагрузки.

Снимите провод конфигурации

Щит теперь работает как шлюз

Шаг 6: Загрузите пример кода Arduino

Загрузите пример кода Arduino
Загрузите пример кода Arduino

Сначала загрузите основной код Arduino на GitHub

Затем загрузите код Arduino, это определение команд и этот код последовательной ссылки в свои библиотеки.

Затем откройте основной код в новой среде разработки Arduino.

Выключите переключатели 1 и 2 экрана, чтобы освободить последовательный канал 0 Arduino для USB-подключения.

Сбросить щит

Подключите провода FTDI к Mega Serial 2 (TX FTDI к RX Mega и т. Д.)

Запустите новую IDE Arduino (или инструмент TTY), подключите FTDI Usb и начните отслеживать последовательную связь.

Загрузите код Arduino в Mega

Включите переключатель 1 и 2 экрана, чтобы подключить последовательный канал 0 Arduino.

Сбросить щит

Вы должны увидеть это сообщение "начать печать по USB" на мониторе.

Шаг 7: займемся серверной частью

Пример сервера - это программа на Java, которую вы можете скачать здесь, на GitHub.

Просто запустите его и посмотрите на консоль Java и посмотрите на монитор FTDI.

Вы увидите обмен данными между сервером и Arduino

Шаг 8: идти дальше

Идти дальше
Идти дальше
Идти дальше
Идти дальше

Этот пример кода Arduino основан на фреймворке моей инфраструктуры домашней автоматизации.

Если вас интересует эта инфраструктура, дайте мне знать. Я опубликую источники.

Если вы просто хотите использовать шлюз, вы можете упростить код Arduino.

После разработки и тестирования вашего кода на Arduino Mega вы можете легко заменить его на Uno!

Кроме того, вы можете подключить провод между Arduino GPIO 7 и ESP8266 GPIO 5, если вы хотите, чтобы ваш Arduino проверял соединение Wi-Fi.

Рекомендуемые: