В данном руководстве рассматривается пример отправки данных на веб-сервис pachube.com по беспроводной сети WIFI.
Для работы с WiFi-шилдом потребуется:
ATC0 AT+WD AT+NDHCP=0 AT+NSET=192.168.1.25,255.255.255.0,192.168.1.1 AT+WWPA=U17qGmb6eyHZMUv AT+WA=WiFi
AT+NCTCP=173.203.98.29,80
символ [ESC] символ [S] [CID number] (Maybe CID number is 0. AT+CID=?)
PUT /v2/feeds/44022.csv HTTP/1.1 User-Agent: curl/7.19.5 (i486-pc-linux-gnu) libcurl/7.19.5 OpenSSL/0.9.8g zlib/1.2.3.3libidn/1.15 Host: api.pachube.com Accept: */* X-PachubeApiKey:wR9aN5777ssUnCFF-_G9lALAZb3L... Content-Length: 15 Content-Type: application/x-www-form-urlencoded Sensor-A, 24.12
Где 44022 — идешник вашего Pachube feed;
wR9aN5777ssUnCFF-_G9lALAZb3L... — ваш Pachube API Key;
Sensor-A, 24.12 — данные, вы можете поменять их на любое другое (ключ, значение).
символ [ESC] символ [E]
AT+NCLOSEALL
Более подробную информацию по AT-командам смотрите в документации к шилду, а также в Application notes.
Пример простейшего скетча отправляющий данные с датчика температуры DS18B20 подключенного к pin8.
#include <onewire.h> #include <dallastemperature.h> #define ONE_WIRE_BUS 8 OneWire oneWire(ONE_WIRE_BUS); DallasTemperature sensors(&oneWire); void setup(void) { Serial.begin(115200); delay(100); Serial.println("ATE0"); delay(100); init_network(); delay(100); sensors.begin(); delay(100); } void loop(void) { sensors.requestTemperatures(); float temperature = sensors.getTempCByIndex(0); Serial.println("AT+NCTCP=173.203.98.29,80"); delay(5000); Serial.print(27,BYTE); // символ [ESC] delay(100); Serial.print(83,BYTE); // символ S delay(100); Serial.print(48,BYTE); // цифра 0 delay(100); Serial.println("PUT /v2/feeds/44022.csv HTTP/1.1"); delay(100); Serial.println("User-Agent: curl/7.19.5 (i486-pc-linux-gnu) libcurl/7.19.5 OpenSSL/0.9.8g zlib/1.2.3.3libidn/1.15"); delay(100); Serial.println("Host: api.pachube.com"); delay(100); Serial.println("Accept: "); Serial.print(42,BYTE); // символ * Serial.print(47,BYTE); // символ / Serial.println(42,BYTE); // символ * delay(100); Serial.println("X-PachubeApiKey:wR9aN5777ssUnCFF-_G9lALAZb3L..."); delay(100); Serial.println("Content-Length: 15"); delay(100); Serial.println("Content-Type: application/x-www-form-urlencoded"); delay(100); Serial.print("\n\n"); Serial.print("Sensor-A,"); Serial.print(temperature); Serial.print("\n"); delay(100); Serial.print(27,BYTE); // символ [ESC] delay(100); Serial.print(69,BYTE); // символ E delay(3000); Serial.println("AT+NCLOSEALL"); delay(300000); // пауза 5 минут } void init_network (){ Serial.println("ATC0"); delay(1000); Serial.println("AT+WD"); delay(1000); Serial.println("AT+NDHCP=0"); delay(1000); Serial.println("AT+NSET=192.168.1.25,255.255.255.0,192.168.1.1"); delay(3000); Serial.println("AT+WWPA=U17qGmb6eyHZMUv"); delay(3000); Serial.println("AT+WA=WiFi"); delay(15000); }
Пример настроек соединения для отправки HTTP-запроса методом GET — можно посмотреть в Application notes, документ — "HTTP Data Transfer.pdf"
Если у вас возникли какие-либо вопросы по использованию шилда — пишите на наш форум.