你好!欢迎来到深圳市品慧电子有限公司!
语言
当前位置:首页 >> 技术中心 >> 传感技术 >> [温湿度传感器] 太阳能供电的室内外温湿度系统 使用iBeacon协议

[温湿度传感器] 太阳能供电的室内外温湿度系统 使用iBeacon协议


S6SAE101A00SA1002 Solar-Powered IoT Device Kit

太阳能供电的室内外温湿度系统使用iBeacon协议


官方有一个叫EH_Motherboard的例程包含了板载温湿度传感器数据的发送程序

路径在C:\Program Files (x86)\Cypress\Solar-Powered IoT Device Kit\1.0\Firmware\EH_Motherboard

可以使用PMIC Software软件接收发来的数据并显示出来


PMIC Software需要配合一个插在电脑上的USB DONGLE来使用这样使用起来不算方便

下边准备对硬件和固件做些改动

编写一个android APP使用手机显示温湿度数据

EH_Motherboard在发送温湿度数据时使用了iBeacon协议

iBeacon?是利用BLE的Broadcaster角色将广播数据按指定格式打包出来的


iBeacon的数据一共是31个字节

包括9个字节的iBeacon prefix

16个字节的UUID

2个字节的Major

2个字节的Minor

和1个字节的TxPower

?

EH_Motherboard用Major来表示设备

用Minor的第一个字节表示湿度

第二个字节表示温度

温湿度都使用8位分辨率

?

现在要在EH_Motherboard板子上增加一个SI7020温湿度传感器用来检测室外环境

用板载的SI7020检测室内环境

室外传感器使用I2C通过

通过长引线连接

放在室外

湿度使用12位分辨率

温度使用14位分辨率

用Minor保存温度或湿度数据

Major = 0表示室内湿度,1表示室外湿度,2表示室内温度,3表示室外温度

?

在评估板的J2接口上引出4条线?GND SDA SCL VDD

连接到SI7020模块

复制TopDesign.cysch里的I2CM

会自动生成新名称I2CM_1?


修改EH_Motherboard.cydwr里I2CM_1 SCL SDA对应的引脚为P0.4 P0.5


复制si7020.c和si7020.h的2个函数

uint32?Si7020_Init(void)

uint32?Si7020_WriteRead(uint8?* data,?uint32?sCnt,?uint32?rCnt)

修改名称作为室外si7020传感器的操作函数

uint32?Si7020_Init1(void)

uint32?Si7020_WriteRead1(uint8?* data,?uint32?sCnt,?uint32?rCnt)

将函数里有I2CM的地方都改成I2CM_1

uint32?Si7020_Init1(void)

{

????uint32?status;

?

??? I2CM_1_Start();

????

……详细代码请点击阅读原文……?


????class?ViewHolder?{

??????? TextView deviceName;

??????? TextView deviceAddress;

??????? TextView deviceUUID;

??????? TextView deviceMajor_Minor;

??????? TextView devicetxPower_RSSI;

????}

}

运行后的效果

?

不过这是在USB供电的情况

如果只使用太阳能发现根本收不到数据

加上套件带的220uF的大电容就正常了

传感器避免阳光直射

使用复印纸处理

用订书钉订上

将评估板放在室内

太阳能电池板放在有阳光的地方

室内温湿度传感器避免阳光直射

室外传感器放到窗外(今天风大,直担心传感器被风吹跑了)

中午测了一下温湿度

今天还是挺热的

在东北室外温度都达到17.3了

MJ天气报的室外气温度12度

我的温度高应该和南面阳光直射有很大关系


用户评论

发评论送积分,参与就有奖励!

发表评论

评论内容:发表评论不能请不要超过250字;发表评论请自觉遵守互联网相关政策法规。

深圳市品慧电子有限公司