获取传感器数据绘图

大概是这样子的:

Arduino采集传感器书籍通过串口传入树莓派,树莓派用Python读取,并使用json.dumps方法json化数据,在前端使用百度的echarts,后端为了动态渲染数据,采用php,php的功能就是执行python脚本

代码全部附上:

Arduino部分

#include 

dht11 DHT11;

// 设置 DHT 引脚 为 Pin 8
#define DHT11PIN 8

void setup() {
  Serial.begin(9600);

}

void loop() {
  delay(500);

  int chk = DHT11.read(DHT11PIN);

  // 测试 DHT 是否正确连接


  // 获取测量数据
if(Serial.available()>0)  
  {  
    char c=Serial.read();  
    if(c=='a')  
    {
 // Serial.print("humi: ");
  Serial.println((float)DHT11.humidity, 2);
    }
    else  if(c=='b')  
    {
 // Serial.print("temp: ");
  Serial.println((float)DHT11.temperature, 2);
    }
  }

}

1.php


1.html



    
    ECharts
    
    


    
    

test.py

import serial
import time
import json

ser = serial.Serial('/dev/ttyACM1',9600,timeout=2)

ser.write("b")
time.sleep(1)
data0 = ser.readline()
data1 = data0.replace("\r\n","")
ntime0 = time.strftime("%Y-%m-%d%H:%M:%S", time.localtime()) 

ser.write("b")
time.sleep(1)
data2 = ser.readline()
data3 = data2.replace("\r\n","")
ntime2 = time.strftime("%Y-%m-%d%H:%M:%S", time.localtime()) 

ser.write("b")
time.sleep(1)
data4 = ser.readline()
data5 = data4.replace("\r\n","")
ntime4 = time.strftime("%Y-%m-%d%H:%M:%S", time.localtime()) 

values=[{"time":ntime0,"data":data1},{"time":ntime2,"data":data3},{"time":ntime4,"data":data5}]

jdata = json.dumps(values)

print jdata

注意,1.html中使用了jquery和echart,我把两个统一放在了js文件夹下

访问1.php


在浏览器中访问1.html

获取传感器数据绘图_第1张图片

你可能感兴趣的:(获取传感器数据绘图)