wdluo 发表于 2015-3-27 17:06:40

用树莓派采集环境相关参数并上传到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;
}程序运行效果截图:




程序源码下载:

wdluo 发表于 2015-3-27 17:08:49

本来可以各个实时查看数据的链接的,可惜我没权限,发不了

树老大 发表于 2015-3-27 17:15:57

很好的帖子,赞一个,提升为正常权限

wdluo 发表于 2015-3-27 17:25:27

给个实时数据链接:
http://machtalk.net/device/dataview/c16ba32697d84b2ebc400f825376ac92
大家都可以打开看到我测的数据

一晴空 发表于 2015-3-28 19:16:22

你在重庆么?我也是重庆的。高中的时候在上清寺,好像和你挺近的哈

wdluo 发表于 2015-3-29 21:47:08

一晴空 发表于 2015-3-28 19:16
你在重庆么?我也是重庆的。高中的时候在上清寺,好像和你挺近的哈

会展中心后面;P
现在高就?

一晴空 发表于 2015-3-29 22:53:24

wdluo 发表于 2015-3-29 21:47
会展中心后面
现在高就?

高中时在渝中区三年,现在在哈尔滨读大学

wdluo 发表于 2015-4-1 16:36:16

一晴空 发表于 2015-3-29 22:53
高中时在渝中区三年,现在在哈尔滨读大学

不错啊!年轻有为:D

wdluo 发表于 2015-4-1 16:39:31

一晴空 发表于 2015-3-29 22:53
高中时在渝中区三年,现在在哈尔滨读大学

不错啊!年轻有为:D

一晴空 发表于 2015-4-8 22:55:16

wdluo 发表于 2015-4-1 16:39
不错啊!年轻有为

还没工作。。。
页: [1] 2
查看完整版本: 用树莓派采集环境相关参数并上传到machtalk(类似于yeelink),使用C语言实现