Оглавление:

Как создать собственный WIFI-шлюз для подключения Arduino к IP-сети?: 11 шагов (с изображениями)
Как создать собственный WIFI-шлюз для подключения Arduino к IP-сети?: 11 шагов (с изображениями)

Видео: Как создать собственный WIFI-шлюз для подключения Arduino к IP-сети?: 11 шагов (с изображениями)

Видео: Как создать собственный WIFI-шлюз для подключения Arduino к IP-сети?: 11 шагов (с изображениями)
Видео: Урок №9. Настраиваем статический IP адрес для подключения микроконтроллера ESP8266 к Wi-Fi сети. 2024, Июль
Anonim
Как создать собственный WIFI-шлюз для подключения Arduino к IP-сети?
Как создать собственный WIFI-шлюз для подключения Arduino к IP-сети?

Как и многие люди, вы думаете, что Arduino - очень хорошее решение для домашней автоматизации и робототехники

Но с точки зрения связи Arduinos просто идет с последовательным соединением.

Я работаю над роботом, который должен быть постоянно подключен к серверу, на котором выполняется код искусственного интеллекта. Я пытался использовать радиочастотную сеть, как я привык делать для домотики, но это недостаточно эффективно. Пока робот движется, я не могу использовать Ethernet Arduino Shield. Arduino Wifi Shield дорогие и кажется мне устаревшей конструкцией.

Мне нужно было что-то, что могло бы обмениваться данными с сервером очень простым и эффективным способом.

Поэтому я решил спроектировать шлюз на основе очень дешевого и энергоэффективного микроконтроллера ESP8266

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

Я использовал этот шлюз для домашней автоматизации и для робототехники.

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

Я сделал еще одну инструкцию, которая использует экран ESP8266 и избегает пайки

Запасы

Я написал другое руководство по этой теме

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

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

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

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

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

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

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

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

Легче всего использовать с Arduino Mega, у которой более одного UART (например, Arduino Mega), но также может работать с UNO.

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

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

Он имеет 3 светодиода, которые показывают состояние и трафик шлюза.

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

Он работает в 3 различных режимах, которые устанавливаются переключателями:

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

Большинство параметров можно изменить в соответствии с вашими потребностями.

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

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

В дополнение к вашему Arduino вам понадобится

  • 1 модуль ESP8266 - я выбираю MOD-WIFI-ESP8266-DEV от Olimex, который стоит около 5 евро, который довольно прост в использовании.
  • 1 источник питания 5 В
  • 1 регулятор мощности на 3,3 В - я использую LM1086
  • 1 х 100 мкФ конденсатор
  • 1 модуль APG ULN2803 (можно заменить на 3 транзистора)
  • 8 резисторов (3 x 1 кОм, 1 x 2 кОм, 1 x 2,7 кОм, 1x 3,3 кОм, 1x 27 кОм, 1x 33 кОм)
  • 3 светодиода (красный, зеленый, синий)
  • 1 x макетная плата
  • некоторые провода и разъемы

Только на этапах строительства вам понадобится

  • 1 x FTDI 3.3v для конфигурации
  • Паяльник и олово

Перед пайкой важно установить все компоненты на макетной плате и проверить, все ли в порядке.

Шаг 4: Начнем с электроники на макетной плате

Начнем с электроники на макетной плате!
Начнем с электроники на макетной плате!

Электронный макет доступен в формате Fritzing

Вы можете скачать его здесь, шаг 1:

github.com/cuillerj/Esp8266IPSerialGateway/blob/master/GatewayElectronicStep1.fzz

Просто следуйте схеме, обращая внимание на напряжение.

Помните, что ESP8266 не поддерживает напряжение выше 3,3 В. FTDI должен быть установлен на 3,3 В.

Шаг 5: Перейдем к программному обеспечению

Переходим к программному обеспечению!
Переходим к программному обеспечению!

Начнем со стороны шлюза

Я написал код с помощью Arduino IDE. Итак, вам нужно, чтобы ESP8266 назывался платой в среде IDE. Выберите соответствующую доску в меню «Инструменты / доски».

Если вы не видите ESP266 в списке, это означает, что вам, возможно, придется установить ESP8266 Arduino Addon (вы можете найти здесь процедуру).

Весь необходимый вам код доступен на GitHub. Пора скачать!

Основной код шлюза находится там:

В дополнение к стандартным Arduino и ESP8266 включает в себя основной код, который нужен, эти 2 включают: LookFoString, который используется для управления строками и находится там:

ManageParamEeprom, который используется для чтения и хранения параметров в Eeprom и находится там:

Как только вы получите весь код, самое время загрузить его в ESP8266. Сначала подключите FTDI к USB-порту вашего компьютера.

Я предлагаю вам проверить соединение перед загрузкой.

  • Установите последовательный монитор Arduino на новый порт USB.
  • Установите скорость на 115200 как cr nl (скорость по умолчанию для Olimex)
  • Включите макетную плату (ESP8266 поставляется с программным обеспечением, работающим с AT-командами)
  • Отправьте "AT" с помощью серийного инструмента.
  • Вы должны получить взамен «ОК».

