笔者将在本文中详细介绍如何通过树莓派和Office 365的PowerBI组件打造自己的温湿度IoT实时监控平台。 选择这一主题是因为树莓派应该是最适合DIY的IT单品了,只要插插线,输入几行代码,就可以轻松实现一系列看似繁琐的功能。而且喜欢研究树莓派的爱好者很多,在网上可以轻易找到一系列资源,真正需要自定义的东西并不多。而PowerBI作为Office 365中的重要组件,因其在数据可视化方面的超强功能而在企业中广泛受到重视。 我要实现的功能就是一个简单的IoT场景,即实现某一特定环境的温度湿度监控,同时通过动态实时的方式将数据展现出来。这里引用百度百科,给大家简单科普一下IoT也就是“物联网”的概念。
需要准备的材料树莓派 淘宝上的3代树莓派开发板一个,一般是200多块钱,可以自己选择配件,比如外壳、电源、TF卡、散热风扇等等。 杜邦线/面包线 非必需品,只是为了测试方便,特别是树莓派上插线过多的情况。 温湿度传感器 树莓派上可以应用的温湿度传感器其实有不少,比如DT11,DT22,DS18B20等等,淘宝上的价格从几元到几十元不等。我这里买的是精度较高的BME280,这是一款集成温度、湿度、气压,三位一体的环境传感器。具有高精度,多功能,小尺寸等特点。DFRobot Gravity I2C BME280环境传感器采用Gravity-I2C接口设计,同时预留预留SPI接口,可以方便快捷的搭建产品原型,应用于环境监测,楼层高度检测,物联网控制等各种应用场景。Gravity I2C BME280环境传感器使用BOSCH最新MEMS微机电传感器,具备良好的稳定性。气压测量在整个温区非常稳定的,偏置温度系数±1.5 pa/k,当温度变化时,1摄氏度的温度变化导致的误差仅在12.6厘米。这种稳定性,连同其多功能的特点,使得BME280可以适用于各种应用场景。 O365/PowerBI 如果是O365的企业用户就可以直接使用了,个人用户可以去官网免费试用。 树莓派的安装首先就是给树莓派安装操作系统,推荐直接到官网下载,下载地址。我这里下载的是标准版RASPBIAN。 RASPBERRY还包括完整版和轻量版,我选择下载了完整版,下载完整可以验证SHA-256保证数据完整性。 下面就是拿出TF卡烧录系统了,我是购买的闪迪的16GB TF卡,RASPBIAN裸系统也就2GB左右。 选择镜像文件,对应的读卡器所在盘符,等待写入完成。 然后将TF卡装到树莓派开发板中。 考虑到这个检测装置长期使用,我还加装了风扇。 连接方法可以参照下图,红线接4针脚,黑线接6针脚。 接好后如图。 另外选用了一个黑色的树莓派硬壳,将风扇用螺丝固定在外壳上,连线太长打了个结。 然后再将外壳扣上去,就很完美了。 连接传感器下面是连接BME280的传感器,实物非常小巧。 按照下图的方法依次将几根不同颜色的彩线连接到树莓派的接线板上。 最后的结果是这样的,注意板上有几个口是同样的用途,如果树莓派上连接了多个设备,也可以酌情替换。 树莓派的基本配置可以通过树莓派的HDMI口连接显示器,树莓派有图形化系统,使用很方便。 可以通过Putty以SSH的方式连接22端口,实现远程。 我的习惯,先安装VNC,然后再远程实现控制。具体方法这里就不赘述了,请自行百度。 这里要用到GPIO口的I2C,这里简单介绍一下I2C。
首先就开启I2C口。 命令行界面输入以下命令。
按照下列截图依次进入选项。 回车开启ARM I2C口。 输入命令检查I2C是否已被开启:可见红框中圈出的位置说明已被开启
然后输入以下命令安装工具查看设备是否正常连接。
如此说明传感器已经正确连接。 通过wget的方法下载bme280的Python程序:
为了给大家看清楚代码,我用文本编辑器打开。 可以看到默认的端口地址是0x76,这里要按照之前的结果改为0x77。 尝试运行一下这个Python程序,可以看到能够正确获取到温度、湿度和气压的数据了。 上传数据到PowerBI数据已经拿到了,随后就是考虑如何上传到Power BI中动态显示了。 首先下载这一代码,这里是通过DT22传感器获取数据上传到Power BI,将代码稍加改动即可。 下面演示一下如何获取Power BI中的API。 登录Power BI的网页界面,然后选择Streaming Datasets。 选择右上角新建New streaming dataset -> API 然后,输入以下信息: 需要以下数值:timestamp显示当前日期时间,temperature显示温度,pressure显示大气压,humidity显示湿度,后三个都是数值型数据。 创建完成后会有一个推送的Push URL,格式见下图。 之后我们给它添加定制化的动态显示效果。 这里选择Line chart,也就是最简单的折线图。 横轴就是我们的时间戳timestamp,纵轴是大气压。重复这一操作添加二张折线图分别显示温度和湿度。 我们来看看之前下载的代码,分类说明一下:
关键就是REST_API_URL要改成自己之前创建的DataSet的API地址。随后代码就可以利用Python中的urllib2类向API发送数据。 运行python之后如果发觉HTTP返回的数值是200,这就说明发送成功了,如图: 回到PowerBI的网页上,就可以看到实时显示温湿度气压的效果。我们办公室里的环境还是非常适宜的,温度非常稳定。 动态呈现的效果大概是这样的: 为了防止断电或者操作系统意外,我需要将这个Python程序设置为自动运行,方法可以参见我之前的文章最后的内容。此外还可以增加其他定制内容,比如温度湿度异常的时候通过邮件通知等等。 如果我将这个树莓派带到机房里,就可以实时监测机房里的环境情况;然后我放个大显示屏在机房外面,打开PowerBI的网页实时动态呈现效果,领导肯定要夸我机灵又能干,年终奖必然要翻番啊! |
香港服务器多少钱一个月?哪家的香港服务器
4核4g6M50G盘20G防御云服务器价格多少钱?T
特发集团与华为签署全面合作协议
【身边的AI】高空抛物智能追溯解决方案,站
中海&华为签署战略深化合作协议
华为赵博:数字化转型成为地产企业最确定的
这款TCL K6V指纹锁不到千元即可买到?大品
凯迪仕指纹锁哪款好用?买凯迪仕指纹锁选哪