在本篇文章中,我们将学习如何使用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端口。由于其外形尺寸小,它最适合用于物联网项目。
盒子里面有一块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指示灯表示通过USB数据线为电池充电,绿色LED指示充电完成且电池已充满。 COM LED在设备与计算机之间转储代码或数据传输时点亮。蓝色LED指示GSM网络的状态。
您可以将Arduino IoT Box用于Arduino项目、IOT 项目、实时项目、基于GSM的服务器通信、数据记录器、温度监测系统、传感器数据采集、SMS触发等。
将传感器数据发送到Thingspeak服务器 首先,我们需要将DHT11传感器连接到Arduino IoT Box。按照以下方式连接DHT11传感器。
将DHT11传感器的GND和VCC引脚连接到Arduino开发板的GND和5V引脚。同样,将输出引脚连接到Arduino的D3。
设置Thingspeak ThingSpeak为基于物联网的项目提供了非常好的工具。通过使用ThingSpeak网站,我们可以使用ThingSpeak提供的渠道和网页通过Internet监控我们的数据并控制系统。所以首先你需要注册ThingSpeak。所以访问 https://thingspeak.com 并创建一个帐户。然后创建一个新频道并设置您想要的内容。
然后创建API密钥。编程修改和设置数据需要此密钥。
现在单击频道,以便您可以看到在线数据流。
代码 下面给出了使用Arduino向Thingspeak发送GPRS数据的代码。更改代码中的APN。例如,Airtel的APN是airtelgprs.com。您可以复制代码并上传到Arduino开发板中。
Thingspeak.rar
(1.01 KB, 下载次数: 1)
测试结果 上传代码后,GSM模块将尝试连接到蜂窝网络。然后与Thingspeak服务器建立连接。您可以打开串口监视器以查看所有步骤。
转到Thingspeak服务器的Private视图。您将看到30秒后上传的温度和湿度数据。
使用GSM和Arduino将传感器数据发送到Firebase 现在让我们看看如何使用SIM800C GSM模块和Arduino将DHT11传感器数据发送到Google Firebase。首先,设置Google Firebase。我们需要Firebase主机和身份验证来将GSM连接到Firebase进行通信。
您可以从实时数据库(Realtime Database)中获取Firebase主机。
从数据库机密(Database Secrets)复制身份验证令牌。
Arduino GSM Firebase 的源代码 以下代码介绍了将GSM和Arduino与Google Firebase进行通信。但是代码需要TinyGsmClient库以及ArduinoHttpClient库。首先下载这些库并将其添加到Arduino库文件夹中。 - const char FIREBASE_HOST[] = "********************************************";
- const String FIREBASE_AUTH = "********************************************";
复制代码更改Firebase主机和身份验证令牌。 - char apn[] = "www";//airtel ->"airtelgprs.com"
复制代码SIM卡或服务提供商的APN。
现在可以下载以下代码并将其上传到Arduino开发板中。
Firebase.rar
(1.51 KB, 下载次数: 0)
测试结果 上传代码后,Arduino开发板将连接到2G网络。现在你可以打开串口监视器,显示温度和湿度读数。
当温度和湿度数据显示在串口监视器上时,同时数据会发送到Google Firebase数据库。 您只需打开Google Firebase控制台窗口,然后查看数据的实时输入。以上就是本篇文章的全部内容,如有任何疑问,请随时在本帖下面回复。 |