23,54
9,11
21,10
каждую минуту в ответ на запрос мажорика приходит в файл такой ответ, где я знаю что первый датчик стоит в аквариуме, и присваиваю его к свойству аквариума, второй на улице, присваиваю его к улице и т.д.
СпойлерПоказать
shell_exec("echo T1 >/dev/ttyUSB0");
$aquatemp=exec('head -n-2 /home/vcerkas/temp.log | tail -n1');
setGlobal('AquaTemp.temperatura',$aquatemp);
$hometemp=exec('head -n-1 /home/vcerkas/temp.log | tail -n1');
setGlobal('TempSensor01.zal',$hometemp);
$ulicatemp=exec('head -n-0 /home/vcerkas/temp.log | tail -n1');
setGlobal('TempSensor01.ulica',$ulicatemp);
$aquatemp=exec('head -n-2 /home/vcerkas/temp.log | tail -n1');
setGlobal('AquaTemp.temperatura',$aquatemp);
$hometemp=exec('head -n-1 /home/vcerkas/temp.log | tail -n1');
setGlobal('TempSensor01.zal',$hometemp);
$ulicatemp=exec('head -n-0 /home/vcerkas/temp.log | tail -n1');
setGlobal('TempSensor01.ulica',$ulicatemp);
СпойлерПоказать
include <OneWire.h>
#include <DallasTemperature.h>
char incomingChar;
String fullString="";
// Data wire is plugged into port 2 on the Arduino
#define ONE_WIRE_BUS 10
#define TEMPERATURE_PRECISION 12
// Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs)
OneWire oneWire(ONE_WIRE_BUS);
// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensors(&oneWire);
void setup() {
// put your setup code here, to run once:
pinMode(11, OUTPUT);
pinMode(12, OUTPUT);
Serial.begin( 115200 );
digitalWrite(11,HIGH);
digitalWrite(12,HIGH);
sensors.begin();
}
void loop() {
if(Serial.available()>0)
{
//while(Serial.available()!=0)
//{
incomingChar=Serial.read();
delay(50); // задержка 2мс. нужна, чтобы сериал порт успел принять все символы.
fullString += incomingChar;
incomingChar=Serial.read();
delay(50); // задержка 2мс. нужна, чтобы сериал порт успел принять все символы.
fullString += incomingChar;
//}
if(fullString=="P1")
{
// Serial.write("OK");
digitalWrite(11,LOW);
delay(3000);
digitalWrite(11,HIGH);
}
else if(fullString=="P2")
{
// Serial.write("OK");
digitalWrite(11,LOW);
delay(3000);
delay(3000);
digitalWrite(11,HIGH);
}
if(fullString=="S1")
{
// Serial.write("OK");
digitalWrite(12,LOW);
}
else if(fullString=="S2")
{
// Serial.write("OK");
digitalWrite(12,HIGH);
}
if(fullString=="T1")
{
sensors.requestTemperatures();
Serial.println(sensors.getTempCByIndex(0));
//delay(200);
Serial.println(sensors.getTempCByIndex(1));
//delay(200);
Serial.println(sensors.getTempCByIndex(2));
}
fullString="";
}
delay(100);
}
#include <DallasTemperature.h>
char incomingChar;
String fullString="";
// Data wire is plugged into port 2 on the Arduino
#define ONE_WIRE_BUS 10
#define TEMPERATURE_PRECISION 12
// Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs)
OneWire oneWire(ONE_WIRE_BUS);
// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensors(&oneWire);
void setup() {
// put your setup code here, to run once:
pinMode(11, OUTPUT);
pinMode(12, OUTPUT);
Serial.begin( 115200 );
digitalWrite(11,HIGH);
digitalWrite(12,HIGH);
sensors.begin();
}
void loop() {
if(Serial.available()>0)
{
//while(Serial.available()!=0)
//{
incomingChar=Serial.read();
delay(50); // задержка 2мс. нужна, чтобы сериал порт успел принять все символы.
fullString += incomingChar;
incomingChar=Serial.read();
delay(50); // задержка 2мс. нужна, чтобы сериал порт успел принять все символы.
fullString += incomingChar;
//}
if(fullString=="P1")
{
// Serial.write("OK");
digitalWrite(11,LOW);
delay(3000);
digitalWrite(11,HIGH);
}
else if(fullString=="P2")
{
// Serial.write("OK");
digitalWrite(11,LOW);
delay(3000);
delay(3000);
digitalWrite(11,HIGH);
}
if(fullString=="S1")
{
// Serial.write("OK");
digitalWrite(12,LOW);
}
else if(fullString=="S2")
{
// Serial.write("OK");
digitalWrite(12,HIGH);
}
if(fullString=="T1")
{
sensors.requestTemperatures();
Serial.println(sensors.getTempCByIndex(0));
//delay(200);
Serial.println(sensors.getTempCByIndex(1));
//delay(200);
Serial.println(sensors.getTempCByIndex(2));
}
fullString="";
}
delay(100);
}