Оглавление:
- Запасы
- Шаг 1. Как это работает?
- Шаг 2. Каковы основные функции?
- Шаг 3: создание материала
- Шаг 4: Начнем с электроники на макетной плате
- Шаг 5: Перейдем к программному обеспечению
- Шаг 6: приступим к настройке
- Шаг 7: займемся стороной Arduino
- Шаг 8: займемся серверной частью
- Шаг 9: Пора заняться пайкой
- Шаг 10: давайте проведем заключительный тест
- Шаг 11: Вы можете адаптировать этот дизайн к своим требованиям
Видео: Как создать собственный WIFI-шлюз для подключения Arduino к IP-сети?: 11 шагов (с изображениями)
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:49
Как и многие люди, вы думаете, что 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
Если у вас есть 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: давайте проведем заключительный тест
Запустите тестовую программу Java.
Подключите Arduino.
Включите шлюз.
И посмотрите на консоль Java, монитор Arduino, светодиоды Arduino и светодиоды шлюза.
Шаг 11: Вы можете адаптировать этот дизайн к своим требованиям
Что касается оборудования
- Если вы выберете другой ESP8266, вам придется подстроиться под спецификации.
- Если вы выберете другой стабилизатор 3,3 В, он должен выдавать более 500 мА, и вам придется адаптировать конденсатор.
- Вы можете изменить резисторы светодиодов, чтобы отрегулировать яркость.
- Вы можете погасить все светодиоды, но я рекомендую оставить хотя бы красный включенным.
- Вы можете заменить ULN2803 на 3 транзистора (или меньше, если вы решите не оставлять 3 светодиода).
- Я тестировал, но он должен работать с платами Arduino 3,3 В. Просто подключите Tx Rx к разъему 3,3 В.
Что касается конфигурации
- Вы можете сохранить 2 разных SSID и переключить
- Вы можете изменить используемый GPIO
Что касается программного обеспечения
Рекомендуемые:
Как создать свой собственный модуль NRF24L01 + pa + lna: 5 шагов
Как создать свой собственный модуль NRF24L01 + pa + lna: Модуль на основе Nrf24L01 был очень популярен, потому что его легко реализовать в проектах беспроводной связи. Модуль можно найти менее чем за 1 доллар с печатной версией печатной платы или монопольной антенной. Проблема с этими дешевыми модулями в том, что у них есть
Как создать свой собственный квадрокоптер, напечатанный на 3D-принтере: 4 шага
Как собрать свой собственный квадрокоптер, напечатанный на 3D-принтере: Сегодня мы собираемся сделать полнофункциональный квадрокоптер из деталей, двигателей и электроники, напечатанных на 3D-принтере
Как создать собственный веб-сайт: 16 шагов
Как создать свой собственный веб-сайт: полное руководство по переходу с бумаги в Интернет, бесплатно, если хотите, особенно если какие-либо дружелюбные веб-мастера должны вам кое-что сделать, но даже с небольшим опытом и знаниями вы можете создать сайт и получить его. в Интернете вот так:
Как сделать гнездо для подключения iPod к автомобильным динамикам: 3 шага
Как сделать iPod для автомобильных динамиков Джек: Мой друг спросил меня, где взять аудиоразъем для воспроизведения его iPod с автомобильными динамиками. Тогда я подумал, зачем его покупать? Потому что вы можете сделать один из своих старых наушников
Как создать собственный курсор во Flash: 5 шагов
Как создать собственный курсор во Flash: это простое руководство, которое покажет вам, как изменить простой курсор со стрелкой практически на все, что вы хотите, в Adobe Flash