Опубликовано 30.04.2015 пользователем Johhny
WiFi модуль ESP8266 удобен для управления устройствами в интернете вещей (IoT). Чтобы контролировать ваши устройства удаленно необходимо иметь настроенный Веб-сервер, на который будут передаваться данные или открыть доступ к роутеру из интернета. Другой, более удобный способ - воспользоваться бесплатным сервисом ThingSpeak. Как работать с данным сервисом связкой WiFi модуля ESP8266 и отладочной платы FRDM-KL25Z можно узнать под катом.
Приведенную ниже инструкцию описал в блоге [Erich Styger]. Он выбрал ThingSpeak для удаленного контроля данных со своих устройств. Есть много других доступных IoT (Internet of Things) платформ, но эта привлекла автора открытым исходным кодом, хорошей инфраструктурой и инструментами визуализации.
Как начать работать с ThingSpeak.
Перед тем, как начать использовать ThingSpeak необходимо создать и настроить аккаунт:
1. Регистрируем бесплатный аккаунт на сайте thingspeak.com
2. Переходим в Channels и создаем новый канал. Каналу будет присвоен Channel ID (который понадобится позже). Вводим имя и описание канала. Остальные поля можно пока оставить незаполненными. Нажимаем Save на странице ниже.
3. Переходим во вкладку API Keys и там копируем сгенерированный API Key.
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. Таким образом можно добавлять множество точек данных и затем получить график:
Теперь можно подключать 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, так и 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