Noduino BMP085
来自Jack's Lab
(版本间的差异)
(以“== 开发环境准备 == 根据您的系统,选择如下快速指南: * Getting Started with Noduino SDK on Linux * [[Getting Started with Noduino SDK on ...”为内容创建页面) |
(→硬件准备) |
||
| (未显示1个用户的3个中间版本) | |||
| 第12行: | 第12行: | ||
== 硬件准备 == | == 硬件准备 == | ||
| + | 此传感器为 I2C 接口,Falcon 接线方式如下: | ||
| − | + | * Sensor_SCL --> Noduino_Falcon_D9 | |
| + | * Sensor_SDA --> Noduino_Falcon_D8 | ||
| + | |||
| + | * Sensor_3V3 --> Noduino_Falcon_3V3 | ||
| + | * Sensor_GND --> Noduino_Falcon_GND | ||
| + | |||
| + | |||
| + | NodeC / SmartNode 接线方式如下: | ||
| + | |||
| + | * Sensor_SCL --> SmartNode_IO5 | ||
| + | * Sensor_SDA --> SmartNode_IO4 | ||
| + | |||
| + | |||
| + | * Sensor_3V3 --> SmartNode_3V3 | ||
| + | * Sensor_GND --> SmartNode_GND | ||
| + | |||
| + | <br><br> | ||
== 编译烧写 == | == 编译烧写 == | ||
| 第92行: | 第109行: | ||
<source lang=cpp> | <source lang=cpp> | ||
| + | #include "noduino.h" | ||
| + | #include "bmp085.h" | ||
| + | |||
| + | irom void setup() | ||
| + | { | ||
| + | serial_begin(115200); | ||
| + | |||
| + | if (!bmp085_begin()) { | ||
| + | serial_print("Could not find a valid BMP085 sensor,\ | ||
| + | check wiring!\r\n"); | ||
| + | |||
| + | while (1) {} | ||
| + | } | ||
| + | } | ||
| + | |||
| + | void loop() | ||
| + | { | ||
| + | char obuf[16]; | ||
| + | |||
| + | serial_printf("Pressure = \t\t\t%d Pa\r\n", bmp085_readPressure()); | ||
| + | |||
| + | dtostrf(bmp085_readTemperature(), 16, 2, obuf); | ||
| + | serial_printf("Temperature = \t\t%s C\r\n", obuf); | ||
| + | |||
| + | // Calculate altitude assuming 'standard' barometric | ||
| + | // pressure of 1013.25 millibar = 101325 Pascal | ||
| + | serial_printf("Pressure at sealevel (calculated) = %d Pa\r\n", | ||
| + | bmp085_readSealevelPressure(30)); | ||
| + | |||
| + | // you can get a more precise measurement of altitude | ||
| + | // if you know the current sea level pressure which will | ||
| + | // vary with weather and such. If it is 1015 millibars | ||
| + | // that is equal to 101500 Pascals. | ||
| + | dtostrf(bmp085_readAltitude(102300), 16, 2, obuf); | ||
| + | serial_printf("Real altitude = \t%s M\r\n\r\n", obuf); | ||
| + | delay(3000); | ||
| + | } | ||
</source> | </source> | ||
2016年11月14日 (一) 10:29的最后版本
目录 |
[编辑] 1 开发环境准备
根据您的系统,选择如下快速指南:
- Getting Started with Noduino SDK on Linux
- Getting Started with Noduino SDK on Mac OS X
- Getting Started with Noduino SDK on Windows
[编辑] 2 硬件准备
此传感器为 I2C 接口,Falcon 接线方式如下:
- Sensor_SCL --> Noduino_Falcon_D9
- Sensor_SDA --> Noduino_Falcon_D8
- Sensor_3V3 --> Noduino_Falcon_3V3
- Sensor_GND --> Noduino_Falcon_GND
NodeC / SmartNode 接线方式如下:
- Sensor_SCL --> SmartNode_IO5
- Sensor_SDA --> SmartNode_IO4
- Sensor_3V3 --> SmartNode_3V3
- Sensor_GND --> SmartNode_GND
[编辑] 3 编译烧写
进入你的 bmp085 目录:
$ cd /PATH/TO/noduino-sdk/examples/noduino/bmp085
编译、上传一步完成:
$ make flash
不同平台下,你的串口设备号可能不一样,确认一下你的串口设备,Linux 下 Falcon 开发板可能被识别为 /dev/ttyUSB1(dmesg 查看),则:
$ make flash ESPPORT=/dev/ttyUSB1
Windows 下 Falcon 开发板可能被识别为 COM6(控制面板 --> 设备管理器里查看),则:
$ make flash ESPPORT=COM6
[编辑] 4 查看结果
上传完之后,用串口工具,用 115200 的波特率打开串口,即可看到串口在持续输出传感器测得的值:
Windows 下可用串口调试助手这类插看
Linux 下推荐使用 picocom:
$ sudo apt-get install picocom $ picocom -b 115200 /dev/ttyUSB1 picocom v1.7 port is : /dev/ttyUSB2 flowcontrol : none baudrate is : 115200 parity is : none databits are : 8 escape is : C-a local echo is : no noinit is : no noreset is : no nolock is : no send_cmd is : sz -vv receive_cmd is : rz -vv imap is : omap is : emap is : crcrlf,delbs, Terminal ready ...... ......
Ctrl + a q 退出 picocom
[编辑] 5 代码示例
#include "noduino.h"
#include "bmp085.h"
irom void setup()
{
serial_begin(115200);
if (!bmp085_begin()) {
serial_print("Could not find a valid BMP085 sensor,\
check wiring!\r\n");
while (1) {}
}
}
void loop()
{
char obuf[16];
serial_printf("Pressure = \t\t\t%d Pa\r\n", bmp085_readPressure());
dtostrf(bmp085_readTemperature(), 16, 2, obuf);
serial_printf("Temperature = \t\t%s C\r\n", obuf);
// Calculate altitude assuming 'standard' barometric
// pressure of 1013.25 millibar = 101325 Pascal
serial_printf("Pressure at sealevel (calculated) = %d Pa\r\n",
bmp085_readSealevelPressure(30));
// you can get a more precise measurement of altitude
// if you know the current sea level pressure which will
// vary with weather and such. If it is 1015 millibars
// that is equal to 101500 Pascals.
dtostrf(bmp085_readAltitude(102300), 16, 2, obuf);
serial_printf("Real altitude = \t%s M\r\n\r\n", obuf);
delay(3000);
}
[编辑] 6 扩展阅读
- 更多问题参考: