CSR101x BLE芯片 简简单单实现一个 温湿度BLE 传感器结点

  • CSR101x ble 结点
    • 开发软件和硬件
    • 硬件原理图和硬件连接
    • 软件的修改
      • 在user_config.h 配置文件中
        • 定义#define INCLUDE_TEMPERATURE_SENSING 使能温度传感器功能,
    • DEMO的演示

CSR101x ble 结点

由于工作的性质,手头有许多Csr101X beacon开发板,想利用这些开发板做几个温度湿度的sensor ble 节点设备,进行 Ble 组网的测试。于是,开始动手,并把整个过程记录下来,希望对同行有个帮助。事情 并不复杂,代码量也不大。纯属个人消遣。

开发软件和硬件

IDE环境: csr uEngery SDK 2.6.3.12(xIDE) ,软件包里带了一些应用场景的例子。
演示软件:CSR uEnergy Profile Demonstrator 2.6.2.1
BLE demo板 :CSR1010 shelf Tag
温湿度传感器:SHT21 工业级温度湿度传感器(I2C)

硬件原理图和硬件连接

这里参考的是Csr1010 shelf tag 原理图,Csr1010 作为一个ble 结点方案的实现还是有很大的优势的。电路很简单,profile的参考例子也很多,不用购买license。适合初学者上手。
起初,想把 SHT21的传感器连接到I2c flash 的总线上,但是代码中并没有这样实现,为了方便起见,充分利用了 空闲的GPIO,用于连接 SHT21 传感器。
原理图参考如下,如果需要完整的原理图可与我单独联系。
PIO(0) SCL 用于连接 SHT21 的 SCL pin
PIO(1) SDA 用于连接 SHT21的 SDA pin
VDD_BAT 连接SHT21 的VDD
GND 连接SHT21 的GND

软件的修改

这里选择Environment sensor 工程的例子
在软件定义中 user_config.h 中定义了I2c 数据线的配置
/* I2C communication lines */
#define I2C_SCL_PIO (1)
#define I2C_SDA_PIO (0)

在user_config.h 配置文件中

定义#define INCLUDE_TEMPERATURE_SENSING 使能温度传感器功能,

使能SHT21 传感器的支持
定义 #define INCLUDE_HUMIDITY_SENSING 使能SHT21 对湿度的支持
在humidity_sensor.h 添加SHT21 湿度支持文件
添加温度读写的代码
在sht21_humidity_sensor.c 文件中添加如下代码

extern bool SHT21_ReadBlocking_temp(int16 *p_tempture)
{int32 temperture_value = 0; /* Humidity value requires only 16bits but to * avoid overflow while doing calculations, the * value has been defined as uint32.*/uint8 temperture[2] = {0};bool success = FALSE;uint8 poll_wait = 0;if(I2CAcquire()){/* Initialise I2C */I2CcommsInit();TimeDelayUSec(5 * MILLISECOND);/* Write command for humidity measurement in NO Hold mode */success = sht21_writeCommand(SHT21_I2C_ADDRESS, SHT21_TRIGGER_T_MEASUREMENT_NO_HOLD_MODE);if(success){/* The sensor takes maximum 30ms for humidity measurement. */TimeDelayUSec(5 * MILLISECOND);do{success = sht21_readTwoBytes(SHT21_I2C_ADDRESS, &temperture[0]);poll_wait++;TimeDelayUSec(2 * MILLISECOND);}while((poll_wait < MAX_MEASUREMENT_TIME) && (!success));if(success){/* 4 LSBs should be converted to zeros. */temperture_value= (((uint32 )temperture[0])<<8) | ((uint32 )(temperture[1] & 0xFC));/* Conversion of Signal Output:* Default resolution is set to 12 bit relative humidity and 14* bit temperature reading. Measured data are transferred in* two byte packages, i.e. in frames of 8 bit length where the* most significant bit (MSB) is transferred first (left * aligned).Each byte is followed by an acknowledge bit. The * twostatus bits, the last bits of LSB, must be set to 0 * before calculating physical values. ** Relative Humidity Conversion* With the relative humidity signal output SRH the relative* humidity RH is obtained by the following formula (result in* %RH), no matter which resolution is chosen:* * RH = -6 + (125*(SRH/2^16))** T = -46.85 +(175.72 *(SRT/2^12))*//* Since the application needs to send humidity percentage with * a resolution of 0.01 percent, multiply by 100.*/temperture_value= (( temperture_value *17500)/65536) - (4685);*p_tempture= (int16)temperture_value;}}/* Release the I2C bus */I2CRelease();}return(success);
}

软件和硬件修改完后,编译并且通过下载器下载到csr1010 tag 的开发板中
demo 板如下

DEMO的演示

我们使用CSR 软件包中提供 CSR uEnergy Profile Demonstrate 2.6.2.1软件
扫描,配对后,便可以获得BLE 节点 发送过来的温度和湿度的结果。
强调文本 强调文本

