Demos
BMP085 I2C pressure/temperature sensor graphing demo
Demo
var b = require('bonescript');
var i2c = '/sys/class/i2c-adapter/i2c-1/';
b.writeTextFile(i2c + 'new_device', 'bmp085 0x77');
var graphDataSize = 50;
window.graphData = new Array(graphDataSize);
var canvas = document.getElementById("canvas1");
var processing = new Processing(canvas, sketchProc);
for(var i=0; i < graphDataSize; i++) {
window.graphData[i] = 0.5;
}
updateGraph(0.5);
function readTemp() {
b.readTextFile(i2c + '1-0077/temp0_input', onRead);
}
function onRead(x) {
updateGraph(parseInt(x.data, 10)/200.0-0.9);
}
function updateGraph(x) {
for(var i=0; i < graphDataSize; i++) {
if(i == graphDataSize - 1) window.graphData[i] = x;
else window.graphData[i] = window.graphData[i+1];
}
processing.redraw();
setTimeout(readTemp, 300);
}
function sketchProc(p) {
p.size(500, 300);
// local variables
var stepX = p.width / (graphDataSize - 1);
p.noLoop();
p.draw = function() {
// erase background
p.background(224);
// draw axis
p.stroke(25);
p.strokeWeight(1);
p.line(0, p.height/2, p.width, p.height/2);
// draw graph
p.stroke(2);
p.strokeWeight(3);
var lastX = 0, nextX = 0, lastY, nextY;
for(var i=0; i < graphDataSize; i++) {
nextY = p.height-window.graphData[i]*p.height;
if(i != 0) {
p.line(lastX, lastY, nextX, nextY);
lastX += stepX;
}
nextX += stepX;
lastY = nextY;
}
};
}
Build and execute instructions
- Disconnect your board from power (including USB)
- Connect BMP085 GND to P9_1
- Connect BMP085 VCC to P9_3
- Connect BMP085 SCL to P9_19
- Connect BMP085 SDA to P9_20
- Reapply power and refresh this page before running the demo code
See also
Topics
Related functions
Last updated by cortezjuanjr on Wed Jul 03 2013 18:23:28 GMT-0000 (UTC).

