:::: MENU ::::

xively.com — сервис мониторинга показаний с ваших датчиков

Для отображения каких-либо измеряемых параметров в сети интернет, надо создавать свой сервер. Но можно использовать уже готовые — в данном примере будет показано как работать с xively.com.

Далее я описываю работу с версией xively.com, которая действительна на данный момент(22.07.2014).

Для начала регистрируемся на xively.com и щелкаем на кнопку Develop.

xively1

После щелкаем на Add Device и добавляем новое устройство для отображения.

xively2

Задаете своему устройству имя и описание и выбираете будет ли оно индексироваться поисковыми системами(Public Device) или нет(Private Device).

xively3

На данном экране нажимаем 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