Arduino+МЖД

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

Cyoko
Сообщения: 91
Зарегистрирован: Ср июл 09, 2014 1:00 pm
Благодарил (а): 12 раз
Поблагодарили: 0

Arduino+МЖД

Сообщение Cyoko » Пт сен 12, 2014 11:44 am

Что есть : Ардуино+DHT11+модуль реле и МЖД на windows . Ардуино управляет реле в зависимости от тепературы.
Что надо : Выводить красиво значения температуры и влажности . Возможность изменять переменную вкл/выкл реле из МЖД.
Никак не могу понять как это все объединить :(
Ардуино подключил по ЮСБ , запустил прогу arduino_gw. В ней вижу что Ардуино передает значение каждые 10 секунд (так настроил). Я так понимаю чтобы передать значение надо не просто переменную в порт кидать , а некую строку Get......
Но чтобы знать что кидать , надо знать что будет ловить :) извиняйте. И вот хожу по кругу . Может кто помочь разобраться ?
Cyoko
Сообщения: 91
Зарегистрирован: Ср июл 09, 2014 1:00 pm
Благодарил (а): 12 раз
Поблагодарили: 0

Re: Arduino+МЖД

Сообщение Cyoko » Пт сен 12, 2014 11:57 am

Вот хочу создать новый раздел в меню управления , ну для примера Теплица . Смотрю как устроен тот же климат , у него в названии <#LANG_GENERAL_CLIMATE#> (%TempOutside%°C) . Ну с TempOutside вроде догадался что это переменная , которая берется из погодного сервиса. А вот <#LANG_GENERAL_CLIMATE#> куда ? И почему слова Климат нет ? Где смотреть <#LANG_GENERAL_CLIMATE#> ? Думаю это несколько прояснит ситуацию)
Cyoko
Сообщения: 91
Зарегистрирован: Ср июл 09, 2014 1:00 pm
Благодарил (а): 12 раз
Поблагодарили: 0

Re: Arduino+МЖД

Сообщение Cyoko » Пт сен 12, 2014 12:17 pm

Код: Выделить всё

byte inByte = 0;

void setup() {
  Serial.begin(9600);
  pinMode(13, OUTPUT);
  digitalWrite(13, LOW);
}

void loop() 
{
  if (Serial.available() > 0) 
  {
    inByte = Serial.read();
      if (inByte == 1) 
        digitalWrite(13, HIGH);
      else if (inByte == 0)
         digitalWrite(13, LOW);        
   }
} 
это можно будет для изменения значения использовать.....
Cyoko
Сообщения: 91
Зарегистрирован: Ср июл 09, 2014 1:00 pm
Благодарил (а): 12 раз
Поблагодарили: 0

Re: Arduino+МЖД

Сообщение Cyoko » Пт сен 12, 2014 1:36 pm

Создал я класс ArduinoSensor и в нем 2 объекта - TempDHT11 и HumidityDHT11 . Дальше пока не осилил :)
Vit
Сообщения: 867
Зарегистрирован: Вт янв 17, 2012 12:31 pm
Благодарил (а): 121 раз
Поблагодарили: 78 раз

Re: Arduino+МЖД

Сообщение Vit » Пт сен 12, 2014 9:17 pm

http://smartliving.ru/Main/ArduinoCode

Посмотрите пример скетча для ардуино и работы через usb
В нем пример строки отправки значения на сервер

а дальше походу разберемся и поможем.
Cyoko
Сообщения: 91
Зарегистрирован: Ср июл 09, 2014 1:00 pm
Благодарил (а): 12 раз
Поблагодарили: 0

Re: Arduino+МЖД

Сообщение Cyoko » Сб сен 13, 2014 11:28 am

Я так понял это эти строки ?
sprintf(buf, "GET /objects/?object=sensorKotel&op=m&m=tempChanged&t=%0d.%d HTTP/1.0", (int)current_temp1, abs(temp1));
sendHTTPRequest();

У меня уже есть готовый , вот например его кусок замера температуры

Код: Выделить всё

//типа таймер для включения функции опроса датчика температуры( каждые 10 сек)-----------------------
  if ( millis( ) - TempMillisTemp > 10000 ){
  TempMillisTemp = millis( );
  Temperatura=readSenseTemp();
  Serial.println(Temperatura);
  
//-------------------------------режим работы вентилятора-------------------------------
  CurrentStayRelayFan = FanPower_PIN;// переменная для отслеживания текущего состояния реле вентилятора
  if ( Temperatura < TempFanOff ){
    digitalWrite(FanPower_PIN, LOW); //если температуры меньше заданной выключаем реле вентилятора
  }
  else if ( Temperatura > TempFanOn ){
    digitalWrite(FanPower_PIN, HIGH);// если температура поднялась выше заданной включаем реле вентилятора
  }
  else {
    digitalWrite(FanPower_PIN, CurrentStayRelayFan);// если температура в заданном диапазоне оставляем реле вентилятора как есть
  }
}
//---------------------------------------------------------------------------------------------------------------------------  
Получается мне после или вместо строки
Serial.println(Temperatura);
надо отправить ту же переменную , только в виде понятном arduino_gw так? А он передаст ее на сервер МЖД. Так ?


