×
Traktatov.net » Изучаем Arduino: инструметы и методы технического волшебства » Читать онлайн
Страница 134 из 138 Настройки

Serial.begin(9600);

Serial.println("Starting single datastrearn upload to Xively... ");

Serial.println();

while (Ethernet.begin(rnac) != 1)

{

Serial.println("Error getting IP address via DHCP, trying again... ");

delay(15000);

}

}

void loop()

{

int sensorValue = analogRead(sensorPin);

datastrearns[OJ.setFloat(sensorValue);

Serial.print("Read sensor value ");

Serial.println(datastrearns[O).getFloat());

Serial.println("Uploading it to Xively");

int ret = xivelyclient.put(feed, xivelyKey);

Serial.print("xivelyclient.put returned ");

Serial.println(ret);

Serial.println();

delay(15000);

}

Загрузите программу в плату Arduino, и все будет готово к передаче данных. При первом подключении Arduino сервер Xively автоматически добавляет выдачу данных на веб-странице, открытой вами ранее.

В программе вы создаете объект, который содержит всю информацию о вашем потоке. Данные представлены в виде массива datastrearns [], содержащего имя дат

- 322 -

чика и тип значений (в данном случае float). Объект XivelyFeed содержит идентификатор потока, информацию о потоке данных и количестве потоков данных, которые находятся в массиве.

Отображение данных на веб-странице

Данные будут передаваться сразу после загрузки программы в плату Arduino. Если вы не видите возвращенный статус "200" в мониторе последовательного порта, то, вероятно, ошиблись при копировании параметров Xively API key или Feed ID. Проверьте эти значения и повторите попытку. Если все работает, вернитесь на сайт Xively, поток данных sensor_reading теперь должен автоматически обновляться каждые 15 с. Нажмите на ссылку sensor_reading, и вы увидите график значений, поступающих от фоторезистора. Через некоторое время график может выглядеть примерно так, как показано на рис. 14.9. Вот и все, что нужно сделать. Плата Arduino будет продолжать отправлять данные и обновлять информацию на сервере


Рис. 14.9. Отображение значений фоторезистора на сайте Xively

14.4.2. Добавление компонентов в поток

Один датчик, отображающий поток в Xively, это здорово, но может вы хотите добавить больше датчиков? К счастью, это сделать очень легко. Помимо фоторезистора, установим на плате Arduino датчик температуры. Можно добавить любой другой датчик, включая цифровые датчики I>2C и SPI.

- 323 -

Добавление аналогового датчика температуры добавим простой аналоговый датчик температуры ТМР36 (см. главу 3), подсоединив его к аналоговому контакту 3, как показано на рис. 14.10.

Рис. 14.10. Добавление аналогового датчика температуры ТМР36

Добавление показаний датчика в поток

Теперь нужно вставить данные от нового датчика в поток данных, отправляемых на сервер Xively. По сути, в коде программы нужно просто прибавить дополнительный поток данных везде, где указан первый поток данных. Вы также можете переименовать потоки с идентификаторами datastream на более понятные, например light_reading и temp_reading. Код листинга 14.4 похож на предыдущий, но теперь у нас два потока данных. Параметры Xively API key, Feed ID и MAC-адрес такие же, как в предыдущей программе.

Листинг 14.4. Загрузка потока данных в Xively от нескоьких датчиков - xively2.ino