亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

实时物联网压力监测:MKR GSM 1400 + Arduino Cloud + Google Sheets

核心硬件清单

组件数量关键规格/用途
Arduino UNO1采集传感器数据,通过串口转发给MKR GSM
Arduino MKR GSM 14001蜂窝网关,经Serial1与UNO通信,上传数据至Arduino Cloud
压力传感器 (0-150 psi)1模拟输出,接UNO A2
DHT22温湿度传感器1数字接口,接UNO D11
DS3231 RTC模块1I2C接口,提供精准时间戳
四路逻辑电平转换器 (BSS138)15V(UNO)↔3.3V(MKR) I2C/串口电平转换
3.7V 2000mAh+ LiPo电池2分别供电UNO与MKR,支持移动部署
升压转换模块1电池升压至5V供UNO
基础元件包(LED/电阻/导线等)1指示灯、上拉电阻、面包板搭建
面包板1原型搭建

云端与软件服务

项目目标

构建低成本原型,利用蜂窝网络远程监测工业设备压力,适用于无WiFi/有线网络的现场。数据流向:

压力传感器 → UNO(模拟转压力值) → 串口 → MKR GSM 1400(蜂窝上传) → Arduino Cloud → Webhook → Google Sheets(解析/存储/告警)
实时物联网压力监测:MKR GSM 1400 + Arduino Cloud + Google Sheets
防水箱内集成:UNO(左上)、MKR GSM(右上)、传感器模块、电池、显示屏

数据流详细走向

步骤1:压力传感器 → UNO

传感器输出模拟电压,UNO读取A2引脚,按线性公式换算为psi:

float voltage = (analogRead(A2) * 5.0) / 1023.0;
// 0 psi → 0.4889V (约100 ADC), 150 psi → 4.5V
float m = (150 - 0) / (4.5 - 0.4889);
float b = 150 - m * 4.5;
float pressure_psi = m * voltage + b;

参考教程:YouTube压力传感器接线与标定

步骤2:UNO → MKR GSM 1400 (串口)

跨设备串口通信三原则:RX↔TX交叉、共地、波特率一致(9600)。UNO使用Serial,MKR使用Serial1(硬件串口1,引脚13/14)。

三种触发上传模式:

  1. 定时上报:每30分钟(transmitFrequency)主动发送
  2. 阈值触发:压力>40 psi或<20 psi持续>2分钟(dtLastTriggerLimit)立即上报
  3. 云端轮询:Arduino Cloud下发指令(pinCloud=2)→MKR拉高UNO A1引脚→UNO主动上报当前值

参考:Arduino论坛《串口输入基础》

步骤3:MKR GSM 1400 → Arduino Cloud (蜂窝)

MKR解析UNO串口数据包(格式<索引,告警标志,持续时间,按钮状态,月,日,年,时,分,秒,湿度,温度,压力>),更新Cloud两个变量:

实时物联网压力监测:MKR GSM 1400 + Arduino Cloud + Google Sheets
Cloud Dashboard显示数据包与控制开关

步骤4:Arduino Cloud → Google Sheets (Webhook)

核心是Google Apps Script的doPost(e)函数。设置步骤:

  1. 新建Google Sheets → 工具 → 脚本编辑器
  2. 粘贴doPost代码(见附件GoogleSheetsScript.js)
  3. 发布 → 部署为网络应用:版本选New,执行身份我,访问权限任何人(含匿名)
  4. 复制生成的URL,粘贴到Arduino Cloud的Webhook配置页

参考项目:Arduino IoT Cloud Google Sheets Integration

步骤5:Google Sheets解析与存储

doPost将dataStringCloud按逗号拆解,写入RawData表表头对应列;再汇总去重写入Data表最新行。表格示例:在线演示表

实时物联网压力监测:MKR GSM 1400 + Arduino Cloud + Google Sheets
原始数据与解析后清洗数据对比,单元格着色标识来源

步骤6:Google Sheets邮件告警

脚本含第二函数sendEmail(),每分钟定时触发(触发器设置:时间驱动→分钟计时器→每分钟);逻辑:

关键指标

指标实测值优化方向
电池续航~24小时关闭OLED屏、移除DHT22/DS3231、降低上报频次
日均流量~0.7 MB仅上传压力、延长上报间隔至1小时
总成本$241MKR GSM 1400($70) + UNO($22) + 电池/外壳/传感器/杂项

硬件采购渠道

核心代码

UNO端:InstrumentReader.ino

// 关键片段:压力读取、三种触发模式、OLED显示、串口发包
#include  #include  #include "U8glib.h" // Velleman OLED专用库
#define DHTPIN 11 #define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE); U8GLIB_SH1106_128X64 u8g(3,4,6,7); // CLK, MOSI, CS, DC
RTClib RTC; const int ledPin=9, ledPin2=8, buttonPin=A1;
int transmitFrequency=30; // 分钟
float lowTrigger=20.0, highTrigger=40.0, dtLastTriggerLimit=2.0;
// ... 完整代码见附件,含防抖动、RTC、OLED绘图、串口发包逻辑 ...

Google Apps Script:GoogleSheetsScript.js


// 核心两函数:doPost(接收Webhook写表) + sendEmail(定时触发告警)
// 完整代码见附件,含去重、列动态扩展、布尔值转0/1、阈值判定邮件发送

MKR GSM 1400端:CommunicationsDevice.ino

代码随项目附件提供,核心逻辑:Serial1读取UNO数据包 → 解析 → 更新Cloud变量 → 处理Cloud下发的pinCloud指令控制GPIO

原理图

实时物联网压力监测:MKR GSM 1400 + Arduino Cloud + Google Sheets
完整原理图:双MCU串口跨电平通信、传感器接线、电池供电、升压、电平转换

制造工艺

  1. 树莓派对接HDC2010:I²C温湿度传感器完整接线与编程指南
  2. BMP180 I2C 气压传感器树莓派接入指南
  3. Python/MicroPython 传感器记录仪:无缝写入 Google Sheets
  4. 树莓派 2 (Windows 10 IoT Core) 采集 Adafruit 10DOF IMU 数据上传 Azure Event Hubs
  5. Windows 10 IoT Core 上基于 SHT15 的精准温湿度监测
  6. UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
  7. 智能物联网罐:ESP8266 + Arduino + 超声波传感器实时监测罐内物位
  8. Arduino Cloud 传感器塔:温度、动作与气体监测
  9. DIY Arduino 智能手表:打造属于你的 Apple Watch 风格腕表
  10. 通过 Arduino IoT Cloud 用 Alexa 控制电视:分步指南
  11. Arduino Nano 指纹传感器项目——分步教程
  12. ADLINK 与 Google Cloud 合作交付无缝物联网解决方案