欧米茄智能传感器python sdk

omegasensor的Python项目详细描述


欧米茄智能传感器python sdk

这个python sdk允许您通过i2c接口或modbus接口与omega智能传感器设备通信,并轻松地将它们集成到嵌入式平台,如覆盆子pi等。

要求

Python3.5+

安装和使用

pip安装

可以通过运行以下命令安装包:

pip install omegasensor
然后导入包:

from omegasensor import *

设置工具

从存储库克隆。并通过源目录中的setuptools进行安装:

python setup.py install --user

开始

import time
from omegasensor import *  

def main():    
    bus = BusModbus('/dev/ttyUSB0', SMARTSENSOR_MODBUS_ADDR)   # for Modbus interface 
    # bus = BusI2C(1, SMARTSENSOR_I2C_ADDR) # for I2C interface
    ss = Smartsensor(bus)    

    ss.soft_reset()    
    ss.preset_config()    
    print("Firmware 0x%08x" % ss.read(R.FIRMARE_VERSION))    
    print("Device Id 0x%08x" % ss.read(R.DEVICE_ID))    
    print("Device %s" % ss.read(R.DEVICE_NAME))    
    sensor_cnt = ss.read(R.NUMBER_OF_SENSORS)    
    print("Onboard %d sensors" % sensor_cnt)    
    print("Onboard %d outputs" % ss.read(R.NUMBER_OF_OUTPUTS))    

    sensor_units = [ss.sensor_unit(i) for i in range(sensor_cnt)]    

    while True:    
        print("Time: ", ss.current_time_str())    
        for i in range(sensor_cnt):    
            print("%0.2f" % ss.sensor_reading(i),    
                  " %s" % sensor_units[i],    
                  "\t", end='')    
        print('\n')    
        time.sleep(1)    


if __name__ == "__main__":    
    main()  

启用软件I2C接口:

(支持SmartSensor I2C接口的时钟拉伸)

打开config.txt

sudo nano /boot/config.txt

将以下条目添加到文件中

dtoverlay=i2c-gpio,bus=3

按ctrl+o键保存文件。重新启动PI。

/dev/i2c-3

可以找到一个新的i2c接口。

SDA是BCM23(割台销16)

CLK是BCM24(割台销18)

软件I2C在SDA和CLK到VCC上需要大约2.2K的手动上拉电阻器。可以通过以下命令启用GPIO内部上拉:

# enable internal pull-up on pin BCM23
gpio -g mode 23 up
# enable internal pull-up on pin BCM24
gpio -g mode 24 up

示例

示例可以在sdk示例目录中找到

硬件设置

Omega BTH-SMP智能探头可与I2C接口一起使用。关于覆盆子皮,以下是连接:

Raspberry PiBTH-SMP
Pin 3 /BCM 2SDA
Pin 5 /BCM 3CLK
Pin 13.3V
Pin 6GND

或者,可以使用omega智能传感器加密狗将i2c接口转换为modbus接口。在Linux系统上,加密狗将显示为/dev/ttyusb0或/dev/ttyacm0。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
使用安卓中不同Java类中声明的变量   java Paypal重新授权失败DCC\u不允许重新授权\u   java删除Nattable中的行号   Java扫描器在循环时数据类型验证中输入错误后未读取换行符   java如何使用jsoup计算div的数量?   java嵌套这样的try/finally子句安全吗?   Java中的安卓格式浮点数(#.#.#.#.#)   java为什么maven总是指向JRE的较低版本   Java中的对象GUI网格   具有中心值和基于值的背景的java单元格   在java中,如何检查布尔值是否存在介于两个数字之间的数字?   等于Java 1.7对hashCode()的重写,其行为不符合我的预期   java使用来自Netbeans的JDBC资源和servlet