Для отображения каких-либо измеряемых параметров в сети интернет, надо создавать свой сервер. Но можно использовать уже готовые — в данном примере будет показано как работать с xively.com.
Далее я описываю работу с версией xively.com, которая действительна на данный момент(22.07.2014).
Для начала регистрируемся на xively.com и щелкаем на кнопку Develop.
После щелкаем на Add Device и добавляем новое устройство для отображения.
Задаете своему устройству имя и описание и выбираете будет ли оно индексироваться поисковыми системами(Public Device) или нет(Private Device).
На данном экране нажимаем Add Channel и добавляем новый измеряемый параметр. Называем параметр «e.g. sensor1» и задаем начальные значения, поля Tags, Units и Symbol можно не заполнять. После нажатия Save Channel, данный параметр появляется начинает отображаться на сервере с начальным значением, которое вы задали.
Для того чтобы изменить данный параметр нужно послать на сервер http запрос определенного типа.
Рассмотрим как это сделать — если у вас Linux и установлен curl, то можно в терминале дать команду:
curl --request PUT --data-binary @feed_update.json --header "X-ApiKey: API_KEYS" -v https://api.xively.com/v2/feeds/FEED_ID
В коде выше, за место API_KEYS необходимо ввести ваш API keys(см. подписи на картинке выше), а за место FEED_ID ваш feed ID(см. подписи на картинке выше).
Перед тем как давать команду(выше), необходимо в той директории откуда вы даете эту команду создать файл feed_update.json с таким содержанием:
{
"version":"1.0.0",
"datastreams" : [ {
"id" : "NAME_SENSOR1",
"current_value" : "NEW_VALUE"
}
]
}
В коде выше, за место NAME_DEVICE необходимо ввести имя параметра, которое вы ввели при создании («e.g. sensor1«), а за место NEW_VALUE новое значение данного параметра.
Рассмотрим второй способ более подходящий для систем на микроконтроллере. Для этого в сеть поверх tcp протокола необходимо передать нужные http данные. Это можно сделать с помощью специальных модулей — например SIM900 для GPRS, WIZFI220/210 для WiFi, W5100/5200 для Ethernet.
Для отладки того что надо передать(http данные), на компьютере можно использовать telnet подключенный к 80 порту api.xively.com.
То что нужно передать для изменения параметра:
PUT /v2/feeds/FEED_ID.csv HTTP/1.1
User-Agent: teln
Host: api.xively.com
Accept: */*
Content-Type: application/x-www-form-urlencoded
X-ApiKey: API_KEYS
Content-Length: NUMBER
NAME_SENSOR1, NEW_VALUE
В коде выше, за место API_KEYS необходимо ввести ваш API keys(см. подписи на картинке выше), за место FEED_ID ваш feed ID(см. подписи на картинке выше)? за место NAME_DEVICE необходимо ввести имя параметра, которое вы ввели при создании («e.g. sensor1«), за место NEW_VALUE новое значение данного параметра. NUMBER задается в зависимости от длины вашего имени и размера переменной — просто число (допустим 17).
Для получения данных с xively.com:
GET /v2/feeds/FEED_ID.csv HTTP/1.1
User-Agent: test
Host: api.xively.com
Content-Type: application/x-www-form-urlencoded
X-ApiKey: API_KEYS