用树莓派采集环境相关参数并上传到machtalk(类似于yeelink),使用C语言实现
本帖最后由 wdluo 于 2015-3-28 13:14 编辑背景:树莓派的优势什么的就不多说了,这个也不一定实用,不过有时候也比较实用,看自己的应用吧,整个功能实现完全采用C语言编程,主要涉及的知识有I2C总线,网络编程,machtalk数据上传。
主要功能介绍:
1,通过调用I2C驱动程序读取BMP180传感器所测值(环境气压,环境温度,海拔高度(根据气压计算));
2,调用底层驱动读取CPU核心温度值;
3,本来打算读取光照度传感器和温湿度传感器测量环境光照度和湿度,但是发现树莓派I2C的驱动没法驱动这两个传感器,主要是树莓派I2C底层驱动设计上的问题,大家有兴趣再做探讨,这里就不多说了;
4,将所测值POST到machtalk网站(类似于yeelink)上去,当然你得提前在machtalk上建立一个设备;
主函数很简单,如下所示:
int main (void)
{
double Temperature;
double Pressure;
double Altitude;
double CPU_Temperature;
int i=0,j;
int PostNum=0;
bmp180_init();
while (1)
{
Temperature = bmp180_get_temperature(bmp180_get_ut())/10.0;
Pressure = bmp180_get_pressure(bmp180_get_up())/1000.0;
Altitude = (44330.0 * (1.0-pow(Pressure*1000 / 101325.0, 1.0/5.255)));//Altitude
i++;
if(i >= 10){
i = 0;
Temperature = 0;
Pressure = 0;
Altitude = 0;
for(j=0;j<10;j++){
Temperature += Temperature;
Pressure += Pressure;
Altitude += Altitude;
}
//post data
printf("Start Post...\n\r");
machtalk_post("c16ba32697d84b2ebc400f825376ac92","1","1",Pressure/10.0,3);
delay(1500);
machtalk_post("c16ba32697d84b2ebc400f825376ac92","2","1",Altitude/10.0,3);
delay(1500);
machtalk_post("c16ba32697d84b2ebc400f825376ac92","3","1",Temperature/10.0,3);
delay(1500);
get_cpu_temperature(&CPU_Temperature);
machtalk_post("c16ba32697d84b2ebc400f825376ac92","6","1",CPU_Temperature,3);
printf("Post End Num : %d\n\r",++PostNum);
}
delay(1000);
}
return 0;
}程序运行效果截图:
程序源码下载:
本来可以各个实时查看数据的链接的,可惜我没权限,发不了 很好的帖子,赞一个,提升为正常权限 给个实时数据链接:
http://machtalk.net/device/dataview/c16ba32697d84b2ebc400f825376ac92
大家都可以打开看到我测的数据 你在重庆么?我也是重庆的。高中的时候在上清寺,好像和你挺近的哈 一晴空 发表于 2015-3-28 19:16
你在重庆么?我也是重庆的。高中的时候在上清寺,好像和你挺近的哈
会展中心后面;P
现在高就? wdluo 发表于 2015-3-29 21:47
会展中心后面
现在高就?
高中时在渝中区三年,现在在哈尔滨读大学 一晴空 发表于 2015-3-29 22:53
高中时在渝中区三年,现在在哈尔滨读大学
不错啊!年轻有为:D 一晴空 发表于 2015-3-29 22:53
高中时在渝中区三年,现在在哈尔滨读大学
不错啊!年轻有为:D wdluo 发表于 2015-4-1 16:39
不错啊!年轻有为
还没工作。。。
页:
[1]
2