Часы на ардуино на wifi

Часы на ардуино на wifi

В этом уроке мы подключим наш микроконтроллер Arduino Uno к Интернету, используя модуль ESP8266 WiFi.

Шаг 1. Комплектующие

Модуль ESP8266 WiFi представляет собой полноценную сеть Wi-Fi, а вы можете легко подключиться в качестве обслуживающего адаптера Wi-Fi, интерфейса беспроводного доступа в Интернет к любому устройству на основе микроконтроллера благодаря простому подключению через последовательный интерфейс или интерфейс UART.

Добавление этого модуля в проекты где используется Arduino откроет новые интересные возможности.

Детали, используемые в проекте Arduino WiFi мы перечислим ниже. Компоненты оборудования:

  • Arduino UNO × 1
  • ESP8266 ESP-01 × 1
  • Перемычки (на выбор) × 1
  • Резистор 10 кОм × 1
  • Резистор 1 кОм × 2

Шаг 2. Суть проекта

Есть много способов использовать ESP866 для коммуникаций. Некоторые могут использовать его для отправки/получения данных онлайн или регулярной загрузки данных. В этом уроке мы покажем, как мы можем общаться с Arduino по беспроводной связи, используя ваш телефон (Android или iPhone). Всё будет сделано в автономном режиме, поэтому не нужно иметь подключение к интернету.

ESP8266 будет служить точкой доступа (режим AP), то есть он будет предоставлять доступ к сети Wi-Fi другим устройствам (станциям) и далее подключать их к проводной сети. Процесс этот довольно прост.

Распиновка ESP

Используйте свой телефон, чтобы отправить любую команду в Arduino, а с помощью ESP8266 все будет работать без проводов.

Шаг 3. Схема соединения

Мы можем соединить Ардуино и WiFi модуль двумя способами — первый с резисторами и второй вариант без резисторов. Остановимся на обеих схемах.

Вариант 1

Соединяем контакты, как описано на прилагаемой таблице контактов ниже:

Следуйте этим шагам:

  • подключите красный провод к VIN (3,3 В) к питанию + 3,3 В от микроконтроллера;
  • подключите черный провод к земле;
  • подключите зеленый провод к TX модуля Wifi и микроконтроллера;
  • подключите желтый провод к RX модуля Wi-Fi и микроконтроллера.

Подключите VIN к 3,3 В для включения питания, а также контакт ENABLE для включения модуля.

TX подключен к RX, что означает, что все, что мы хотим передать в ESP8266, получит Arduino UNO. И наоборот для RX в TX. Создав эту схему, мы теперь готовы запустить WiFi с Arduino UNO.

Вариант 2

Соедините контакты, соответственно этой таблице контактов ниже:

Следуй этим шагам:

  • подключите оба контакта ECC VCC / 3.3V / Power Pin и Enable (красные провода) к резистору 10 кОм, а затем к выводу питания Uno + 3.3V;
  • соедините контакт заземления / заземления ESP (черный провод) с выводом заземления / заземления Arduino Uno;
  • подключите TX ESP (зеленый провод) к контакту 3 Uno;
  • подключите RSP (синий провод) ESP к резистору 1 кОм, затем к контакту 2 Uno;
  • подключите RX (синий провод) ESP к резистору 1 кОм, затем к выводу GND заземления Uno.

О схеме

Вывод питания ESP на ESP11 имеет маркировку VIN, однако для некоторых версий это может быть 3,3 В или Power или VCC. Вам также нужно будет включить вывод ESP CH_EN или Enable, чтобы он работал.

Как мы уже обсуждали, — не используйте напряжение на ESP больше чем 3.3 В. ESP8266 строго использует 3,3 В. Более того, это разрушит модуль. Так как Arduino имеет 5 В, нам пришлось поставить делитель напряжения — это резисторы.

TX ESP подключен к RX Arduino Uno, что означает, что все, что мы хотим передать (TX) в ESP, получит (RX) от Uno, и наоборот. Создав эту схему, мы теперь готовы запустить WIFI с Arduino UNO.

Шаг 4. Настройка соединения

После того, как все настроено, вы заметите, что ваш ESP8266 Wifi будет доступен в радиусе действия вашего телефона.

1. Скачать TCP Client для Android

Вы можете скачать любой TCP-клиент, доступный в Play Store, но я использовал TCP-клиент от Sollae Systems

2. Со своего телефона подключитесь к вашему ESP8266 Wifi

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