Если нет, проверьте подключение и посмотрите характеристики ESP8266.

Если вы получили "ОК", вы готовы загрузить код

  • Выключите макетную плату, подождите несколько секунд,
  • нажмите на черный микровыключатель ESP8266. Это нормально, когда на мониторе последовательного порта появляется мусор.
  • Нажмите на загрузочную среду IDE, как для Arduino.
  • После завершения загрузки установите серийную скорость 38400.

Вы увидите что-то, как на картинке.

Поздравляем, вы успешно загрузили код!

Шаг 6: приступим к настройке

Приступим к настройке!
Приступим к настройке!

Для входа в режим настройки configGPIO должен быть установлен в 1

Сначала просканируйте WIFI, введя команду: ScanWifi. Вы увидите список обнаруженных сетей.

  • Затем установите свой SSID, введя «SSID1 = yournetwork».
  • Затем установите пароль, введя "PSW1 = yourpassword".
  • Затем введите «SSID = 1», чтобы определить текущую сеть.
  • Введите «Перезагрузка», чтобы подключить шлюз к вашему Wi-Fi.
  • Вы можете подтвердить, что у вас есть IP-адрес, введя «ShowWifi».
  • Горит синий светодиод, а красный - мигает.

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

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

Последний необходимый шаг - установить порт прослушивания UDP-сервера, введя "listenPort = xxxx".

Введите «ShowEeprom», чтобы проверить, что вы только что сохранили в Eeprom.

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

Ваш шлюз готов к работе

Есть и другие команды, которые вы можете найти в документации.

Шаг 7: займемся стороной Arduino

Сделаем сторону Arduino!
Сделаем сторону Arduino!
Сделаем сторону Arduino!
Сделаем сторону Arduino!

Сначала подключите Arduino

Если у вас есть Mega, проще всего будет начать с нее. Тем не менее вы можете использовать Uno.

Чтобы проверить свою работу, лучше всего использовать пример.

Вы можете скачать его здесь:

Он включает код SerialNetwork, который находится здесь:

Просто загрузите код в свой Arduino.

Зеленый светодиод мигает каждый раз, когда Arduino отправляет данные.

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

Сделаем серверную часть!
Сделаем серверную часть!
Сделаем серверную часть!
Сделаем серверную часть!

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

Просто запустите это

Посмотрите на консоль Java.

Посмотрите на монитор Arduino.

Arduino отправляет 2 разных пакета.

  • Первый содержит статус цифровых контактов со 2 по 6.
  • Второй содержит 2 случайных значения, уровень напряжения A0 в мВ и инкрементный счетчик.

Программа на Java

  • распечатать полученные данные в шестнадцатеричном формате
  • ответить на первый тип данных случайным значением включения / выключения для включения / выключения светодиода Arduino
  • ответить на второй тип данных полученным счетчиком и случайным значением.

Шаг 9: Пора заняться пайкой

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

На макетной плате работает!

Пора сделать его более надежным, припаяв детали на печатной плате

Вдобавок к тому, что вы сделали с макетной платой, вы должны добавить 3 разъема.

  • C1 1 вывод, который будет использоваться для входа в режим трассировки сети.
  • C2 3 контакта, который будет использоваться для переключения между рабочим режимом и режимом настройки.
  • C3 6 контактов, которые будут использоваться для подключения шлюза к Arduino или FTDI.

C1, подключенный к GPIO2, необходимо заземлить вручную, если вы хотите активировать сетевые трассы.

C2, подключенный к GPIO 4, можно установить в 2 различных положения. Один установлен на землю для нормального режима работы, а другой установлен на 3,3 В для входа в режим конфигурации.

Установите все компоненты на печатной плате в соответствии со схемой, а затем приступайте к пайке, чтобы получить конечный продукт!

Шаг 10: давайте проведем заключительный тест

Image
Image

Запустите тестовую программу Java.

Подключите Arduino.

Включите шлюз.

И посмотрите на консоль Java, монитор Arduino, светодиоды Arduino и светодиоды шлюза.

Шаг 11: Вы можете адаптировать этот дизайн к своим требованиям

Что касается оборудования

  • Если вы выберете другой ESP8266, вам придется подстроиться под спецификации.
  • Если вы выберете другой стабилизатор 3,3 В, он должен выдавать более 500 мА, и вам придется адаптировать конденсатор.
  • Вы можете изменить резисторы светодиодов, чтобы отрегулировать яркость.
  • Вы можете погасить все светодиоды, но я рекомендую оставить хотя бы красный включенным.
  • Вы можете заменить ULN2803 на 3 транзистора (или меньше, если вы решите не оставлять 3 светодиода).
  • Я тестировал, но он должен работать с платами Arduino 3,3 В. Просто подключите Tx Rx к разъему 3,3 В.

Что касается конфигурации

  • Вы можете сохранить 2 разных SSID и переключить
  • Вы можете изменить используемый GPIO

Что касается программного обеспечения

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