没有项目描述
metacloud的Python项目详细描述
metacloud是mbientlab提供的云服务,为传感器数据提供数据存储、可视化和分析。
为了运行本教程中的示例代码,您需要有一个活动订阅。如果需要创建帐户,请按照 关于这个page开始3天免费试用的说明。
安装
使用pip安装metacloudpackage。
pip install metacloud --process-dependency-links
如果要同步来自mbientlab的某个传感器板的数据,请安装附加metawear的包。
pip install metacloud[metawear] --process-dependency-links
用法
安装完所有必需的包后,在您喜爱的文本编辑器中打开一个新的python文件,导入metawear和metacloud 模块,并创建MetaWearClient和Session对象。Session构造函数需要几个描述设备的属性 以及您的应用程序:
- 固件版本
- MAC地址
- 型号名称
- 识别设备的友好名称
- 应用程序名称
- 应用修订版
如果没有应用程序名或修订版,只需使用__file__变量作为应用程序名,使用"1.0.0"变量作为应用程序修订版。
fromctypesimportcast,c_char_pfrommbientlab.metacloudimportSessionfrommbientlab.metawearimportMetaWear,libmetawear,parse_valuefrommbientlab.metawear.cbindingsimport*mac="D4:5E:82:E1:15:01"metawear=MetaWear(mac)metawear.connect()libmetawear.mbl_mw_settings_set_connection_parameters(metawear.board,7.5,7.5,0,6000)raw=libmetawear.mbl_mw_metawearboard_get_model_name(metawear.board)model_name=cast(raw,c_char_p).value.decode("ascii")session=Session(metawear.info["firmware"],mac,model_name,"Device #1","metacloud_py_tutorial","1.0.0")
从设备启动数据流并将接收到的值添加到Session对象。在这里,我们将流加速计数据,因此将向前 它指向add_acc_data方法。
# Stream data at 100Hzlibmetawear.mbl_mw_acc_set_range(metawear.board,16.0)libmetawear.mbl_mw_acc_set_odr(metawear.board,100.0)libmetawear.mbl_mw_acc_write_acceleration_config(metawear.board)defdata_handler(ptr):value=parse_value(ptr)session.add_acc_data(ptr.contents.epoch,value.x,value.y,value.z)data_handler_fn=FnVoid_DataP(data_handler)signal=libmetawear.mbl_mw_acc_get_acceleration_data_signal(metawear.board)libmetawear.mbl_mw_datasignal_subscribe(signal,data_handler_fn)libmetawear.mbl_mw_acc_enable_acceleration_sampling(metawear.board)libmetawear.mbl_mw_acc_start(metawear.board)
当您准备好同步数据时,停止加速计,然后使用sync方法将数据推送到metacloud。
# Stop the streamlibmetawear.mbl_mw_acc_stop(metawear.board)libmetawear.mbl_mw_acc_disable_acceleration_sampling(metawear.board)libmetawear.mbl_mw_datasignal_unsubscribe(signal)# Sync to MetaCloud, replace with actual login credentialssession.sync("username","password")