Помогите разобраться с отправкой данных на народный мониторинг
- Войдите на сайт для отправки комментариев
Сб, 15/10/2016 - 10:52
Всем привет. Помогите пожалуйста разобраться с отправкой данных на narodmon.ru
Из датчиков пока подключены только bmp180 и dht22 с выводом данных на страницу в локальной сети.
https://yadi.sk/i/xg2ddM3XwsbxD
Вот такой вот скетч..
https://yadi.sk/d/dPUGnXOwwscMP
// Ethernet подключен к контактам 10, 11, 12, 13 // SD карта использует контакт 4 #include <DHT.h> #include <Wire.h> #include <Adafruit_BMP085.h> #include <IRremote.h> #include <SPI.h> #include <Ethernet.h> #define DHTPIN 2 // Контакт к которому подключен DHT22 DHT dht(DHTPIN, DHT22); Adafruit_BMP085 bmp; int hallLight1 = 22; // Контакт к которому подключено реле управления одной лампой люстры int hallLight2 = 24; // Контакт к которму подключено реле управления двумя лампами люстры boolean hallLight1Stat = false; // Состояние реле одной лампы (0-OFF, 1-ON) boolean hallLight2Stat = false; // Состояние реле двух ламп (0-OFF, 1-ON) boolean hallLight3Stat = false; // Состояние реле трех ламп (0-OFF, 1-ON) // ========================Задаем данные сети====================== byte mac[] = {0x90, 0xA2, 0xDA, 0x0D, 0x48, 0xD3 }; //mac - адрес ethernet shielda IPAddress ip(192,168,0,222); // ip адрес ethernet shielda IPAddress gateway(192,168,0,1); // шлюз IPAddress subnet(255, 255, 255, 0); // маска подсети EthernetServer server(80); //порт сервера String readString; //string for fetching data from address String HTTP_req; // stores the HTTP request // Функция управления светом void light(int n) { if(n==1) { digitalWrite(hallLight1, HIGH); hallLight1Stat = true; Serial.println("Hall light 1 ON"); delay(1000); lampTest(); } else if(n==11) { digitalWrite(hallLight1, LOW); hallLight1Stat = false; Serial.println("Hall light 1 OFF"); delay(1000); lampTest(); } else if(n==2) { digitalWrite(hallLight2, HIGH); hallLight2Stat = true; Serial.println("Hall light 2 ON"); delay(1000); lampTest(); } else if(n==22) { digitalWrite(hallLight2, LOW); hallLight2Stat = false; Serial.println("Hall light 2 OFF"); delay(1000); lampTest(); } else if(n==12) { digitalWrite(hallLight1, HIGH); hallLight1Stat = true; delay(1000); digitalWrite(hallLight2, HIGH); hallLight2Stat = true; Serial.println("Hall light 1 & 2 ON"); delay(1000); lampTest(); } else if(n==1122) { digitalWrite(hallLight1, LOW); hallLight1Stat = false; delay(1000); digitalWrite(hallLight2, LOW); hallLight2Stat = false; Serial.println("Hall light 1 & 2 OFF"); delay(1000); lampTest(); } } // Функция проверки включены ли обе лампы люстры void lampTest() { if (hallLight1Stat == true && hallLight2Stat == true) { hallLight3Stat = true; Serial.println("Hall light stat 3 = true"); } else { hallLight3Stat = false; Serial.println("Hall light stat 3 = false"); } } // send the state of the switch to the web browser void GetSwitchState(EthernetClient cl) { if (digitalRead(22)) { cl.println("Switch state: ON"); } else { cl.println("Switch state: OFF"); } } void setup() { pinMode(hallLight1, OUTPUT); // Устанавливаем контакт первого реле люстры как выход pinMode(hallLight2, OUTPUT); // Устанавливаем контакт второго реле люстры как выход Ethernet.begin(mac, ip); //запускаем Ethernet server.begin(); Serial.begin(9600); // Запускаем Serial монитор со скоростью 9600 бод Wire.begin(); dht.begin(); // Запускаем DHT22 bmp.begin(); // Запускаем BMP180 } void loop() { delay(2000); // Задержка 2 секунды между измерениями float humidity = dht.readHumidity(); //Считываем влажность float temperature = dht.readTemperature(); // Считываем температуру float pressure = bmp.readPressure()/133.3; if (isnan(humidity) || isnan(temperature)) { // Проверка удачно прошло ли считывание Serial.println("DHT ERROR"); return; } // =============Создаем клиентское соединение==================== EthernetClient client = server.available(); if (client) { while (client.connected()) { if (client.available()) { char c = client.read(); //read char by char HTTP request if (readString.length() < 100) { //store characters to string readString += c; if (c == '\n') { //-------------------------------------------------------------------------------------------------------- // Необходимо для отображения сайта: client.println("HTTP/1.1 200 OK"); //send new page client.println("Content-Type: text/html"); client.println(); client.println("<HTML>"); client.println("<HEAD>"); //-------------------------------------------------------------------------------------------------------- //------------------------------------------------- // то, что будет отображено: client.println("<meta http-equiv='Content-Type' content='text/html; charset=utf-8' />"); client.println("<meta http-equiv='refresh' content='2;URL=http://192.168.0.222/' />"); client.println("<TITLE>Умный дом v5</TITLE>"); client.println("<STYLE>table {font-size:25px}</STYLE>"); client.println("<center>"); client.println("</HEAD>"); client.println("<BODY bgcolor=#D3D3D3>"); client.println("<a href='http://192.168.0.222/'><H1>Умный дом v5</H1></a>"); client.println("<h2>Железо: Arduino Mega 2560 + W5100 + Relay x2 + DHT22</h1>"); client.println("<hr />"); client.println("<center>"); if (hallLight1Stat == 0) { client.println("<font size=\"6\"><a href=\"/?onelampon\"\">Включить одну лампу люстры</a>"); client.println("<br />"); client.println("<br />"); } else { client.println("<font size=\"6\"><a href=\"/?onelampoff\"\">Выключить одну лампу люстры</a>"); client.println("<br />"); client.println("<br />"); } if (hallLight2Stat == 0) { client.println("<a href=\"/?twolampon\"\">Включить две лампы люстры</a>"); client.println("<br />"); client.println("<br />"); } else { client.println("<a href=\"/?twolampoff\"\">Выключить две лампы люстры</a>"); client.println("<br />"); client.println("<br />"); } if (hallLight3Stat == 0) { client.println("<a href=\"/?threelampon\"\">Включить люстру полностью</a>"); client.println("<br />"); client.println("<br />"); } else { client.println("<a href=\"/?threelampoff\"\">Выключить люстру полностью</a>"); client.println("<br />"); client.println("<br />"); } client.println("<hr />"); client.print("<table border><tr><th colspan=3>Улица</th></tr> <tr><th>Температура<br />"); client.print(temperature, 1); client.print(" °C </th><th>Влажность<br />"); client.print(humidity, 1); client.print(" %</th><th>Атмосферное давление<br />"); client.print(pressure, 0); client.print(" mm</th></tr></table></font>"); client.println("<hr />"); client.println("<h4>Дом, который запрограммировал Soichi :) © 2016"); client.println("</BODY>"); client.println("</HTML>"); delay(1); //stopping client client.stop(); //------------------------------------------------- // Код, который должен быть реализован: if(readString.indexOf("?onelampon") >0) // Если нажата кнопка "onelampon" { light(1); } if(readString.indexOf("?onelampoff") >0) // Если нажата кнопка "onelampoff" { light(11); } if(readString.indexOf("?twolampon") >0) // Если нажата кнопка "onelampon" { light(2); } if(readString.indexOf("?twolampoff") >0) // Если нажата кнопка "onelampoff" { light(22); } if(readString.indexOf("?threelampon") >0) // Если нажата кнопка "threelampon" { light(12); } if(readString.indexOf("?threelampoff") >0) // Если нажата кнопка "threelampoff" { light(1122); } //clearing string for next read readString=""; // give the web browser time to receive the data delay(1); // close the connection: client.stop(); } } } } } //----------------------------------------------------------------------------------------- }
Или хотя бы подскажите, где взять пример отдельной отправки с bmp180 и отдельной с dht22