佰马BMG700边缘计算网关二次开发指导书

  • 时间 :2020-11-30
  • 作者 :佰马科技
  • 浏览数 :2927

BMG700边缘计算网关二次开发指导书.png


目录


1. 获取温湿度(硬件设备为sht10)

2. 获取大气压(硬件设备为bmp180)

3. 读取ADC值(硬件设备为ms1112)

4. 状态灯控制(硬件设备为pcal6416)

5. GPIO控制

5.1输出设置

5.2输入设置

5.3读取输入gpio电平

6. COM口

7. 相关结构体定义



1.获取温湿度(硬件设备为sht10)

    原型:int get_humidity_tempareture(sht10_st *value)

    参数:sht10_st结构体指针,读取的结果填充该结构体。结构体定义见后面

    返回值:0-成功,-1 - 参数错误,-2 - 设备节点不存在,-3 - 读取失败



2.获取大气压(硬件设备为bmp180)

    原型:int get_pressure_temparature(atmos_st *value)

    参数:atmos_st结构体指针,读取的结果填充该结构体。结构体定义见后面

    返回值:0-成功,-1 - 参数错误,-2 - 设备节点不存在,-3 - 读取失败



3.读取ADC值(硬件设备为ms1112)

    原型:int adc_channel_get(int channel_no,int *value)

    参数:channel_no - 通道 (取值范围1-8),int型指针-adc采样结果。

    返回值:0-成功,-1 - 参数错误,-2 - 设备节点不存在,-3 - 读取失败


注意:该函数是读取原始的adc数据,还需要将adc值转为对应的输入采样电压。

          输入电压 = ( (*value) * 2.048)/32768/0.4,单位= V



4.状态灯控制(硬件设备为pcal6416)

    原型:int led_control_set(led_num_e led_no,led_state_e enable)

    参数: led_no - led编号,enable - led设置状态

    返回值:0-成功,-1 - 参数错误,-2 - 设备节点不存在,-3 - 设置失败



5.GPIO控制

    5.1输出设置

        原型:int gpio_direction_output(int gpio_no,int state)

        参数:gpio_no - gpio编号,state - 0 输出低电平,1 - 输出高电平

        返回值:0-成功,负数-失败


    5.2输入设置

        原型:int gpio_direction_input(int gpio_no)

        参数:gpio_no-gpio编号

        返回值:0-成功,负数-失败


    5.3读取输入gpio电平

        原型:int  gpio_get_value(int gpio_no,int *gpio_state)

        参数:gpio_no - gpio编号,int型指针-存放读取结果,*gpio_state=0 输入低电平

                    *gpio_state =1 输入高电平

        返回值:0-成功,负数-失败


注意:该部分GPIO为应用层设置底层gpio状态,需要先在内核将对应的管脚注册为普通gpio功能,应用层才可以进行操作。



6.COM口

   Com口可以直接用文件操作函数处理(open/read/write/close等),各com口对应的设备节点如下:

   Com2-"/dev/ttymxc1"

   Com3-"/dev/ttymxc2"

   Com4-"/dev/ttymxc3"

   Com5-"/dev/ttymxc6"

   Com6-"/dev/ttymxc4"

   Com7-"/dev/ttymxc5"


7.相关结构体定义

typedef enum {

LED_SINGAL_C,

LED_SINGAL_B,

LED_SINGAL_A,

LED_WIRELESS,

LED_GPS,

LED_ONLINE,

}led_num_e;


typedef enum{

LED_OFF,

LED_ON,

}led_state_e;


typedef struct{

int temperature;

int pressure;  //单位:Pa

}atmos_st;


typedef struct{

int humidity;  // 单位:mRH到RH得除以1000

int temperature;//单位:m℃到℃得除以1000

}sht10_st;


联系我们
联系我们

佰马Baimatech,集M2M产品研发、IoT平台服务、国际化运营于一体,让我们联接,共创未来