К содержимому
  1. Главная
  2. Блог
  3. Arducam поддерживает плату ESP8266 Arduino: пример камеры с передачей по Wi-Fi через WebSocket

Arducam поддерживает плату ESP8266 Arduino: пример камеры с передачей по Wi-Fi через WebSocket

4 октября 2015 · По материалам Arducam

Хорошая новость: на форуме сообщества ESP8266 объявили о поддержке Arduino IDE, исходный код опубликован в открытом доступе. ESP8266 — не просто ещё одна плата Arduino: её можно считать Arduino, объединённой с шилдом Wi-Fi. У неё более быстрый процессор, гораздо меньшие размеры и, главное, низкая цена. Попробовать её стоит, хотя у платы есть и ограничения. Установка довольно простая, есть версии для Linux, OS X и Windows. Подробная инструкция по установке — в руководстве Adafruit.

Плата ESP8266 с камерой Arducam Mini 2MP
Снимок с камеры, переданный на веб-страницу через WebSocket

Arducam перенесла свои библиотеки камер на ESP8266. Теперь модуль ESP8266 с камерами Arducam может делать качественные снимки в высоком разрешении и сохранять их на SD-карту или даже публиковать на веб-странице. В этом примере плата ESP8266 Arduino делает снимки и публикует их на веб-странице.

Что такое WebSocket

Чтобы передать снимок на веб-страницу, используется технология WebSocket. WebSocket — протокол, который обеспечивает полнодуплексный обмен данными по одному TCP-соединению. Он реализуется в браузерах и веб-серверах, поэтому работает с любым клиентом и на любой платформе — ПК, ноутбуках, планшетах и смартфонах. Стандартный протокол HTTP построен по архитектуре «клиент — сервер»: клиент отправляет запрос серверу, сервер возвращает запрошенные данные и сразу закрывает соединение. В отличие от HTTP, протокол WebSocket использует HTTP только на этапе установления связи (handshake), а затем держит соединение открытым. Это позволяет браузеру и серверу обмениваться данными в обе стороны. Подробное описание WebSocket есть в Википедии.

В этом примере на плате ESP8266 Arduino запускается сервер WebSocket. Плата подключается к заданному пользователем роутеру Wi-Fi и получает адрес по DHCP, после чего к серверу можно подключиться из браузера.

Что понадобится

Для примера нужны две вещи:

  • Плата ESP8266 Arduino
  • Модуль камеры Arducam Mini 2MP

Подключение оборудования

Подключение платы ESP8266 к Arducam Mini показано на рисунке и в таблице ниже.

Схема подключения Arducam Mini к плате ESP8266
Таблица соединения выводов ESP8266 и Arducam Mini

Скетчи и библиотеки Arduino

Перед запуском примера скопируйте три библиотеки — ArduCAM, UTFT4ArduCAM_SPI и ESP8266-Websocket — в папку библиотек Arduino.

Откройте скетч ArduCAM_Mini_OV2640_websocket_server.ino, измените следующие строки под свою точку доступа Wi-Fi и загрузите скетч в плату.

const char* ssid = "your_ssid";
const char* password = "your_passpwd";
Скетч ArduCAM_Mini_OV2640_websocket_server в Arduino IDE
Настройка и загрузка скетча в Arduino IDE
Загрузка скетча в плату ESP8266

Назначенный IP-адрес можно узнать из сообщений в мониторе последовательного порта.

IP-адрес сервера WebSocket в мониторе последовательного порта

Допустим, сервер WebSocket получил адрес 192.168.1.105. Откройте в браузере файл camera_demo.html из папки C:\Users\[YOUR COMPUTER]\AppData\Local\Arduino15\packages\ArduCAM_ESP8266_UNO\hardware\ArduCAM_ESP8266_UNO\2.2.4\libraries\ArduCAM\examples\ESP8266\ArduCAM_ESP8266_UNO_Capture\html_2640 и укажите IP-адрес WebSocket, полученный в мониторе последовательного порта, — поле выделено на рисунке красной рамкой.

Страница camera_demo.html: поле IP-адреса WebSocket

Нажмите кнопку Connect — в мониторе последовательного порта появится запрос на подключение по WebSocket. Через несколько секунд веб-страница сообщит, что соединение установлено.

После этого нажмите кнопку Send, чтобы отправить сообщение WebSocket на ESP8266. Плата выполнит команду съёмки, отправит снимок обратно, и он появится на веб-странице.

Ещё по теме

Запросить цену

Укажите количество — пришлём коммерческое предложение.