コード例 #1
0
ファイル: logtemps.c プロジェクト: edboel/projects
void LogTemps(){
   if (!file.open(root, filename, O_CREAT | O_APPEND | O_WRITE)) {
     //error(“open”);
   }
   
// write values to the file

          sensorsa.requestTemperatures(); 
          sensorsb.requestTemperatures(); 
          sensorsc.requestTemperatures(); 
          sensorsd.requestTemperatures(); 
          

file.print(now() );
file.print("|");
file.print(sensorsa.getTempCByIndex(0));
file.print("|");
file.print(sensorsb.getTempCByIndex(0));
file.print("|");
file.print(sensorsc.getTempCByIndex(0));
file.print("|");
file.print(sensorsd.getTempCByIndex(0));
file.print("\n");

if (!file.close() || file.writeError){
 // error(“close/write”);
}
  
}
コード例 #2
0
ファイル: sensor.cpp プロジェクト: aobatake/TeamRocket
/* Temperature Sensor */
long sensorRoofTempdecic(void)      
{
    long value =  0;
    dallas_roof_sen.requestTemperatures();
    value = dallas_roof_sen.getTempCByIndex(0);
    return value;
}
コード例 #3
0
float MXS1101::getTempC()
{
	oneWire.reset();
	_MXS1101.begin();
	_MXS1101.requestTemperatures();
	return _MXS1101.getTempCByIndex(0);
}
コード例 #4
0
ファイル: main.cpp プロジェクト: geosk/brewery
bool setTemperature(unsigned long iTemp){
	//Serial.println("Req temp");
	sensors.requestTemperatures(); // Send the command to get temperatures
	//Serial.println("Requested");
	float tempr =  sensors.getTempCByIndex(0);
	//Serial.println("Temp res");
	//displayData("Temp res");
	char buffer[256];
	displayData(itoa(tempr, buffer, 10));
	displayData(",");
	displayData(itoa(iTemp, buffer, 10));
	displayData(",");
	//Serial.println("params");
//	Serial.println("thi:" + iTenHighMax);
//	Serial.println("tlo:" + iTenLowMax);
	if ((tempr <= iTemp) && (iTenHigh < iTenHighMax)){
		digitalWrite(TEN_WIRE, HIGH);
		displayData("H");
		iTenHigh++;
		iTenLow = 0;
	}else{
		digitalWrite(TEN_WIRE, LOW);
		displayData("L");
		iTenLow++;
		if(iTenLow >= iTenLowMax)
			iTenHigh = 0;
	}
	displayData("\r\n");

	return (tempr >= (iTemp - 1)) and (tempr <= (iTemp + 10));
}
コード例 #5
0
void readTempHumid()
{
	temperatureSensor.requestTemperatures();
	double tempCelcius = temperatureSensor.getTempCByIndex(0);
	String toDrawTemp = doubleToString(tempCelcius, 2);
	
	
	double humidityVoltage = (double) analogRead(5) / 1024 * REFERENCE_VOLTAGE;
	double humidityPercentage = (humidityVoltage / REFERENCE_VOLTAGE - 0.16) / 0.0062;
	double relativeHumidity = humidityPercentage / (1.0546 - 0.00216 * tempCelcius);
	
	if(relativeHumidity > 100)
		relativeHumidity = 100;
	else if(relativeHumidity < 0)
		relativeHumidity = 0;
		
	String toDrawHumid = doubleToString(relativeHumidity, 2);
	if(deviceStatus == TEMP_VIEW)
	{
		LCD.rectangle(81, 0, 320, 240, BLACK);
		LCD.tText(7, 6, WHITE, "Temp(C): " + toDrawTemp + "C");
		LCD.tText(7, 7, WHITE, "RH%: " + toDrawHumid + "%");
	}
	
	if(writeToSD)
	{
		String toWrite = toDrawTemp + "\t" + toDrawHumid + "\n";
		LCD.appendString2File("Data", toWrite);
	}
}
コード例 #6
0
ファイル: code.c プロジェクト: Tambralinga/loguino
    void DS18B20_sample(){
        #ifdef DEBUG_DS18B20_POLLER
            DEBUG_1("Starting");
        #endif
        #ifdef DEBUG_DS18B20_POLLER
            DEBUG_5("Requesting Temperatures");
        #endif
        char buf[25];
        ds_sensors.requestTemperatures();
        for (int i=0; i < ds_count; i++){
            #ifdef DEBUG_DS18B20_POLLER
                DEBUG_5("Logging DSB Pin");
            #endif
            sprintf(buf, "DS18B20.%d", i);
            logMessage(buf, ds_sensors.getTempCByIndex(i), "Degrees/C");
            #ifdef DEBUG_DS18B20_POLLER
                DEBUG_5("Logged DSB Pin");
            #endif
        }
        #ifdef DEBUG_DS18B20_POLLER
            DEBUG_2("Requested Temperatures");
        #endif


        #ifdef DEBUG_DS18B20_POLLER
            DEBUG_1("Finished");
        #endif
    }
