Difference between revisions of "MCU/SensorBox"
From ESS-WIKI
Line 19: | Line 19: | ||
| align="center" | '''Description''' | | align="center" | '''Description''' | ||
|- | |- | ||
− | | style="border:0.5pt solid #00000a;padding-top:0cm;padding-bottom:0cm;padding-left:0.199cm;padding-right:0.191cm;" | sensor_api | + | | style="border:0.5pt solid #00000a;padding-top:0cm;padding-bottom:0cm;padding-left:0.199cm;padding-right:0.191cm;" | sensor_api |
| style="border:0.5pt solid #00000a;padding-top:0cm;padding-bottom:0cm;padding-left:0.199cm;padding-right:0.191cm;" | The source code of API of Sensor Box. | | style="border:0.5pt solid #00000a;padding-top:0cm;padding-bottom:0cm;padding-left:0.199cm;padding-right:0.191cm;" | The source code of API of Sensor Box. | ||
|- | |- | ||
− | | style="border:0.5pt solid #00000a;padding-top:0cm;padding-bottom:0cm;padding-left:0.199cm;padding-right:0.191cm;" | sensor_driver | + | | style="border:0.5pt solid #00000a;padding-top:0cm;padding-bottom:0cm;padding-left:0.199cm;padding-right:0.191cm;" | sensor_driver |
| style="border:0.5pt solid #00000a;padding-top:0cm;padding-bottom:0cm;padding-left:0.199cm;padding-right:0.191cm;" | The source code of sensor driver. | | style="border:0.5pt solid #00000a;padding-top:0cm;padding-bottom:0cm;padding-left:0.199cm;padding-right:0.191cm;" | The source code of sensor driver. | ||
|- | |- | ||
Line 31: | Line 31: | ||
= Sensor list = | = Sensor list = | ||
<div style="margin-left:0.75cm;margin-right:0cm;"> | <div style="margin-left:0.75cm;margin-right:0cm;"> | ||
− | + | Currently, these sensors are ported into sensor box as default. | |
+ | |||
+ | * HDC1080 - Digital Temperature/Humidity Sensor | ||
+ | :{| style="border-spacing:0;width:10cm;" | ||
+ | |- style="background-color:#c6d9f1;border:0.5pt solid #00000a;padding-top:0cm;padding-bottom:0cm;padding-left:0.199cm;padding-right:0.191cm;" | ||
+ | | width="100px" ; align="center" | '''Item''' | ||
+ | | align="center" | '''Description''' | ||
+ | |- | ||
+ | | style="border:0.5pt solid #00000a;padding-top:0cm;padding-bottom:0cm;padding-left:0.199cm;padding-right:0.191cm;" | Vendor | ||
+ | | style="border:0.5pt solid #00000a;padding-top:0cm;padding-bottom:0cm;padding-left:0.199cm;padding-right:0.191cm;" | Texas Instruments | ||
+ | |- | ||
+ | | style="border:0.5pt solid #00000a;padding-top:0cm;padding-bottom:0cm;padding-left:0.199cm;padding-right:0.191cm;" | Interface | ||
+ | | style="border:0.5pt solid #00000a;padding-top:0cm;padding-bottom:0cm;padding-left:0.199cm;padding-right:0.191cm;" | I2C | ||
+ | |- | ||
+ | | style="border:0.5pt solid #00000a;padding-top:0cm;padding-bottom:0cm;padding-left:0.199cm;padding-right:0.191cm;" | Pin-defined | ||
+ | | style="border:0.5pt solid #00000a;padding-top:0cm;padding-bottom:0cm;padding-left:0.199cm;padding-right:0.191cm;" | Check | ||
+ | |}<br/> | ||
+ | |||
+ | * DS18B20 - 1-Wire Digital Thermometer | ||
+ | :{| style="border-spacing:0;width:10cm;" | ||
+ | |- style="background-color:#c6d9f1;border:0.5pt solid #00000a;padding-top:0cm;padding-bottom:0cm;padding-left:0.199cm;padding-right:0.191cm;" | ||
+ | | width="100px" ; align="center" | '''Item''' | ||
+ | | align="center" | '''Description''' | ||
+ | |- | ||
+ | | style="border:0.5pt solid #00000a;padding-top:0cm;padding-bottom:0cm;padding-left:0.199cm;padding-right:0.191cm;" | Vendor | ||
+ | | style="border:0.5pt solid #00000a;padding-top:0cm;padding-bottom:0cm;padding-left:0.199cm;padding-right:0.191cm;" | Maxim | ||
+ | |- | ||
+ | | style="border:0.5pt solid #00000a;padding-top:0cm;padding-bottom:0cm;padding-left:0.199cm;padding-right:0.191cm;" | Interface | ||
+ | | style="border:0.5pt solid #00000a;padding-top:0cm;padding-bottom:0cm;padding-left:0.199cm;padding-right:0.191cm;" | GPIO | ||
+ | |- | ||
+ | | style="border:0.5pt solid #00000a;padding-top:0cm;padding-bottom:0cm;padding-left:0.199cm;padding-right:0.191cm;" | Pin-defined | ||
+ | | style="border:0.5pt solid #00000a;padding-top:0cm;padding-bottom:0cm;padding-left:0.199cm;padding-right:0.191cm;" | Check | ||
+ | |}<br/> | ||
+ | |||
+ | |||
+ | * VL53L0X - Time-of-Flight ranging sensor | ||
+ | :{| style="border-spacing:0;width:10cm;" | ||
+ | |- style="background-color:#c6d9f1;border:0.5pt solid #00000a;padding-top:0cm;padding-bottom:0cm;padding-left:0.199cm;padding-right:0.191cm;" | ||
+ | | width="100px" ; align="center" | '''Item''' | ||
+ | | align="center" | '''Description''' | ||
+ | |- | ||
+ | | style="border:0.5pt solid #00000a;padding-top:0cm;padding-bottom:0cm;padding-left:0.199cm;padding-right:0.191cm;" | Vendor | ||
+ | | style="border:0.5pt solid #00000a;padding-top:0cm;padding-bottom:0cm;padding-left:0.199cm;padding-right:0.191cm;" | STMicroelectronics | ||
+ | |- | ||
+ | | style="border:0.5pt solid #00000a;padding-top:0cm;padding-bottom:0cm;padding-left:0.199cm;padding-right:0.191cm;" | Interface | ||
+ | | style="border:0.5pt solid #00000a;padding-top:0cm;padding-bottom:0cm;padding-left:0.199cm;padding-right:0.191cm;" | I2C | ||
+ | |- | ||
+ | | style="border:0.5pt solid #00000a;padding-top:0cm;padding-bottom:0cm;padding-left:0.199cm;padding-right:0.191cm;" | Pin-defined | ||
+ | | style="border:0.5pt solid #00000a;padding-top:0cm;padding-bottom:0cm;padding-left:0.199cm;padding-right:0.191cm;" | Check | ||
+ | |}<br/> | ||
+ | |||
+ | * HPMA215S0-XXX - Particle Sensor | ||
+ | :{| style="border-spacing:0;width:10cm;" | ||
+ | |- style="background-color:#c6d9f1;border:0.5pt solid #00000a;padding-top:0cm;padding-bottom:0cm;padding-left:0.199cm;padding-right:0.191cm;" | ||
+ | | width="100px" ; align="center" | '''Item''' | ||
+ | | align="center" | '''Description''' | ||
+ | |- | ||
+ | | style="border:0.5pt solid #00000a;padding-top:0cm;padding-bottom:0cm;padding-left:0.199cm;padding-right:0.191cm;" | Vendor | ||
+ | | style="border:0.5pt solid #00000a;padding-top:0cm;padding-bottom:0cm;padding-left:0.199cm;padding-right:0.191cm;" | Honeywell | ||
+ | |- | ||
+ | | style="border:0.5pt solid #00000a;padding-top:0cm;padding-bottom:0cm;padding-left:0.199cm;padding-right:0.191cm;" | Interface | ||
+ | | style="border:0.5pt solid #00000a;padding-top:0cm;padding-bottom:0cm;padding-left:0.199cm;padding-right:0.191cm;" | I2C | ||
+ | |- | ||
+ | | style="border:0.5pt solid #00000a;padding-top:0cm;padding-bottom:0cm;padding-left:0.199cm;padding-right:0.191cm;" | Pin-defined | ||
+ | | style="border:0.5pt solid #00000a;padding-top:0cm;padding-bottom:0cm;padding-left:0.199cm;padding-right:0.191cm;" | Check | ||
+ | |}<br/> | ||
+ | |||
</div> | </div> | ||
+ | <br/> | ||
= API = | = API = | ||
<div style="margin-left:0.75cm;margin-right:0cm;"> | <div style="margin-left:0.75cm;margin-right:0cm;"> | ||
Content. | Content. | ||
+ | |||
+ | <pre style="width:80%; border:1px solid lightgrey; color:blue; "> | ||
+ | int SBox_iInit(void); | ||
+ | </pre> | ||
+ | *Brief | ||
+ | :Initialize sensor box | ||
+ | *Parameters | ||
+ | :None | ||
+ | *Return | ||
+ | :On success, eSErr_None is returned. | ||
+ | :On error, other is returned. | ||
+ | <br/> | ||
+ | |||
+ | <pre style="width:80%; border:1px solid lightgrey; color:blue; "> | ||
+ | int SBox_iUnInit(void); | ||
+ | </pre> | ||
+ | *Brief | ||
+ | :Uninitialize sensor box | ||
+ | *Parameters | ||
+ | :None | ||
+ | *Return | ||
+ | :On success, eSErr_None is returned. | ||
+ | :On error, other is returned. | ||
+ | <br/> | ||
+ | |||
+ | <pre style="width:80%; border:1px solid lightgrey; color:blue; "> | ||
+ | int SBox_iGetAllData(TSBDataFmt *_ptDataSet); | ||
+ | </pre> | ||
+ | *Brief | ||
+ | :Update all sensors and get all data of sensors | ||
+ | *Parameters | ||
+ | :_ptDataSet: the pointer to data buffer that is used to get sensor data back. | ||
+ | *Return | ||
+ | :On success, eSErr_None is returned. | ||
+ | :On error, other is returned. | ||
+ | <br/> | ||
+ | |||
+ | |||
+ | <syntaxhighlight lang="C" style="border:1px solid lightgrey; "> | ||
+ | int SBox_iGetData(int _iModelName, TSBDataFmt *_ptData); | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | |||
+ | <pre style="width:80%; border:1px solid lightgrey; color:blue; "> | ||
+ | int SBox_iGetData(int _iModelName, TSBDataFmt *_ptData); | ||
+ | </pre> | ||
+ | *Brief | ||
+ | :Update only one sensor and get data | ||
+ | *Parameters | ||
+ | :_iModelName: the index of model name to specify which sensor will be updated. | ||
+ | : _ptData: the pointer to data that is used to get sensor data back. | ||
+ | *Return | ||
+ | :On success, eSErr_None is returned. | ||
+ | :On error, other is returned. | ||
+ | <br/> | ||
+ | |||
+ | |||
</div> | </div> | ||
Revision as of 10:53, 20 August 2019
Contents
Introduction
Sensor Box has general interface to collect sensor data and it benefits the user easy to use.
Architecture
Content.
Source tree
Content.
Directory | Description |
sensor_api | The source code of API of Sensor Box. |
sensor_driver | The source code of sensor driver. |
sensor_lib_cfg.sh | The script used to configure which sensor we enable/disable. |
Sensor list
Currently, these sensors are ported into sensor box as default.
- HDC1080 - Digital Temperature/Humidity Sensor
Item Description Vendor Texas Instruments Interface I2C Pin-defined Check
- DS18B20 - 1-Wire Digital Thermometer
Item Description Vendor Maxim Interface GPIO Pin-defined Check
- VL53L0X - Time-of-Flight ranging sensor
Item Description Vendor STMicroelectronics Interface I2C Pin-defined Check
- HPMA215S0-XXX - Particle Sensor
Item Description Vendor Honeywell Interface I2C Pin-defined Check
API
Content.
int SBox_iInit(void);
- Brief
- Initialize sensor box
- Parameters
- None
- Return
- On success, eSErr_None is returned.
- On error, other is returned.
int SBox_iUnInit(void);
- Brief
- Uninitialize sensor box
- Parameters
- None
- Return
- On success, eSErr_None is returned.
- On error, other is returned.
int SBox_iGetAllData(TSBDataFmt *_ptDataSet);
- Brief
- Update all sensors and get all data of sensors
- Parameters
- _ptDataSet: the pointer to data buffer that is used to get sensor data back.
- Return
- On success, eSErr_None is returned.
- On error, other is returned.
int SBox_iGetData(int _iModelName, TSBDataFmt *_ptData);
int SBox_iGetData(int _iModelName, TSBDataFmt *_ptData);
- Brief
- Update only one sensor and get data
- Parameters
- _iModelName: the index of model name to specify which sensor will be updated.
- _ptData: the pointer to data that is used to get sensor data back.
- Return
- On success, eSErr_None is returned.
- On error, other is returned.
Get sensor box
Content.
Example
Content.
How to porting new sensor into sensor box
Content.