Вот мне и нужна помощь в расшифровке
sprintf(buf, "GET /objects/?object=sensorKotel&op=m&m=tempChanged&t=%0d.%d HTTP/1.0", (int)current_temp1, abs(temp1));
sendHTTPRequest();

и в создании объекта и его свойств и способов на стороне МЖД.

Просто пример скетча то есть , а примера создания объекта под него нет . Вот я и не могу увязать одно с другим . Я так понимаю что на стороне МЖД надо будет тоже кодить , на php....
Cyoko
Сообщения: 91
Зарегистрирован: Ср июл 09, 2014 1:00 pm
Благодарил (а): 12 раз
Поблагодарили: 0

Re: Arduino+МЖД

Сообщение Cyoko » Сб сен 13, 2014 11:37 am

Это мое первое знакомство с МЖД кроме установки :)
Аватара пользователя
savenko_egor
Сообщения: 705
Зарегистрирован: Вс авг 03, 2014 8:17 pm
Откуда: Украина, Запорожье
Благодарил (а): 108 раз
Поблагодарили: 147 раз
Контактная информация:

Re: Arduino+МЖД

Сообщение savenko_egor » Сб сен 13, 2014 2:51 pm

Посмотрите в тему Arduino UNO R3 + MR3020 + Сервер MajorDoMo там есть много объяснений. Если что задавайте вопросы.
eygen
Сообщения: 393
Зарегистрирован: Чт сен 25, 2014 5:37 pm
Откуда: Екатеринбург
Благодарил (а): 25 раз
Поблагодарили: 52 раза

Re: Arduino+МЖД

Сообщение eygen » Чт сен 25, 2014 7:38 pm

Cyoko писал(а):Я так понял это эти строки ?
sprintf(buf, "GET /objects/?object=sensorKotel&op=m&m=tempChanged&t=%0d.%d HTTP/1.0", (int)current_temp1, abs(temp1));
sendHTTPRequest();

У меня уже есть готовый , вот например его кусок замера температуры

Код: Выделить всё

//типа таймер для включения функции опроса датчика температуры( каждые 10 сек)-----------------------
  if ( millis( ) - TempMillisTemp > 10000 ){
  TempMillisTemp = millis( );
  Temperatura=readSenseTemp();
  Serial.println(Temperatura);
  
//-------------------------------режим работы вентилятора-------------------------------
  CurrentStayRelayFan = FanPower_PIN;// переменная для отслеживания текущего состояния реле вентилятора
  if ( Temperatura < TempFanOff ){
    digitalWrite(FanPower_PIN, LOW); //если температуры меньше заданной выключаем реле вентилятора
  }
  else if ( Temperatura > TempFanOn ){
    digitalWrite(FanPower_PIN, HIGH);// если температура поднялась выше заданной включаем реле вентилятора
  }
  else {
    digitalWrite(FanPower_PIN, CurrentStayRelayFan);// если температура в заданном диапазоне оставляем реле вентилятора как есть
  }
}
//---------------------------------------------------------------------------------------------------------------------------   
Получается мне после или вместо строки
Serial.println(Temperatura);
надо отправить ту же переменную , только в виде понятном arduino_gw так? А он передаст ее на сервер МЖД. Так ?


Вот мне и нужна помощь в расшифровке
sprintf(buf, "GET /objects/?object=sensorKotel&op=m&m=tempChanged&t=%0d.%d HTTP/1.0", (int)current_temp1, abs(temp1));
sendHTTPRequest();

и в создании объекта и его свойств и способов на стороне МЖД.

Просто пример скетча то есть , а примера создания объекта под него нет . Вот я и не могу увязать одно с другим . Я так понимаю что на стороне МЖД надо будет тоже кодить , на php....

Ага, видать не я один на эти грабли наступил... Чего нарыл?
Cyoko
Сообщения: 91
Зарегистрирован: Ср июл 09, 2014 1:00 pm
Благодарил (а): 12 раз
Поблагодарили: 0

Re: Arduino+МЖД

Сообщение Cyoko » Чт сен 25, 2014 8:47 pm

Ну вроде все получилось) спасибо шарику)) я для чайников(чтоб самому не забыть) статью на своём сайте написал, могу ссыль кинуть. А если кратенько , то я шёл в правильном направлении. Эти строки и нужны...sensorkotel это объект, tempchanged его свойство,temp1 что передаем.
Ответить