Обычно имя wifi / ssid начинается в ESP после его названия версии, у меня ESP11.

3. После подключения получите статический IP-адрес.

IP-адрес по умолчанию в режиме AP — 192.168.4.1.

Вы можете изменить статический IP-адрес, следуя этой Wifi.config() ссылке.

4. Откройте TCP Client, который вы загрузили ранее.

Создайте соединение, нажав кнопку «Подключить», добавьте IP-адрес ESP и порт 80 следующим образом:

80 — это порт, который я использовал для нашего сервера ESP, но вы можете изменить его, заменив 80 на любой номер порта из нашего кода в строке 23.

5. Подождите, пока на консоли TCP появится сообщение «Подключено».

Шаг 5. Общаемся с Arduino Uno через смартфон

После подключения отправьте запрос, введя следующий код для клиента TCP:

Или включите встроенный светодиод с помощью команды:

Читайте также:  Как удлинить рукава на куртке зимней

Или выключите встроенный светодиод с помощью команды:

Или просто скажите:

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

Важно: esp8266, LEDON, LEDOFF и HELLO — пользовательский идентификатор команды. Если вы используете что-то кроме этих, он вернет ErrRead. ErrRead означает, что из отправленного вами сообщения не найдено ни одного идентификатора команды. Сообщение ErrRead кодируется в строке 64.

Шаг 6. Код проекта

Скачать или скопировать код вы можете ниже:

Существуют разные типы ESP8266. Измените скорость передачи в коде в строке 16 в зависимости от того, что использует ваш ESP8266.

Весь наш запрос будет прочитан и разобран в функции loop():

Вы можете увидеть, что я использовал функцию find( , ), чтобы интерпретировать сообщение и сообщить Arduino, какой код вызывать. Если вы хотите связаться с Arduino UNO или попросить что-то сделать, просто добавьте свое условие. например:

Мы добавили некоторую функцию для связи с ESP8266:

Если вы знакомы с созданием мобильных приложений, веб-приложений, веб-служб или веб-разработкой в целом, вы можете создавать клиентские приложения, которые могут отправлять TCP-запросы в ESP. Примеры приложений, которые вы можете сделать: удаленное управление устройствами, веб-панель управления, чат-бот, приложение с кнопками и т.д

Рассмотрим, как с помощью ESP8266 и светодиодной матрицы, создать красивые анимированные часы. С подробными фотографиями!

Что должно получиться:

Анимированные цифровые часы на NodeMCU ESP8266

Часы в работе:

Благодаря работе сообщество Arduino и ESP8266, эти крутые часы собрать удивительно легко!

  1. Просто два основных компонента: дисплей (ясно почему) и WiFi микроконтроллер.
  2. Пайка не требуется.
  3. Никаких навыков программирования не требуется, код предоставлен!

Начнем!

Шаг 1. Список компонентов

Важно:

  • Некоторые USB кабели предназначены только для подачи питания (зарядки) – это нормально для питания готовых часов, но для загрузки кода в ESP нам понадобится USB кабель для передачи данных/синхронизации.
  • RGB матрица P3 имеет более 6000 светодиодов. Для этих часов мы никогда не будем включать их всех сразу, поэтому 2 ампера более чем достаточно. Однако, если вы планируете делать с дисплеем что-то большее, и все светодиоды будут установлены на белый цвет, рекомендуемый источник питания составляет 8 ампер.

Шаг 2. Собираем всё вместе

Тут много проводов, но не беспокойтесь. Всё, что мы делаем, – это подключение одного вывода к другому.

Не торопитесь. Дважды проверьте каждое соединение до и после его установки.

Убедитесь, что провода вставлены полностью, чтобы они случайно не оторвались.

Шаг 3. Подключение ESP

Во-первых, давайте установим провода перемычек на модуль ESP. Не беспокойтесь, если цвета ваших проводов отличаются от моих. Важно, какая пара выводов соединена проводом.

ПОКА НЕ подключайте модуль ESP к компьютеру. Прежде чем что-то запитывать, нам необходимо закончить с соединением компонентов.

Мы используем выводы D0-D8 и два вывода GND.

Мы можем пропустить вывод 3В, потому что модуль ESP будет питаться через USB порт.

Мы также пропускаем выводы для передачи и приема, потому что мы свяжемся с ESP через USB или WiFi.

Шаг 4. Подключение светодиодной матрицы

Затем подключите к светодиодной матрице вторые концы перемычек, которые вы только что подключили к модулю ESP.

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

