风筝
发表于: 2022-4-6 15:03:56 | 显示全部楼层

在本篇文章中,我们将学习如何使用GSM模块实现Arduino开发板与Google Firebase或Thingspeak服务器之间进行通信。为此,我们将使用由SIM800C和Atmega328微控制器设计的Arduino IoT Box。 Graylogix公司的Arduino IoT Box集成了GSM模块和Arduino,适用于电池供电的物联网应用。


本文中,我们将使用GSM和Arduino实现与Firebase或Thingspeak进行通信。测量温度和湿度的DHT11传感器可以很容易地与Arduino连接。首先,我们将DHT11传感器数据发送到Thingspeak服务器。之后,我们将使用Google Firebase远程接收或监控数据。


所需的组件

●    Arduino IoT Box开发板

●    DHT11温湿度传感器

●    连接跳线


Arduino IoT Box介绍

Arduino IoT Box开发板是用于Arduino + GSM的开源硬件,带有电池和I/O端口。由于其外形尺寸小,它最适合用于物联网项目。

SIM800C-Arduino.jpg


盒子里面有一块PCB电路板板,上面有SIM800C GSM模块和一个带有Arduino Bootloader的Atmega328微控制器。该盒子通3.7V、1000mAh锂离子电池供电。为了给电池充电,盒子里有TP4056电池管理系统芯片。将电缆插入微型USB端口即可为电池充电。该USB端口也用于转储代码。


该盒子使用外部GSM天线,在为设备供电之前应连接该天线。您可以将nano Sim卡插入专用SIM插槽。请记住,SIM800是 2G 模块,仅支持2G SIM。板上的专用 I/O 引脚可通过在板上焊接条方便地连接外部传感器和其他 I/O 设备。外部接口也可以使用AD0到AD3完成,它们在内部连接到Arduino nano。


盒子上有5个不同的LED来指示电源、网络、电池充电、电池充满等。

LED-Indications.jpg


橙色LED指示灯表示通过USB数据线为电池充电,绿色LED指示充电完成且电池已充满。 COM LED在设备与计算机之间转储代码或数据传输时点亮。蓝色LED指示GSM网络的状态。


您可以将Arduino IoT Box用于Arduino项目、IOT 项目、实时项目、基于GSM的服务器通信、数据记录器、温度监测系统、传感器数据采集、SMS触发等。


将传感器数据发送到Thingspeak服务器

首先,我们需要将DHT11传感器连接到Arduino IoT Box。按照以下方式连接DHT11传感器。

DHT11-GSM-Thingspeak.jpg


将DHT11传感器的GND和VCC引脚连接到Arduino开发板的GND和5V引脚。同样,将输出引脚连接到Arduino的D3。


设置Thingspeak

ThingSpeak为基于物联网的项目提供了非常好的工具。通过使用ThingSpeak网站,我们可以使用ThingSpeak提供的渠道和网页通过Internet监控我们的数据并控制系统。所以首先你需要注册ThingSpeak。所以访问 https://thingspeak.com 并创建一个帐户。然后创建一个新频道并设置您想要的内容。

1111.jpg


然后创建API密钥。编程修改和设置数据需要此密钥。

22222.jpg


现在单击频道,以便您可以看到在线数据流。


代码

下面给出了使用Arduino向Thingspeak发送GPRS数据的代码。更改代码中的APN。例如,Airtel的APN是airtelgprs.com。您可以复制代码并上传到Arduino开发板中。

Thingspeak.rar (1.01 KB, 下载次数: 1)


测试结果

上传代码后,GSM模块将尝试连接到蜂窝网络。然后与Thingspeak服务器建立连接。您可以打开串口监视器以查看所有步骤。

Serial.png


转到Thingspeak服务器的Private视图。您将看到30秒后上传的温度和湿度数据。

tHNG.jpg


使用GSM和Arduino将传感器数据发送到Firebase

现在让我们看看如何使用SIM800C GSM模块和Arduino将DHT11传感器数据发送到Google Firebase。首先,设置Google Firebase。我们需要Firebase主机和身份验证来将GSM连接到Firebase进行通信。


您可以从实时数据库(Realtime Database)中获取Firebase主机。

Firebase-GMS-Arduino.jpg


从数据库机密(Database Secrets)复制身份验证令牌。

Secrets.jpg


Arduino GSM Firebase 的源代码

以下代码介绍了将GSM和Arduino与Google Firebase进行通信。但是代码需要TinyGsmClient库以及ArduinoHttpClient库。首先下载这些库并将其添加到Arduino库文件夹中。

  1. const char FIREBASE_HOST[]  = "********************************************";
  2. const String FIREBASE_AUTH  = "********************************************";
复制代码

更改Firebase主机和身份验证令牌。

  1. char apn[]  = "www";//airtel ->"airtelgprs.com"
复制代码

SIM卡或服务提供商的APN。


现在可以下载以下代码并将其上传到Arduino开发板中。 Firebase.rar (1.51 KB, 下载次数: 0)


测试结果

上传代码后,Arduino开发板将连接到2G网络。现在你可以打开串口监视器,显示温度和湿度读数。

Google-Firebase-GSM.jpg


当温度和湿度数据显示在串口监视器上时,同时数据会发送到Google Firebase数据库。 您只需打开Google Firebase控制台窗口,然后查看数据的实时输入。以上就是本篇文章的全部内容,如有任何疑问,请随时在本帖下面回复。

跳转到指定楼层
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题 700 | 回复: 1479



手机版|

GMT+8, 2024-3-29 23:35 , Processed in 0.113183 second(s), 8 queries , Gzip On, MemCache On. Powered by Discuz! X3.5

YiBoard一板网 © 2015-2022 地址:河北省石家庄市长安区高营大街 ( 冀ICP备18020117号 )

快速回复 返回顶部 返回列表