小程序
传感搜
传感圈

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

2016-03-16
关注

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度

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


您觉得本篇内容如何
评分

评论

您需要登录才可以回复|注册

提交评论

提取码
复制提取码
点击跳转至百度网盘