Матрица НЕ симметрична, есть правая/левая стороны и верх/низ. Обратите внимание на белые стрелки.

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

Печатная плата светодиодной матрицы

Подключение левого разъема

Таблица 1. Левый разъем на плате светодиодной матрицы

NodeMCU Вывод матрицы Цвет перемычки
D0 STB коричневый
D1 A красный
D2 B оранжевый
D3 E желтый
D4 OE зеленый
3V
G GND черный
D5 CLK синий
D6 D фиолетовый
D7 R0 серый
D8 C белый
RX
TX
G GND черный
3V

Подключение правого разъема

Теперь необходимо установить несколько перемычек, соединяющих левый разъем на светодиодной матрице с правым разъемом.

Таблица 2. Правый разъем на плате светодиодной матрицы

Вход матрицы Выход матрицы Цвет перемычки
B0 G1 фиолетовый
R1 R0 желтый
B1 B0 серый
G0 R1 зеленый
G1 G0 синий

Подключение правого разъема

Шаг 5. Подключение питания

Кабель питания дисплея был разработан для винтовых клемм.

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

Очевидно, красный провод должен быть подключен к (+), а черный провод – к (-).

Подключите другой конец провода к дисплею, снова обратив внимание на полярность: красный провод идет к VCC, а черный – к GND.

Читайте также:  Терморегулятор sk 3110 инструкция

Если ваш кабель рассчитан на одновременное питание двух дисплеев, то не имеет значения, какой из кабелей вы подключаете к своему единственному дисплею. Однако ОЧЕНЬ ВАЖНО не перепутать красный (+) и черный (-).

СНОВА проверьте полярность кабеля питания, убедитесь, что ПЛЮС и МИНУС НЕ ПЕРЕПУТАНЫ!

Всё, мы закончили с подключениями. Но пока ничего не включайте!

Шаг 6. Установка Arduino IDE

Чтобы загрузить код в ESP, вам понадобится программное обеспечение Arduino и несколько библиотек.

Скачайте с сайта Arduino.cc подходящую для вашей операционной системы среду разработки Arduino IDE и установите ее.

Шаг 7. Установка библиотек

После установки запустите Arduino IDE:

  • Кликните на меню Скетч (Sketch) > Подключить библиотеку (Include Library) > Управлять библиотеками (Manage Libraries. )
  • Найдите и установите последние версии следующих библиотек:
  • AdaFruit Gfx library
  • PxMatrix by Dominic Buchstaller
  • ArduinoJSON version 5.13.2 by Benoit Blanchon
  • WiFiManager by Tzapu
  • DoubleResetDetector by Stephen Denne aka Datacute

ВАЖНО:

Обратите внимание, что на момент написания этой статьи ArduinoJSON версии 6.x beta не работает с Morph Clock. Это приводит к ошибкам компиляции. Убедитесь, что вы указали версию 5.13.2, когда устанавливали/обновляли ArduinoJSON.

Шаг 8. Установка поддержки ESP8266

Нам также необходима поддержка ESP8266.

  • Закройте Менеджер библиотек, но оставайтесь в Arduino IDE.
  • Перейдите в Файл (File) > Настройки (Preferences).
  • Кликните на иконку справа от поля «Дополнительные ссылки для менеджера плат» (Additional Board Manager URLs)
  • Вставьте этот URL отдельной строкой (последовательность значения не имеет):
  • http://arduino.esp8266.com/stable/package_esp8266com_index.json

