基于nrf51822的蓝牙4.0 dht11测温开发

一、概述

      使用nrf51822蓝牙4.0芯片,驱动dht11测量温湿度,然后将温湿度数值通过notification方式传送到安卓手机app端,并显示。安卓端使用lightblue app进行蓝牙连接测试。效果如图:

           

第一幅图是服务,第二幅图是heart rate服务中包含的characteristics。基于nrf51822 heart rate service 开发程序。

二、dht11测量温湿度

      nrf51822下的dht11驱动编写同51单片机类似,重要在于高低电平时序的控制。

三、nrf51822下蓝牙通信开发

     我使用了nrf51822的例程 heart rate service,通过在heart rate service中添加characteristics实现多数据发送。

     仿照ble_hrs.c文件中的为服务添加heart_rate_measurement characteristic,我又添加了两个characteristics,一个是温度,一个是湿度。


    //增加heart rate service服务。

     sd_ble_gatts_service_add(BLE_GATTS_SRVC_TYPE_PRIMARY, &ble_uuid, &p_hrs->service_handle);  


   //增加characteristics

   sd_ble_gatts_characteristic_add(p_hrs->service_handle,
                                           &char_md,
                                           &attr_char_value,
                                           &p_hrs->bsl_handles);

   

//通过蓝牙4.0发送characteristic

  sd_ble_gatts_hvx(p_hrs->conn_handle, &hvx_params);


//接收主机写入characteristic内的值

   case BLE_GATTS_EVT_WRITE:
            on_write(p_hrs, p_ble_evt);    //on_write函数进行处理
            break;


//on_write函数根据不同的handle号选择不同的处理函数

static void on_write(ble_hrs_t * p_hrs, ble_evt_t * p_ble_evt)
{
    ble_gatts_evt_write_t * p_evt_write = &p_ble_evt->evt.gatts_evt.params.write;
    
    if (p_evt_write->handle == p_hrs->hrm_handles.cccd_handle)
    {
        on_hrm_cccd_write(p_hrs, p_evt_write);
    }

if (p_evt_write->handle == p_hrs->tpm_handles.cccd_handle)
    {
        on_tpm_cccd_write(p_hrs, p_evt_write);
    }


if (p_evt_write->handle == p_hrs->hdm_handles.cccd_handle)
    {
        on_hdm_cccd_write(p_hrs, p_evt_write);
    }
}



在main.c中添加timer,定时测量温湿度并发送数据。




  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值