传感器定制
投稿量: 粉丝量: 关注量:

分享:给普通信箱增加远程通知功能

当您日复一日打开信箱,却发现里面空空如也,这会不会让您有种被「耍」的感觉?在本文所述的项目中,我们将创建一个简单的LPWAN(低功耗广域网)应用,将您的信箱连接到云,并且借助Arduino MKR FOX 1200开发板和Sigfox网络,实现每收到一封信件时发送通知。下面的视频展现了这个项目的构建过程和实际演示:

项目所涉技术概览

在这个项目中,我们将会用到以下产品和技术:

• Arduino MKR FOX 1200
• Sigfox

下面我们来具体了解一下它们。

Arduino MKRFOX 1200

Arduino MKR FOX 1200开发板提供了一种实用且经济高效的解决方案,让用户能够在项目中轻松添加Sigfox连接。它基于Microchip SAMD21 32位Arm® Cortex®-M0+微控制器和Atmel ATA8520单片Sigfox射频收发器。MKR FOX 1200提供了丰富的I/O接口,支持低功耗Sigfox通信功能,并采用简单易用的Arduino软件集成开发环境(IDE)进行代码开发和编程,这些都使MKR FOX 1200开发板成为了紧凑型电池供电物联网(IoT)项目的理想选择。MKR FOX 1200开发板只需两节AA(五号)或AAA(七号)电池即可满足供电需求,通常情况下可以连续运行长达六个月时间而无需更换电池。

何为Sigfox?

Sigfox是一种低功耗广域网(LPWAN)网络,可为物联网(IoT)提供连接。Sigfox网络非常适合用于只需低频度发送少量数据的应用。用户每天可发送140条消息,每条消息可携带12字节的有效载荷。作为一种LPWAN网络,Sigfox功耗非常低,因此非常适合电池供电的应用。Arduino MKR FOX 1200自带了1年的Sigfox网络免费订阅。

项目物料清单(BOM)

通过贸泽网站上的这份项目物料清单,您可以一次买齐以下必需组件: (该清单包含一个锂电池组和一个干电池盒,这两者只需购买其一即可。本文中使用安装了两节AA电池的电池盒为开发板供电。)

• 485-ABX00014 – Arduino MKR FOX 1200
• 485-X000016 – GSM天线,带Micro UFL连接器
• 474-PRT-12002 – SparkFun配件:面包板 - 自粘合(白色)
• 485-375 – Adafruit配件:电磁接触开关
• 474-COM-09609 – SparkFun配件:SPDT拨动开关
• 546-BH2AAW – 双AA电池盒
• 485-258 – Adafruit配件:锂离子聚合物电池,3.7V 1200mAh
• 932-MIKROE-513 – 跳线:公对公,15CM 10PK

硬件组装

本节中,我们将指导您组装该项目的所有硬件:

1、将电磁接触开关连接到Arduino(导线的顺序无关紧要):
• 一根导线从传感器连接到PIN 1(黄色跳线)
• 另一根导线从传感器连接到GND脚(黑色跳线)

2、由于MKR FOX 1200开发板上没有电源开关,因此可以增设一个SPDT拨动开关以便在需要时关闭开发板的电源。请在连接电池盒之前先将SPDT开关焊接到电源/电压线(红色导线)上。

3、将电池盒连接到螺丝接线端子。

4、将天线连接到微型UFL连接器。

硬件组装电路图
图1:硬件组装电路图(图源:贸泽电子)

软件配置

如果您是第一次使用Arduino MKR FOX 1200,必须先配置该开发板,并将其注册到Sigfox网络。如果您已经做过这些操作,则可以直接跳到后面的「代码概览」部分继续阅读。

1、在PC上安装Arduino IDE(可从Arduino网站下载)。

2、打开Arduino IDE,单击工具→开发板→开发板管理器,然后安装Arduino SAMD Boards (32-Bits ARM Cortex-M0+) 软件包。

3、单击项目→加载库→管理库,然后安装下面这些库:
• Arduino SigFox for MkRFox 1200
• Arduino Low Power

4、将开发板连接到PC,然后打开FirstConfiguration示例。该示例位于文件→示例→Arduino SigFox for MkRFox 1200。

5、将代码刷入(上传)到开发板,然后打开串口监视器。

6、将串口监视器中显示的ID和PAC编号复制出来,在随后将开发板注册到Sigfox网络时需要使用这两个编号(图2)。

Arduino开发板的ID和PAC
图2:Arduino开发板的ID和PAC(图源:贸泽电子)

SigFox后台 - 注册开发板

下一步,我们需要将开发板注册到Sigfox网络。在浏览器中访问Sigfox后台(需要登录),按照其中的步骤注册您的开发板。该过程需要输入上一步中复制的ID和PAC编号。

在Sigfox后端注册开发板
图3:在Sigfox后端注册开发板(图源:贸泽电子)

代码概览

现在,所有安装和准备工作都已完成,可以刷入贸泽GitHub仓库中提供的smart_mailbox.ino代码了。这些代码会指示Arduino进入睡眠模式,直到发生需要处理的事件为止,该事件只要信箱投递口被打开即会触发。在我们提供的代码中,主要有下面几个要点:

