arduino如何通过nbiot上传数据

arduino如何通过nbiot上传数据,第1张

实际上是串口读入字符串,再转换为int型数据。
[C++] 纯文本查看 复制代码代码001002003004005006007008009while(Serialavailable() > 0) { intinChar = Serialread(); if(isDigit(inChar)) {inString += (char)inChar;}i=inStringtoInt();}}

这个是内网穿透,DDNS等范畴。考虑到国内的政策,尤其是光猫的限制,这个变得很难。也正是物联网大多有个中转平台的原因。arduino把数据上传到网站,也从网站获取指令控制开关什么的,由于查询不可能太频繁,所以控制变得有些延迟。
乐为物联 lewei50 有入门例子,简单应用是免费的。吃透后自己搭建一个平台也容易。

要做一个偏远地区的物联网控制应用,考虑了多种通信方式,据我所知总共也就这几种:有线,WIFI,GPRS。其余的什么MQTT,XBEE,RFID等等也离不开网络,或者可以这样设计:用RFID做设备间信息传输,然后部署一台另外的设备负责把最终信息存储设备的信息通过网络发送到服务端,这样能减少一些联网设备,不过感觉意义不大。

首先是第一个坑 ,现在arduino gprs设备几乎都是使用的2G通信,而运营商的2G通道渐渐都关闭了,会伴随着速度缓慢,信号丢失,无反应等各种情况,所以有时候写出来程序调试半天发现是通信的问题,直接让人怀疑选型gprs是个错误,这时候就要在通信程序中加入各种判断,考虑各种情况,工作量大幅上升。

去V2EX发帖吐槽,总结了网友给出消息:摩拜单车锁用的通信方式是移动定制的4G物联网流量卡,公路上的抓拍摄像头使用的是有线连接,自动货物出售机普遍采用4G物联网卡,远洋船舶通信是卫星信号,流量费贵出天际。总之GPRS通信处于被淘汰的边缘了。

应该有人问,那为什么不选4G?一个字:“穷”,arduino官方有支持2G/3G/4G的模块,一个将近900元,在硬件领域,有时候1分钱都要比较,不是斤斤计较,因为大量的设备意味着造价数量级的升高,同样能给出解决方案,老板肯定会选择报价低的。自己做?我反正做不出。

第二个坑 ,arduino gprs通信模块便宜的有A6,SIM800,SIM900,这些模块发送一个>如果你只能在本地控制一个智能设备,那么它并不能被称之为智能。那有什么用呢你需要的是远程控制设备的功能。而这正是远程配置发挥作用的地方。
远程配置能够让开发人员和用户触发行动,进而在任何地点控制他们的设备。设备状态解析通过网络(在本案例中为PubNub)传送的信号,并根据信号指令永久地改变装置的状态(如灯泡从关到开)。
A 远程配置的消息传递层
在本教程中,我们将展示如何在[基于Atmel的]Arduino联网设备上实现远程配置。在开发的过程中,我们遇到了两个问题。
1 网设备的状态(如在线/离线状态)
2 连接到云的设备的状态
通过使用Presence API,第一个问题迎刃而解,因此,我们将着重关注第二个问题。我们将采用存储和回放的方法,存储并检索用于家庭自动化解决方案的联网设备的状态。如此,我们就能够远程控制智能设备,实时发送信号。
JSON对象就是一个典型的示例,如下所示:
{"状态":[
{"通电":"真"},
{"咖啡量: 一半"},
{"温度":""}
]}
远程配置的整体流程
● 注册一个免费的PubNub账户。如此便可获得独特的发表/订阅键,用于激活PubNub。这些键位于开发人员控制台。
● 利用Arduino通过PubNub物联网网络发布消息,控制智能设备。
● 通过web浏览器,访问这些消息。
了解教程!
步骤一:连接PubNub
例如,控制冰箱的温度。如下参数可存储为设备的状态,如查看冰箱门的开启状态、温度、功耗,甚至还有冰箱的容积。
在Arduino IDE上运行,并查看步骤二中关于连接PubNub至Arduino的教程,获得更多详情。
步骤二:在Arduino中创建JSON对象
为在Arduino中创建json对象,我们需要使用JSONh库。创建上文所述的JSON对象可参照如下步骤:
aJsonObject msg = aJsoncreateObject();
aJsonaddStringToObject(msg, "姓名", "Arduino");
aJsonaddNumberToObject(msg, "外部温度", 34);
步骤三:向设备发送信号
除此之外,只需再利用Arduino IDE发布消息即可。要做到这一点,可参照如下代码:
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
char pubkey[] = "demo";
char subkey[] = "demo";
char channel[] = "设备状态";