コード例 #7
0
void doTout() {
  String vStr;
  memset(tmpChr,0,sizeof(tmpChr));
  if (hasTpwr>0) {
    digitalWrite(hasTpwr, HIGH); // ow on
    delay(5); // wait for powerup
  }

  ds18b20.requestTemperatures();
  byte retry = 20;
  float temp=0.0;
  do {
    temp = ds18b20.getTempCByIndex(0);
    retry--;
    delay(2);
  } while (retry > 0 && (temp == 85.0 || temp == (-127.0)));

  if (hasTpwr>0) {
    digitalWrite(hasTpwr, LOW); // ow off
  }


  vStr = String("temp=") + String(temp,3);
  vStr.toCharArray(tmpChr, vStr.length()+1);
}
コード例 #8
0
double Sensor::getDS18B20Reading()
{
    OneWire oneWire(index);
    DallasTemperature sensor = DallasTemperature(&oneWire);
    sensor.setResolution(12);
    sensor.begin();
    sensor.requestTemperatures();
    return sensor.getTempCByIndex(0);
}
コード例 #9
0
ファイル: application.cpp プロジェクト: TheokieZA/Sming
void readData()
{
	Serial.print("Requesting temperatures...");
	sensors.requestTemperatures(); // Send the command to get temperatures
	Serial.println("DONE");

	temp = sensors.getTempCByIndex(0);
	Serial.print("Temperature for Device 1 is: ");
	Serial.print(temp); // Why "byIndex"? You can have more than one IC on the same bus. 0 refers to the first IC on the wire
}
コード例 #10
0
ファイル: OpenGarden.cpp プロジェクト: thaussma/OpenGarden
float OpenGardenClass::readSoilTemperature() {
  sensors.requestTemperatures(); // Send the command to get temperatures
  return sensors.getTempCByIndex(0);
}
コード例 #11
0
ファイル: main.cpp プロジェクト: TobiasN82/SMASE
void ds18b20() {

  DS18B201.requestTemperatures();
  DS18B202.requestTemperatures();
  DS18B203.requestTemperatures();
  DS18B204.requestTemperatures();

  int i1 = 0;
  int i2 = 0;
  int i3 = 0;
  int i4 = 0;
  temp11 = DS18B201.getTempCByIndex(0);
  while ((temp11 == 85) && (i1 < 5))
  {
    delay (1000);
    DS18B201.requestTemperatures();
    temp11 = DS18B201.getTempCByIndex(0);
    i1++;
  }

  temp22 = DS18B202.getTempCByIndex(0);
  while ((temp22 == 85) && (i2 < 5))
  {
    delay (1000);
    DS18B202.requestTemperatures();
    temp22 = DS18B202.getTempCByIndex(0);
    i2++;
  }

  temp33 = DS18B203.getTempCByIndex(0);
  while ((temp33 == 85) && (i3 < 5))
  {
    delay (1000);
    DS18B203.requestTemperatures();
    temp33 = DS18B203.getTempCByIndex(0);
    i3++;
  }

  temp44 = DS18B204.getTempCByIndex(0);
  while ((temp44 == 85) && (i4 < 5))
  {
    delay (1000);
    DS18B204.requestTemperatures();
    temp44 = DS18B204.getTempCByIndex(0);
    i4++;
  }


  EEPROM.begin(512);
  delay(10);
  String temp1k = "";
  String temp2k = "";
  String temp3k = "";
  String temp4k = "";
  for (int i = 110; i < 115; i++)
  {
    temp1k += char(EEPROM.read(i));
  }
  for (int i = 115; i < 120; i++)
  {
    temp2k += char(EEPROM.read(i));
  }
  for (int i = 120; i < 125; i++)
  {
    temp3k += char(EEPROM.read(i));
  }
  for (int i = 125; i < 130; i++)
  {
    temp4k += char(EEPROM.read(i));
  }
  EEPROM.end();
  Serial.println("Kalibrierung T1: " + temp1k);
  Serial.println("Kalibrierung T2: " + temp2k);
  Serial.println("Kalibrierung T3: " + temp3k);
  Serial.println("Kalibrierung T4: " + temp4k);


  temp1 = temp11 + temp1k.toInt();
  temp2 = temp22 + temp2k.toInt();
  temp3 = temp33 + temp3k.toInt();
  temp4 = temp44 + temp4k.toInt();
  //String tempC = dtostrf(temp, 4, 1, buffer);//handled in sendTemp()
  Serial.print(String(sent) + " Temperature_neu1: ");
  Serial.println(temp1);
  Serial.println("Temperature_neu2: ");
  Serial.println(temp2);
  Serial.println("Temperature_neu3: ");
  Serial.println(temp3);
  Serial.println("Temperature_neu4: ");
  Serial.println(temp4);

  NTP();
}
コード例 #12
0
void loop()
{	
	msgStatus.voltage = (12 * analogRead(pin_voltage) + 4*prev_voltage)/16;
	prev_voltage = msgStatus.voltage;
	msgStatus.voltage *= 30;
	msgStatus.current = (12 * analogRead(pin_current) + 4*prev_current)/16;
	prev_current = msgStatus.current;
	msgStatus.current = 333*(msgStatus.current - 501);
    
	if(abs(msgStatus.current) <= 1000 )
	{
		// Current is less than 1 amp in either direction,
		// Batteries are (probably?) disconnected.
		batteryState = ERROR;
	}
    else if(msgStatus.voltage < 20000)
    {
        batteryState = ERROR;
        stateOfCharge = 0;
    }
	else if(msgStatus.current > 0)
	{
		// If current is positive, we are charging
		stateOfCharge = 100;
		if (msgStatus.current < 3000)
			batteryState = TRICKLE_CHARGING;
		else
			batteryState = CHARGING;
	} else {
		// Otherwise, we are discharging.
		stateOfCharge = msgStatus.voltage/25 - 900;
		if (stateOfCharge > 100)
			stateOfCharge = 100;
		if (stateOfCharge < 20)
			batteryState = DISCHARGING_CRITICAL;
		else
			batteryState = DISCHARGING;
	}
	msgStatus.battery_state = batteryState;
	msgStatus.charge = stateOfCharge;
	updateBatteryDisplay();
	
	msgStatus.temperature_1 = temperatureTop.getTempCByIndex(0);
	msgStatus.temperature_2 = temperatureBot.getTempCByIndex(0);
	temperatureTop.requestTemperatures();
	temperatureBot.requestTemperatures();
	
	msgStatus.cutter_1 = (digitalRead(pin_leftCutterCheck) ? FALSE : TRUE);
	msgStatus.cutter_2 = (digitalRead(pin_rightCutterCheck) ? FALSE : TRUE);
	
	if(leftCutterState && !msgStatus.cutter_1)
	{
		digitalWrite(pin_leftCutterControl, LOW);
		leftCutterState = LOW;
		msgStatus.cutter_1 = FALSE;
	}
	if(rightCutterState && !msgStatus.cutter_2)
	{
		digitalWrite(pin_rightCutterControl, LOW);
		rightCutterState = LOW;
		msgStatus.cutter_2 = FALSE;
	}
	
	status_pub.publish( &msgStatus );
	nh.spinOnce();
	delay(400);
}
コード例 #13
0
ファイル: ds18b20.cpp プロジェクト: Shanjiv/1st-IOT-Project
uint16_t ds18b20_read_value(uint8_t index)
{
  sensors.requestTemperatures();
  uint16_t value = ((uint16_t)(sensors.getTempCByIndex(index) * 100) + 5500);
  return value;
}
コード例 #14
0
ファイル: aquarium.cpp プロジェクト: djtulan/Arduino-Aquarium
float Aquarium::GetTempValue() {
  temp = dallastemp.getTempCByIndex(0);
  return temp;
}
コード例 #15
0
ファイル: logtemps.c プロジェクト: edboel/projects
void loop()
{
  Client client = server.available();
  if (client) {
    // an http request ends with a blank line
    boolean current_line_is_blank = true;
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
        // if we've gotten to the end of the line (received a newline
        // character) and the line is blank, the http request has ended,
        // so we can send a reply
        if (c == '\n' && current_line_is_blank) {
          // send a standard http response header
          client.println("HTTP/1.1 200 OK");
          client.println("Content-Type: text/html");
          client.println();

          // print all the files, use a helper to keep it clean
          //ListFiles(client, 0);
          client.println("<h2>Temperature:</h2>");
          
          sensorsa.requestTemperatures(); 
          sensorsb.requestTemperatures(); 
          sensorsc.requestTemperatures(); 
          sensorsd.requestTemperatures(); 
          client.println(sensorsa.getTempCByIndex(0));
           client.println("<br>");
           client.println(sensorsb.getTempCByIndex(1));
           client.println("<br>");
           client.println(sensorsc.getTempCByIndex(2));
           client.println("<br>");
           client.println(sensorsd.getTempCByIndex(3));
           client.println("<br><br>..");
          //ListFiles(client, 0);

          break;
        }
        if (c == '\n') {
          // we're starting a new line
          current_line_is_blank = true;
        } 
        else if (c != '\r') {
          // we've gotten a character on the current line
          current_line_is_blank = false;
        }
      }
    }
    // give the web browser time to receive the data
    delay(1);
    client.stop();
  }
  

  if(now() > time33mins + (33 * SECS_PER_MIN) )
  {
    //Serial.println("33 minutes has elapsed");
   
    time33mins = now();    
     LogTemps();
  }
  if(now() > time60mins + (60 * SECS_PER_MIN) )
  {
    //Serial.println("one hour has elapsed");
    time60mins = now(); 
    LogTemps();   
  }

}
コード例 #16
0
ファイル: application.cpp プロジェクト: darcyg/nRF_TP
    void handleMessage(nRFTP::ByteBuffer& bb, uint8_t type, bool isResponse){
#if GATEWAY_NODE == 1
    	digitalWrite(13, HIGH);
    	//Serial.write(bb.data, Message::SIZE);
  	    delay(200);
  	    digitalWrite(13, LOW);
#endif
      switch (type){
          case nRFTP::Message::TYPE_PING:
            break;

          case Message::TYPE_ROUTE:
            break;

          case Message::TYPE_SENSORDATA:
          {
				SensorData sensorData(bb);
				if(!isResponse)		//This message was request.
				{
					uint16_t tmp = sensorData.header.srcAddress;
					sensorData.header.srcAddress = sensorData.header.destAddress;
					sensorData.header.destAddress = tmp;
					sensorData.header.setFlag(sensorData.header.FLAG_IS_RESPONSE, 1);

					switch(sensorData.sensorType){
						case SensorData::TYPE_BATTERY:
						{
							digitalWrite(BATT_MEASURE_EN, HIGH);
							sensorData.sensorData = analogRead(BATTERY_PIN) * 0.01299; 			// Const = 13.3 / 3.3 = 0.01299;
							digitalWrite(BATT_MEASURE_EN, LOW);
							break;
						}

						case SensorData::TYPE_LIGHT:
						{
							sensorData.sensorData = analogRead(LIGHT_PIN);
							break;
						}

						case SensorData::TYPE_CURRENT:
						{
							sensorData.sensorData = analogRead(CURRENT_PIN) * 0.03949;			//Const = (3.3 * 1000) / (1024*1.6*51) = 0.03949
							break;
						}

						case SensorData::TYPE_TEMPERATURE:
						{
							sensors.requestTemperatures();
							sensorData.sensorData = sensors.getTempCByIndex(0);
							break;
						}

						default:
							break;

					}
					bb.reset();
					sensorData.copyToByteBuffer(bb);
					delay(20);
					transportProtocol.sendMessage(bb, sensorData.header.destAddress);
				}
				else
				{
					// This message was response, the payload contains the sensor data and type.
				}


            break;
            }


          default:
            break;
      }
    }
