-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathHP20x_demo.ino
65 lines (55 loc) · 1.67 KB
/
HP20x_demo.ino
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
/*
Demo name : HP20x_dev demo
Usage : I2C PRECISION BAROMETER AND ALTIMETER [HP206C hopeRF]
Author : Oliver Wang from Seeed Studio
Version : V0.1
Change log : Add kalman filter 2014/04/04
*/
#include <HP20x_dev.h>
#include "Arduino.h"
#include "Wire.h"
#include <KalmanFilter.h>
unsigned char ret = 0;
/* Instance */
KalmanFilter t_filter; //temperature filter
KalmanFilter p_filter; //pressure filter
KalmanFilter a_filter; //altitude filter
void setup() {
Serial.begin(9600); // start serial for output
Serial.println("****HP20x_dev demo by seeed studio****\n");
Serial.println("Calculation formula: H = [8.5(101325-P)]/100 \n");
/* Power up,delay 150ms,until voltage is stable */
delay(150);
/* Reset HP20x_dev */
HP20x.begin();
delay(100);
}
void loop() {
Serial.println("------------------\n");
long Temper = HP20x.ReadTemperature();
Serial.println("Temper:");
float t = Temper / 100.0;
Serial.print(t);
Serial.println("C.\n");
Serial.println("Filter:");
Serial.print(t_filter.Filter(t));
Serial.println("C.\n");
long Pressure = HP20x.ReadPressure();
Serial.println("Pressure:");
t = Pressure / 100.0;
Serial.print(t);
Serial.println("hPa.\n");
Serial.println("Filter:");
Serial.print(p_filter.Filter(t));
Serial.println("hPa\n");
long Altitude = HP20x.ReadAltitude();
Serial.println("Altitude:");
t = Altitude / 100.0;
Serial.print(t);
Serial.println("m.\n");
Serial.println("Filter:");
Serial.print(a_filter.Filter(t));
Serial.println("m.\n");
Serial.println("------------------\n");
delay(1000);
}