参考文档:
【1】 cs-331349-DD-1 cns12015 beacon board schematic.pdf

CSR101x BLE芯片 简简单单实现一个 温湿度BLE 传感器结点相关推荐

  1. ble 连接成功后找不到服务_闷声发大财的BLE芯片龙头

    来源:内容由半导体行业观察(ID:icbank)原创,作者:邱丽婷,谢谢. 你有多久没使用过蓝牙功能了?随着Wi-Fi和快传软件的普及,蓝牙(Bluethooth)这一每部手机都配备的数据传输工具,正 ...

  2. nrf52832芯片资料_蓝牙大举进军智能楼宇、智慧工业等新兴领域,主流BLE芯片哪家强...

    近年来,蓝牙凭借自身低功率.易部署.低成本及高度灵活的优势从传统设备市场延伸到非传统设备市场,大举进军智能穿戴.智能楼宇.智慧工业等新兴领域.随着蓝牙应用市场的蓬勃发展,技术和应用得到源源不断的创新, ...

  3. 基于富芮坤的FR801 BLE芯片开发

    基于富芮坤的FR801 BLE芯片开发 前言:本篇主要讲解如何利用官方的SDK和ble 协议栈知识开发所需的功能 注意:因为官方是每个工程都导入同一个底层-所以一旦修改了components ,全部工 ...

  4. ble芯片 全称_一文看懂BLE芯片竞争格局

    来源:内容来自基业常青经济研究院,作者李亚乔.陈凯,谢谢. 网络应用快速发展,数据传输场景日益丰富.据We Are Social和Hootsuite报告统计,截至2018年底,全球互联网用户规模超过4 ...

  5. ble芯片 全称_NXP BLE 芯片简介

    NXP 的BLE芯片目前包括QN902x 和 Kinetis KW3x两大系列,NXP BLE Solution 主页为:Bluetooth Smart|Bluetooth Low Energy|BL ...

  6. 蓝牙BLE芯片PHY6222之OTA

    蓝牙BLE芯片PHY6222之OTA 什么是OTA 将OTA驱动移植到应用代码 一.SLB移植 用PhyPlusKit烧录支持SLB的文件 支持SLB的OTA bin文件的制作 使用APP进行SLB升 ...

  7. BLE芯片PHY6222---ADC采集精度

    BLE芯片PHY6222的ADC采集精度 目录 BLE芯片PHY6222的ADC采集精度 目的 前提 内容 结论 异常情况(采集值过大或者过小,采集时间过长) 目的 PHY6222在0~4.2V电压下 ...

  8. 蓝牙BLE芯片|伦茨科技智能电容笔芯片-ST17H65

    随着平板电脑的流行,有不少厂商都投入到了电容笔的开发当中,现在的电容笔不仅在精度上有了提高,甚至在笔触和压感上的研究都有进步. 电容笔是利用导体材料制作的具有导电特性.用来触控电容式屏幕完成人机对话操 ...

  9. 多模Zigbee, Thread,BLE芯片的未来趋势

    前言 It doesn't matter if you don't know Matter... 从2019年底至今,物联网行业圈被提问和讨论次数最多的话题要属Matter协议了,当时的名字还叫Pro ...

最新文章

  1. 2013年3月百度之星B题
  2. python自学网站有哪些-Python自学之路-前期准备
  3. 北斗导航 | 卫星导航系统时间转换:闰年(附C源代码)
  4. 嵌入式实时操作系统的基本概念——μ/COS-II读书笔记
  5. Spring Boot学习笔记-基础(2)
  6. 简单 3 步实现高效编程
  7. 阿里云开源EasyTransfer:业界首个面向NLP场景深度迁移学习框架
  8. java web使用jquery,JAVA_Web_JQuery
  9. 推荐《富爸爸、穷爸爸》
  10. LINUX编译autoconf
  11. BZOJ1911[APIO2010] 特别行动队
  12. Java全套视频教程
  13. 最新手机号码归属地数据库(2017年4月1日)
  14. 程序代码中,怎么区分status和state?
  15. Detours学习之七:Detours示例程序构建
  16. 千万不要用memset函数对二维数组进行初始化
  17. 区块链单笔交易字段解释
  18. Android Studio模拟器如何运行apk文件
  19. 计算机考研380分能上什么学校,考研总分500考380难吗 能上什么学校
  20. [eval函数利用]

热门文章

  1. 百度飞桨领航团python零基础训练营笔记
  2. Android9自带的游戏怎么玩,[Android]手机也能玩电脑游戏,PC游戏模拟器ED302-9最新版及详细使用帮助 | 樱花庄...
  3. Python beautifulsoup爬取小说
  4. 路由与交换技术-18-热备份路由选择协议HSRP
  5. 2022KDD预讲 | 11位一作学者带你提前解锁优秀论文
  6. mysql查询今年过去的天数
  7. CSDN验证不了手机
  8. WIFI模块接入ONENET步骤
  9. 形式语言与自动机——第四章 图灵机
  10. Python学习之绕圈圈题