コード例 #17
0
ファイル: temp_serial1.c プロジェクト: edboel/projects
void loop()
{
  sen1.requestTemperatures();
  sen2.requestTemperatures();
  sen3.requestTemperatures();
  sen4.requestTemperatures();
  sen5.requestTemperatures();
  
  echoSerial();
  delay(1000);
  echoSerial();
  delay(1000);
    
  digitalWrite ( BACKLIGHT_PIN, HIGH );
  
  if(sen1.getTempCByIndex(0) < 80){
    tmp1=sen1.getTempCByIndex(0);
  }
  if(sen2.getTempCByIndex(0) < 80){
    tmp2=sen2.getTempCByIndex(0);
  }
  if(sen3.getTempCByIndex(0) < 80){
    tmp3=sen3.getTempCByIndex(0);
  }
  if(sen4.getTempCByIndex(0) < 80){
    tmp4=sen4.getTempCByIndex(0);
  }
  if(sen5.getTempCByIndex(0) < 80){
    tmp5=sen5.getTempCByIndex(0);
  }
  
   lcd.home ();                   // go home
  lcd.print("T1=");  
  lcd.print(tmp1);
  lcd.print(" T2=");
  lcd.print(tmp2);
  lcd.setCursor ( 0, 1 );        // go to the next line
  lcd.print("T3=");
  lcd.print(tmp3);
  lcd.print("  T4=");
  lcd.print(tmp4);
  
  Serial.print(tmp1);
  Serial.print("|");
  Serial.print(tmp2);
  Serial.print("|");
  Serial.print(tmp3);
  Serial.print("|");
  Serial.print(tmp4);
  Serial.print("|");
  Serial.print(tmp5);
  Serial.println(";");
 
  for(int i=0;i<5;i++){
    echoSerial();
    delay(1000);
  }
 
 digitalWrite ( BACKLIGHT_PIN, LOW );
  
}