嘉兆新闻> Pi Dashboard DAQ 框架的介绍和使用

Pi Dashboard DAQ 框架的介绍和使用

发 布:2019/5/15 10:19:43查 看:151

此前,树莓派实验室发布过一个开源项目 Pi Dashboard,该项目可以很直观地展示树莓派系统运行的各种实时数据,包括CPU、内存、磁盘占用、网络使用等数据。

这些主要是综合了树莓派本身的信息进行展示,对于外部数据,例如通过外接传感器获取被监测点的环境数据是否能有一个框架,只需要修改少量代码甚至无需修改就能马上用起来呢?

下面要介绍的是“Pi Dashboard DAQ 框架”,这套方案就能实现这个需求。

本项目分为几个部分

1、数据采集程序(后端采集部分,基于 MCC 的 daqhats 库)

2、仪表盘WebUI(前端展现部分,PHP 程序)

文中用到的传感器均使用模拟信号输出,经由 MCC118 扩展板采集得到电信号

为什么使用 MCC118 扩展板呢?我可以选择不使用它吗?

我们选择 MCC118 扩展板是权衡了通用与专业性、易用性和性价比三方面因素的。这款扩展板支持 -10V ~ +10V 电信号采集,支持12位分辨率8通道采集,单片总吞吐量100KS/s,能对接常用的各类传感器。官方还专门为树莓派提供了一套程序库大大提高了二次开发效率和易用性。在满足前两方面的同级别产品中,其价格也具有一定优势。

因项目属于程序框架性质,我们鼓励大家通过修改将它应用在各种实际的项目中,例如你仅仅只需要用到某些数字输出的传感器,那么当然可以自行编写数据采集程序直接,从传感器获取数据、再将结果以符合框架所用的 JSON 格式输出即可。同样,如果你对所用传感器的模拟输出实时性要求并不高,也可以采用更低成本的 ADC 模块来读取传感器信号。?

数据采集程序

这部分主要功能是读取传感器的电压或数值,并用 JSON 格式输出。使用了 web.py 框架,因为用到了 MCC118 读取模拟信号,所以用到了 daqhats 库。

#!/usr/bin/env python

#  -*- coding: utf-8 -*-

from __future__ import print_function


import web

import json


from time import sleep

from sys import stdout

from daqhats_utils import select_hat_device, enum_mask_to_string

from daqhats import mcc118, OptionFlags, HatIDs, HatError


# Constants

CURSOR_BACK_2 = '\x1b[2D'

ERASE_TO_END_OF_LINE = '\x1b[0K'


urls = (

    '/(.*)', 'hello'

)

app = web.application(urls, globals())


options = OptionFlags.DEFAULT

low_chan = 0

high_chan = 7

mcc_118_num_channels = mcc118.info().NUM_AI_CHANNELS


# Get an instance of the selected hat device object.

address = select_hat_device(HatIDs.MCC_118)

hat = mcc118(address)


class hello:

    def GET(self, name):

        pyDict = {0:0,1:0,2:0,3:0,4:0,5:0,6:0,7:0}


        global hat


        try:

            # Read a single value from each selected channel.

            for chan in range(low_chan, high_chan + 1):

                value = hat.a_in_read(chan, options)

                print('{:12.5} V'.format(value), end='')

                pyDict[chan] = value


        except KeyboardInterrupt:

            # Clear the '^C' from the display.

            print(CURSOR_BACK_2, ERASE_TO_END_OF_LINE, '\n')


        web.header('Content-Type', 'application/json')

        web.header("Access-Control-Allow-Origin", "*")

        return json.dumps(pyDict)


if __name__ == "__main__":


    try:

        # Get an instance of the selected hat device object.

        global address<

关于嘉兆
嘉兆简介
荣誉证书
加入团队
荣誉客户
联系我们
我们的品牌
客户服务
在线客服
客户留言
目录索取
设备维修
维修.校准.升级
专业培训
系统服务
设备保养
嘉兆动态
新闻中心
展会活动
基础知识库
其他服务
商城
软件无线电
激光测振仪
友情链接
关注我们
关注嘉兆科技公众号
版权信息
嘉兆科技(CORAD)所发布展示的“产品信息”,“解决方案”版权归嘉兆科技所有,嘉兆科技拥有其代理权。任何收集本站产品信息并未经嘉兆科技许可,嘉兆科技将保留追究侵权者法律责任的权利。
廉洁

粤ICP备06126740号-1 嘉兆网 © Corad Technology Ltd. 始创于1980年