//setup
void setup()
{
Serialbegin(9600);
Serialprintln("串口设置");

while (!Ethernetbegin(mac)) {
Serialprintln("以太网设置错误");
delay(1000);
}
Serialprintln("以太网设置");

PubNubbegin(pubkey, subkey);
Serialprintln("PubNub 设置");
}
// establishing internet connection to the Arduino and publishing the state建立Arduino网络连接并发布状态
void loop()
{
Ethernetmaintain();
EthernetClient client;
client = PubNubpublish(channel, msg);
if (!client) {
Serialprintln("发布错误");
} else {
client->stop();
}
delay(5000);
}
另外,如果只能在web浏览器上查看设备状态怎么办在浏览器控制台中粘贴如下代码,并查看状态填写。
// 发布和订阅键初始化

var pubnub = PUBNUBinit({
publish_key: 'PUBLISH_KEY_HERE',
subscribe_key: 'SUBSCRIBE_KEY_HERE',
uuid: 'devices_state设备状态'
});

// 通过历史记录检索已经发布到该渠道的消息。

pubnubhistory({
channel: '历史记录_渠道',
callback: function(m){consolelog(JSONstringify(m))},
});
就是这样!还有一点:PubNub并不限制你发布或通过历史记录检索消息的数量。你可以利用多个Arduinos进行尝试,并远程查看其状态。
远程配置的用例数之不尽,从农业到运输和物流,再到家庭自动化。它使你能够在地球上的任何地方完全控制你的智能设备,功能异常强大。

可以不用做物联网硬件开发,因为物联网系统可以分为两部分:硬件和软件。硬件通常包括传感器、节点、网关等,而软件则包括数据处理、分析和应用等。如果您不想进行硬件开发,可以考虑使用已有的硬件产品,例如Arduino、Raspberry Pi等,或者采购一些现成的传感器、网关设备等。

在软件开发方面,您可以选择使用一些物联网平台或开发框架,例如AWS IoT、Google Cloud IoT等,这些平台和框架提供了一些基础的组件和工具,帮助您更容易地实现物联网系统。同时,您也可以自己编写代码进行数据处理、分析和应用开发等。无论哪种方案,都需要考虑数据的安全性和可靠性,以及系统的扩展性和可维护性。

可以通过使用现有的物联网设备或者使用模拟器来实现物联网系统,而不需要进行物联网硬件开发。以下是一些实现物联网系统的常用方法:

使用现有的物联网设备:市场上已经有许多物联网设备可供选择,例如传感器、摄像头、智能家居设备等等。可以根据需求选择合适的设备并与系统进行集成。

使用模拟器:模拟器是一种可以模拟物联网设备行为的软件。通过使用模拟器,可以模拟多种物联网设备的行为和交互,并且可以测试系统的功能和性能。

使用云平台:云平台可以提供物联网设备的管理和数据存储等功能,例如AWS IoT、Google Cloud IoT、Azure IoT等等。使用云平台可以更加方便地管理物联网设备,并且可以通过云服务实现设备之间的数据交互和处理。

总的来说,可以通过选择适合的技术和平台,来实现一个完整的物联网系统,而不需要进行物联网硬件开发。

ESP32开发板是一款集成了Wi-Fi和蓝牙功能的高性能,低功耗芯片。它具有更高的CPU时钟频率、更大的内存和更强大的处理能力,适合做为物联网系统的核心。而Arduino UNO则是Arduino系列板卡中最受欢迎的一款,它以AVR ATmega328P作为核心处理器,拥有一定的处理性能。

这个其实是在一块板子上集成了arduino和一个小型的linux系统,自带wifi模块,wifi通信的工作由linux来做,传感器的数据采集由arduino来做,他俩之间的数据交互通过Bridge库来做。不过板子较贵,大概480左右。意大利原产。适合玩,你需要学习的就是去官网看这款板子的文档,买一些杜邦线和传感器,选择一个物联网云平台,用来测试采集和传输数据!


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/13288292.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-08
下一篇 2023-07-08

发表评论

登录后才能评论

评论列表(0条)

保存