资料介绍
描述
该项目展示了如何将MKR FOX 1200和一堆 I2C 传感器变成一个简单的电池供电气象站。
我们将使用:
- 板载温度传感器(低精度,± 1 °C)
- HTU21D I2C 传感器获取湿度水平
- 博世 BMP280 获取大气压力和精确温度
- TSL2561光传感器获取光度
硬件设置
该项目的硬件连接非常简单:所有传感器都使用 I2C 接口并在 3.3V 下运行。
它们需要来自 MKR FOX 1200 的四根线:GND、3.3V、引脚 11 上的 SDA 和引脚 12 上的 SCL。相同的四个连接可以与三个传感器并联共享,因为它们每个都有一个特定的 I2C 地址,因此相关的库和函数将负责区分它们中的每一个。
整个项目可以由两节AA或AAA碱性电池串联产生3V并接线到板上的螺丝接线端子块供电。
Sigfox 消息
由于 Sigfox 网络每天最多可以发送 140 条消息,因此我们将优化读数并以紧凑的二进制格式发送数据。
数据打包很重要,因为您可以发送的消息的最大大小为 12 个字节。一个浮点数占用 4 个字节,所以我们需要将我们的读数打包成一些更小的表示形式。
浮点格式非常宽(您可以表示大到 3.402823e+38 (!) 的数字),我们不需要整个数据空间;然后我们可以决定安全限制(基于我们将要部署站点的位置)并在后端恢复原始表示。
云服务的配置
我们将使用两种云服务:
使用FirstConfiguration 示例提供的 PAC 和 ID 在 Sigfox 后端注册您的开发板(如果您已经为之前的项目做过,可以跳过)。
两者都需要配置为相互交谈并以正确的格式解释数据。在 Thingspeak 上注册并创建几个频道。配置如下图所示。
我们配置的第一个通道将接收原始数据(readChannelID
),而第二个将收集重新缩放的数据(writeChannelID
)。
是时候使用 Arduino Create Editor 上传草图了。默认草图允许您在现场部署之前广泛测试所有基础架构。
记得声明:
oneshot = false
当您确信所有后端基础架构设置正确时。草图等待串口,所以我们现在不会启动它。相反,打开SigFox 后端并配置回调:
单击设备类型->列表-> 右键单击您的电路板,然后单击编辑。
点击左侧菜单中的回调:
你会看到这样的窗口:
点击窗口右上角的新建按钮:
选择自定义回调:
相关配置报告如下。确保回调设置为:
-
类型:
DATA/UPLINK
-
渠道:
URL
-
方法:
GET
作为自定义有效负载,设置:
status::uint:8 temp1::int:16:little-endian temp2::int:16:little-endian press::uint:16:little-endian hum::uint:16:little-endian light::uint:16:little-endian lastMsg::uint:8
这代表了我们在草图中打包的结构。我们为每个字段分配了一个变量,因此我们可以在 HTTP 回调中引用它们。
作为 URL 模式,设置:
https://api.thingspeak.com/update?api_key=XXXXXXXXXXXX&field1={customData#temp1}&field2={customData#press}&field3={customData#temp2}&field4={customData#hum}&field5={customData#light}&field6={customData#status}&field7={customData#lastMsg}
配置完成后,您的窗口应如下所示:
请记住将 API 密钥更改为api_key
Thingspeak 提供的Write API Key
密钥Channel1
。
保存并退出。我们现在可以打开串口并观察正在发送的第一条消息。万岁!
从原始到图形
我们配置的设置会将我们的数据路由到 Thingspeak 后端,但它们仍然是原始格式;要重新转换它们,让我们使用带有此代码段的Thingspeak 分析工具
% TODO - Replace the [] with channel ID to read data from:
readChannelID = [];
% TODO - Enter the Read API Key between the '' below:
readAPIKey = 'T6UK7XO6A4H2AGT7';
% TODO - Replace the [] with channel ID to write data to:
writeChannelID = [];
% TODO - Enter the Write API Key between the '' below:
writeAPIKey = 'XU4TGY261P6B5USN';
%% Read Data %%
data = thingSpeakRead(readChannelID, 'ReadKey', readAPIKey,'OutputFormat','table');
analyzedData = data;
%% Analyze Data %%
INT16_t_MAX = 32767;
UINT16_t_MAX = 65536;
analyzedData.('Temperature1') = data.('Temperature1') / INT16_t_MAX * 120 ;
analyzedData.('Temperature2') = data.('Temperature2') / INT16_t_MAX * 120 ;
analyzedData.('Pressure') = data.('Pressure') / UINT16_t_MAX * 200000 ;
analyzedData.('Light') = data.('Light') / UINT16_t_MAX * 100000 ;
analyzedData.('Humidity') = data.('Humidity') / UINT16_t_MAX * 110 ;
%% Write Data %%
thingSpeakWrite(writeChannelID, analyzedData, 'WriteKey', writeAPIKey);
%% Schedule action: React -> every 10 minutes
通过用我们自己的替换通道 ID,我们最终可以将原始数据转换回实际值。请记住使用React每 10 分钟安排一次分析操作,否则将永远不会执行!
我们终于有了精彩的图表。
- XV4001BC车载用SPI/I2C输出接口的数字输出
- 带BME280传感器的Arduino简易气象站
- MKR FOX 1200运动触发器开源分享
- 基于ESP8266的气象传感器—DubosAirNano2气象站 1次下载
- 基于LoPy4的气象站设计 0次下载
- 基于Particle Photon的气象站 0次下载
- 基于Arduino的无线气象站 0次下载
- 基于Arduino UNO的气象站 2次下载
- 使用太阳能电池板的气象站
- 使用DHT11传感器和OLE显示屏构建气象站
- 使用dht传感器、HC12模块和I2C LCD显示器制作远程气象站
- 硬件I2C与模拟I2C
- ADT7420:±0.25°C精度、16位数字I2C温度传感器
- 使用MPU6050传感器读取I2C总线数据的程序免费下载 15次下载
- 如何将I2C从地址左移1位
- I2C通信协议及其工作原理 4481次阅读
- Linux I2C驱动入门知识科普 1516次阅读
- 如何利用ESP8266实现防雨物联网气象站的设计 4963次阅读
- 如何使用ESP32创建一个气象站 3771次阅读
- 如何使用两个dht传感器及HC12模块制作远程气象站? 2792次阅读
- 基于创建带有空气质量传感器的室内气象站 2186次阅读
- 什么是I2C通信协议? 7572次阅读
- 开源软件opencores I2C master控制器控制I2C接口操作原理 6920次阅读
- i2c总线用来做什么_i2c总线数据传输过程 7086次阅读
- dfrobotSHT20 I2C防水型温湿传感器简介 2920次阅读
- dfrobotDIY智能气象站套件简介 1618次阅读
- I2C总线的工作原理以及优缺点解析 1.4w次阅读
- 详细讲解RT-Thread I2C设备驱动框架及相关函数 2w次阅读
- 基于I2C接口与上级无线传感器网络通信的环境监测系统 3241次阅读
- 基于STM32的自动气象站控制模块设计 8306次阅读
下载排行
本周
- 1山景DSP芯片AP8248A2数据手册
- 1.06 MB | 532次下载 | 免费
- 2RK3399完整板原理图(支持平板,盒子VR)
- 3.28 MB | 339次下载 | 免费
- 3TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 4DFM软件使用教程
- 0.84 MB | 295次下载 | 免费
- 5元宇宙深度解析—未来的未来-风口还是泡沫
- 6.40 MB | 227次下载 | 免费
- 6迪文DGUS开发指南
- 31.67 MB | 194次下载 | 免费
- 7元宇宙底层硬件系列报告
- 13.42 MB | 182次下载 | 免费
- 8FP5207XR-G1中文应用手册
- 1.09 MB | 178次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33566次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21549次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6656次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537798次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420027次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191187次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183279次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多