Установка поддержки ESP8266

  • Кликните OK, чтобы выйти из настроек.
  • Перейдите к Инструменты (Tools) > Плата xyz (Board xyz) > Менеджер плат (Board Manager. ).
  • Найдите ESP8266.
  • Установите esp8266 by ESP8266 Community. Установка поддержки ESP8266
  • Шаг 9. Установка драйвера CH340

    Последнее, что нужно установить, – это драйвер устройства, чтобы наш компьютер мог общаться с ESP.

    Скачайте и установите драйвер на ваш компьютер. Ссылки для скачивания можно найти в статье «Работа под Windows с китайскими клонами Arduino (с преобразователем CH340G)». В этой же статье вы найдете инструкцию по установке. На NodeMCU ESP используются те же CH340/CH341, что и на клонах Arduino.

    Шаг 10. Загрузка кода

    Мы почти на месте.

    1. Скачайте и распакуйте последнюю версию Morphing Clock (анимированных часов) с Github, либо резервную копию версии от 20 ноября 2018 г. с данного сайта
      • Если вы не знакомы с интерфейсом Github, то посмотрите изображение ниже Скачивание кода с github
      • Распакуйте загруженный zip архив и дважды кликните по файлу MorphingClock.ino
      • Скомпилируйте и загрузите прошивку
        • Перед подключением NodeMCU к своему компьютеру вы дважды проверили, всё ли правильно разведено? 🙂
        • Убедитесь, что выводы на NodeMCU не закорочены какими-либо металлическими объектами на вашем столе.
        • Когда вы подключите USB кабель, то услышите обычный звуковой сигнал о том, что Windows узнала USB устройство, которое было подключено.
        • Установите опции в Arduino IDE > Инструменты (Tools), как показано на скриншоте.
          • Номер COM порта может отличаться.
          • Я изменил размер флэш-памяти на 4M(1M SPIFFS), для вашего модуля ESP этот параметр может отличаться.
          • Настройки платы в Arduino IDE

          • Кликните Загрузка (Upload). Это займет некоторое время (около 30 секунд), и будут предупреждения, но в конечном итоге код будет загружен в модуль NodeMCU. Прошивка ESP8266

          Решение проблем:

          • Если загрузка закончилась неудачей из-за отсутствия подключения, убедитесь, что выбрали порт, к которому подключен модуль ESP, в Инструменты (Tools) > Порт (Port).
          • Если в Инструменты (Tools) > Порт (Port) нет активных опций
          • убедитесь, что установили драйвер CH340;
          • убедитесь, что используете кабель для передачи данных / синхронизации. Проверьте это, подключив к компьютеру свой телефон. Если вы сможете видеть файлы на компьютере со своего телефона, то кабель нормальный.
        • Если компиляция завершилась не удачей до попытки загрузки, прокрутите окно с черным фоном вверх, а затем медленно спускайтесь обратно вниз, обращая внимание на сообщения об ошибках. Если вы не знаете, что могла бы значить найденная ошибка, то добавьте ее в комментарий, попробуем разобраться. В журнале будет несколько предупреждений, но это нормально, они не останавливают компиляцию.
        • Если вы получили во время компиляции ошибку, связанную с JSON, используйте JSON библиотеку версии 5.13.2 вместо последней версии (6-beta).
        • Если компиляция завершилась успешно, загрузка тоже успешна, но часы не работают, откройте монитор последовательного порта в Arduino IDE, нажмите сброс (RESET) на модуле ESP. Если ошибки – это куча hex-чисел, попробуйте изменить размер флэш-памяти на 4M(1M SPIFFS) и загрузить снова.
        • Матрица работает, но ESP ничего не показывает как точку доступа. Я встречал это на меньших NodeMCU на базе ESP-12E и 1M SPIFF, используйте версию MorphClk для ESP-12E (резервная копия на RadioProg). К сожалению, я решил проблему, только уменьшив частоту обновления дисплея, поэтому дисплей будет не таким ярким по сравнению с оригинальной версией.
        • Читайте также:  Стопоры на окна от детей

          Шаг 11. Настройка

          После завершения прошивки вы должны увидеть на дисплее слово «Connecting».

          Дисплей включения часов

          ESP пытается подключиться к вашему WiFi, чтобы получить текущее время. Однако он еще не знает пароля к вашей точке доступа (AP) WiFi.

          • Нажмите на ESP кнопку сброса (RST) дважды с интервалом примерно в одну секунду. Кнопка сброса на модуле ESP
          • Дисплей должен будет показать вам AP: MorphClk , Pwd: HariFun и 192.168.4.1 . Дефолтные настройки сети в часах
          • Сейчас ESP действует как точка доступа WiFi с названием MorphClk и паролем HariFun.
          • Перейдите к своему компьютеру/телефону, чтобы изменить свое WiFi подключение с вашего WiFi на MorphClk.
          • Чтобы переключить сеть WiFi, на Windows используется иконка в нижнем правом углу, на Mac – в верхнем правом.
          • Вы можете увидеть предупреждение, что ваш телефон не может найти интернет. Это нормально. Ваш телефон сейчас подключен только к ESP, а ESP не подключен к интернету (пока).
          • Используя вэб-браузер на своем компьютере/телефоне, откройте 192.168.4.1, это сайт, обслуживаемый ESP.

          Шаг 12. Всё готово!

          Всё, что осталось, – поместить часы в нормальный корпус.

          Вам больше не нужен компьютер/телефон. Для питания ESP вы можете использовать обычное зарядное устройство для телефона.

          Моя версия идеальных часов. Скажу честно, мне надоело подстраивать часы. Чтобы часы подстраивались сами, их необходимо оснастить как минимум одной из систем, через которую можно получать время:

          Сначала я хотел сделать свою систему. Но потом я остановился на WiFi. Казалось бы, на рынке должно быть полно настольных/настенных часов с синхронизацией по WiFi. Однако того что хочу я не нашёл. Может плохо искал конечно. Поэтому решил собрать сам. Сначала я попробовал собрать часы на WS2812B, но мне они не понравились. Слишком большие они. В итоге я остановился на обычных светодиодах. Ну и в качестве WiFi конечно я решил использовать ESP8266.

          В процессе размышлений по поводу дизайна будущих часов, я решил сделать их максимально тонкими. Посему, все элементы выбраны с минимальной высотой. И разместил всё с одной стороны. Сложнее всего было найти тонкий ионистор и индуктивность.

          Кроме необходимых для часов элементов, я добавил посадочные места для:

          1) STM8S003F3U6 (Вдруг что то не получится с ESP8266)
          2) DS18B20U
          3) BMP280 или BME280

          Забегая вперёд скажу, что они мне не пригодились.

          После месяца размышлений, рисований схемы и трассировки, получилось вот такая двухсторонняя плата, размером 140×56 мм. И толщиной, вместе с элементами, меньше 2 мм. Размер одной цифры

          Печатные платы и комплектацию я заказал конечно в Китае. Кое-что из комплектации пришлось брать модулями, так как выходило дешевле. Вот эти модули доноры — ESP-09 и GY-302:

          Управление светодиодами осуществляется 16-ти канальным ШИМ контролером PCA9685BS с интерфейсом I2C и полевыми транзисторами BSS138. Вообще микросхемы в часах специально выбраны с I2C, для упрощения трассировки и управления.

          Через один месяц подтянулись сами платы, за ними ещё через пару недель вся остальная комплектация. Платы мне бесплатно покрыли иммерсионным золотом.

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

          А вот на то, чтобы расставить элементы, а только светодиодов размером 0603 на плате 380 штук, у меня ушло около 5 часов.

          После расстановки почти всех элементов, отправляем плату в инфракрасную печку. У меня вот такая:

          После оплавления в печке, необходимо исправить недостатки и вручную допаять ионистор. И вот наконец плата после монтажа.

          Для программирования ESP8266 я решил использовать среду Arduino. Потому что это самый простой и быстрый старт для ESP8266, да и это всего на всего часы, а не управление защитой на атомной электростанции.

          Спустя несколько дней написания кода и исправления ошибок монтажа я смог её заставить отображать время и синхронизироваться с сервером NTP по WiFi. Синхронизация с NTP происходит раз в 5 часов. В остальное время WiFi отключается для понижения потребления.

          На обратной стороне платы имеются 4 сенсорных кнопки, а на самой плате контроллер MPR121. Однако библиотека github.com/adafruit/Adafruit_MPR121 для Arduino не работает на ESP8266. Вероятно причина её неработоспособности очень простая, но честно скажу мне пока некогда изучать этот вопрос.

          Плата без сбоев проработала у меня дома где-то около одного месяца, пока я думал над финальным дизайном, но в голову особо ничего не приходило, кроме как просто приклеить плату к стеклу. Что я собственно и сделал.

          Планы на будущее, если оно будет:

          1) Усовершенствовать прошивку;
          а. сделать настройки через web интерфейс;
          б. сделать обновление прошивки через web интерфейс;
          2) Разобраться с сенсорными кнопками.

          Ссылка на основную публикацию
          Цветы из шаров своими руками фото
          Сам цветочек. Для него понадобится 5 шаров размером 12" и 6 шаров размером 5". Шары размером 5" розового цвета надуваем...
          Хрущевка блочная или панельная
          Блочный дом- это здание, которое возводится из готовых бетонных блоков, произведенных на железобетонном заводе. Такие готовые блоки привозят из завода...
          Хрущевка в классическом интерьере
          Панельные хрущевки печально известны своими маленькими комнатами, странной планировкой и низкими потолками. Они мало пригодны для капитальной переделки и выглядят...
          Цветы из экокожи своими руками
          Вам потребуется: кусочки искусственной кожи двух цветов, клей, зажигалка или свечка! Делаем выкройку из бумаги трех размеров, затем вырезаем из...
          Adblock detector