Отправляем данные в ThingSpeak через WiFi модуль ESP8266.

Опубликовано 30.04.2015 пользователем Johhny


     WiFi модуль ESP8266 удобен для управления устройствами в интернете вещей (IoT). Чтобы контролировать ваши устройства удаленно необходимо иметь настроенный Веб-сервер, на который будут передаваться данные или открыть доступ к роутеру из интернета. Другой, более удобный способ - воспользоваться бесплатным сервисом ThingSpeak. Как работать с данным сервисом связкой WiFi модуля ESP8266 и отладочной платы FRDM-KL25Z можно узнать под катом.

 

Визуализация данных в ThingSpeak

 

 

     Приведенную ниже инструкцию описал в  блоге [Erich Styger]. Он выбрал ThingSpeak для удаленного контроля данных со своих устройств. Есть много других доступных IoT (Internet of Things) платформ, но эта привлекла автора открытым исходным кодом, хорошей инфраструктурой и инструментами визуализации.

    

     Как начать работать с ThingSpeak.

     Перед тем, как начать использовать ThingSpeak необходимо создать и настроить аккаунт:

1. Регистрируем бесплатный аккаунт на сайте thingspeak.com

2. Переходим в Channels и создаем новый канал. Каналу будет присвоен Channel ID (который понадобится позже). Вводим имя и описание канала. Остальные поля можно пока оставить незаполненными. Нажимаем Save на странице ниже. 

 

Создание нового канала в ThingSpeak

 

3. Переходим во вкладку API Keys и там копируем сгенерированный API Key. 

 

Получение API Key в ThingSpeak

 

4. Теперь можно протестировать соединение вставив следующую строку в браузер:

     http://api.thingspeak.com/update?key=API_KEY&field1=0

В строке необходимо поменять значение API_KEY на свое, у автора получился следующий запрос:

     http://api.thingspeak.com/update?key=J4P1LICZI6ZF0YWG&field1=0

Этот запрос добавит данные '0' в только что созданный канал ‘field1′. Сервер ответит количеством точек данных.

 

Тестирование канала

 

5. Следующим запросом можно проверить результат:

     http://api.thingspeak.com/channels/CHANNEL_ID/feed.json?key=API_KEY

API_KEY и CHANNEL_ID также нужно поменять на свои значения:

     http://api.thingspeak.com/channels/20696/feed.json?key=J4P1LICZI6ZF0YWG

 

Добавленные данные

 

6. Таким образом можно добавлять множество точек данных и затем получить график:

 

Визуализация данных в ThingSpeak

 

Теперь можно подключать ESP8266 и отправлять через модуль данные на сервер ThingSpeak.

 

     AT-команды для управления ESP8266.

     Для начала рассмотрим последовательность AT-команд для управления ESP8266. Предполагается, что ESP8266 уже подключен к точке доступа. Нам необходимо разрешить множественные соединения командой:

      AT+CIPMUX=1

Затем устанавливаем TCP соединение с сервером ThingSpeak (184.106.153.149), по 80 порту. Т.к. разрешены множественные соединения [Erich Styger] передал канал 4 (AT+CIPSTART=4):

      AT+CIPSTART=4,"TCP","184.106.153.149",80

ESP8286 должен ответить:

      OK
      Linked

Теперь используем команду CIPSEND для отправки данных. Первое значение - id канала, указанного выше (4), второе - количество отправляемых символов в строке, которая будет отправляться (включая “\r\n” в конце строки!). В данном случае 44 символа:

      AT+CIPSEND=4,44

Модуль должен ответить:

  >

 что означает "готов принимать данные". Данные можно отправить с помощью GET запроса:

      GET /update?key=J4P1LICZI6ZF0YWG&field1=60

здесь‘/update’ - это команда серверу обновить точки, затем следует API ключ, имя поля и само значение (в данном случае 60).

 После окончания отправки данных TCP соединение нужно закрыть:

        AT+CIPCLOSE

Теперь можно просмотреть графическое отображение отправленных данных в ThingSpeak:

 

Отправка данных в ThingSpeak через ESP8266

 

Как ThingSpeak, так и WiFi модуль ESP8266 свободно работают с популярными микроконтроллерами и микрокомпьютерами: Arduino, Raspberry Pi, FRDM-KL25Z и др. [Erich Styger] написал функцию автоматической отправки данных для FRDM-KL25Z. Исходники можно посмотреть Гитхабе.

     Приведенные шаги помогут начать работать с WiFi модулем  ESP8266 и облачным сервисом ThingSpeak для построения своего интернета вещей. Платформа ThingSpeak предоставляет множество других API и плагинов для различных приложений. Например, можно отправлять сообщения в Twitter и выполнять запросы в заданное время.

 


  Интернет вещей

  wi-fi, raspberry pi, arduino, esp8266, thingspeak, api, iot, at команды, frdm-kl25z