Temperature and humidity data collection

From Microduino Wiki
Revision as of 13:25, 20 May 2014 by Pkj (talk) (Created page with "{{Language | 温湿度数据采集}} {| style="width: 800px;" |- | ==Objective== This tutorial will display the temperature and humidity data data in Processing with a curve w...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
Language: English  • 中文

Objective

This tutorial will display the temperature and humidity data data in Processing with a curve which measured by the AM2321 sensor.

Equipment

Microduino-Weatherstation

  • Other equipment
    • USB cable one

Schematic

We will use the Microduino-Weatherstation's AM2321 sensor directly.

Program

Refers to TemperatureHumidityData

TemperatureHumidityDataArduino

Debug

Step 1:Set up hardware system, as follows:

TemperatureHumidityDataConnectionDiagram.jpg

Step 2: Explain the code:

This example needs two parts code, one is Processing and the other is Microduino.

Microduino:

//Get the temperature and humidity data for Processing's display.

 void loop()
 {
   am2321.read();
   temperature=(float)am2321.temperature/10.0;
   humidity=(float)am2321.humidity/10.0;
   Serial.print(temperature);
   Serial.print(",");
   Serial.println(humidity);
   delay(100);
 }

Processing:

//Get the serial port data, // is always my Arduino, so I open Serial.list()[0]. // Open whatever port is the one you're using.

 myPort = new Serial(this, Serial.list()[0], 9600);
 myPort.bufferUntil('\n'); // Trigger a SerialEvent on new line

//Use the different color's curve to display the data that Microduino sent and mark the table scale

 void draw() {
   background(255);
   // Draw lines connecting all points
   for (int i = 0; i < vals.length-1; i++) {
     strokeWeight(1);
     stroke(255,0,0);
     line(i, vals[i], i+1, vals[i+1]);
     stroke(0,0,255);
     line(i, vals2[i], i+1, vals2[i+1]);
   }
   // Slide everything down in the array
   for (int i = 0; i < vals.length-1; i++) {
     vals[i] = vals[i+1];
     vals2[i] = vals2[i+1];
   }
   String val = myPort.readStringUntil('\n');
   if (val != null) {
     val = trim(val);
     println(val);
     String tempAndHumidty[]=val.split(","); 
     temp=tempAndHumidty[0];
     humidity=tempAndHumidty[1];
     lux=Float.parseFloat(val);
   }
   vals[vals.length-1] = 200-temp;
   vals2[vals.length-1] = 200-humidity;
   //Display scale
   fill(0, 0, 0);
   text ( "200-", 370, 10); 
   text ( "--", 370, 50); 
   text ( "100-", 370, 100);
   text ( "--", 370, 150); 
   text ( "0-", 370, 200); 
   //show current num
   fill(255, 0, 0);
   text ( "temp:"+temp+"'C", 0, 15);
   fill(0, 0, 255);
   text ( "humidity:"+humidity+"%", 0, 28);
 }

Step 3: Compile the code and download it.

Step 4:After running, change the temperature around the sensor, obserbe the curve.

Result

Screen will display the temperature and humidity data curve, the temperature curve is red,and the humidity curve is bule. As follows:

TemperatureHumidityDataResult.jpg

Video