• 中断函数中添加了一个变量,用于获取电池电压,以便计算电池的剩余电量。代码中采用的计算方法可以粗略估算出电池的电量状态,不过在理想状况下,还是需要通过充电电路来计算出电池的容量,并以此来计算出准确的电量信息。就本文中的项目而言,我们就直接采用代码中现有的算法(图4)。

代码片段 - 电压计算
图4:代码片段 - 电压计算(图源:贸泽电子)

• 如果通过将两个磁铁彼此移开来触发Arduino,那么您应该会看到板上的LED灯闪烁,这是因为代码中打开了调试模式,但在省电模式的所有功能都测试完毕后,应关闭调试模式(图5)。

代码片段 - 调试模式
图5:代码片段 - 调试模式(图源:贸泽电子)

• 禁用调试模式后,可能会遇到这样的问题:Arduino只触发了一次,就再也无法唤醒了。通过网络搜索,发现Arduino论坛上的这个帖子提到了这个问题,指出这是因为Sigfox库中存在问题而导致的,并且提供了一种规避方法。为此,我修改了sigfox.cpp文件,并将修改后的文件放到了前文所述的GitHub仓库中。如果您遇到了同样的问题,请使用该文件替换PC上的sigofx.cpp文件(位于C:/Documents/Arduino/libraries/Arduino_SigFox_for_MKRFox1200/src/ 路径中),然后重新刷板,以更新开发板上的库。

注意:本文提供的代码会使Arduino模块进入睡眠状态,这会导致COM串口上无法检测到开发板,因而刷板时需要按两下「RST」按钮,串口上才能检测到开发板。

SigFox后台 - 回调函数

下一步中,我们需要创建一个回调函数。该回调函数会将接收自MKR FOX 1200开发板的数据传输到您的电子邮箱地址。

1、在浏览器中访问Sigfox后台(需要登录)

2、单击以下各项:DEVICE TYPE(设备类型)→您的DevKit→Edit(编辑)

设备设置
图6:设备设置(图源:贸泽电子)

3、然后您会进入到图7所示的页面。确认Downlink mode(下行模式)中选中的是Callback(回调)。

设备设置 - 下行模式
图7:设备设置 - 下行模式(图源:贸泽电子)

4、单击图7所示页面左侧边栏中的CALLBACKS(回调),转到Callbacks页面,然后单击New(新建)。

5、选择Custom callback(自定义回调)(图8)。

设备设置 - 自定义回调
图8:设备设置 - 自定义回调(图源:贸泽电子)

6、设置自定义回调函数,步骤如下:

i. 设置Type(类型)→DATA(数据)和UPLINK(上行),以及Channel(途径)→EMAIL(电子邮件)。

ii. 因为我们需要将剩余电量数据包含在1字节的有效载荷中发送到Sigfox服务器,故需要配置Custom payload(自定义有效载荷)。变量percentage(百分比)为8位无符号整数,这就是Sigfox服务器将会接收到的数据。

iii. 最后,在消息正文中添加 {customData#percentage} 这个变量,它在电子邮件中将会替换为接收到的电池电量百分比数值。

回调函数设置
图9:回调函数设置(图源:贸泽电子)

安装

整个项目的最后一步,就是将所有组件和零件都安装到信箱上。把所有组件都固定在信箱门内侧,并将电磁接触开关固定到投递口上,然后将天线固定到信箱外面(建议尽可能不要把天线贴在金属表面上)。

将所有组件都安装到信箱上
图10:将所有组件都安装到信箱上(图源:贸泽电子)

结论

本项目创建了一个简单的LPWAN应用,从而将传统的信箱转变为智能信箱。借助Arduino MKR FOX 1200可以非常轻松地连接到Sigfox网络并将数据发送到云端。此外,本项目还可以实现自我供电,只需在信箱上安装太阳能电池板并将其连接到充电电路即可。

本文来源:https://www.mouser.cn/blog/cn-smartmailbox-mkrfox1200
版本属原作者所有,侵权请联系删除!

down.gif

单片机项目定制开发
● 工业机器人、仪器仪表、高精度数据采集、超低功耗待机、通讯板卡
● 无线数据传输:4G、NB、WIFI、LORA
● 进口产品国产化,抄板
● 产品批量供货、质量控制、售后维护

9775460cb15acb62aac9043559bac65f.jpg
北京德天驰鼎科技有限公司

dettek

声明:该文观点仅代表作者本人,我们只提供信息存储空间服务。
我来说两句
加载中~
相关阅读

锂电池充电过程

fast · 2024-09-08 08:03:13

常用低功耗单片机型号

2024-09-07    阅读  

串口屏COF参数

fast · 2024-09-06 12:05:58

电子负载的工作原理

fast · 2024-08-22 23:01:30

远端采集是什么意思?

fast · 2024-08-22 22:03:09

18650锂电池参数

fast · 2024-06-18 23:00:00

固态电池和锂电池区别

2024-06-07    阅读  

三元锂电池

fast · 2024-06-06 19:54:33

I2C上拉电阻

fast · 2024-04-12 11:34:07