100个物联网开源开发工具和资源

100个物联网开源开发工具和资源,第1张

物联网正以前所未有的速度肆虐。在我们向您介绍物联网(IoT)开源开发工具之前,您还应该先了解其他一些内容。随着IT部门对Gartner和思科等公司的预测所产生的炒作进行了大肆宣传,声称到2020年底,物联网将连接超过500亿台设备,突然间每个人都想成为物联网的一部分。嗯,难怪你也期待成为一个价值19万亿美元的行业的一部分。

物联网开源开发工具普及的原因是用户社区。该社区希望拥有利用消费者技术设备的开放市场,而不是由单一供应商主导。开源的另一个原因是提供一个生态系统,其中开发的 物联网设备和应用程序 可以无需麻烦和许多努力进行集成。最后开源意味着您的设备或应用程序可以支持众多供应商,因为您不会为任何特定供应商开发代码。

物联网(IoT)开源开发工具大多是由早期在物联网领域开发的开源社区开发的。您可以比以前更快地部署使用这些工具的 IoT应用程序 。如果您 开始构建您的第一个物联网应用程序, 那么这个开源工具指南专门为您服务。

在这里,我们列出了100个最广泛使用和可靠的 开源工具,用于开发物联网应用程序 。我已尽力包括物联网硬件平台,开发工具,软件,集成工具, *** 作系统和监控工具。

现在所有上面列出的开发工具都非常用户友好,但在您选择这些工具之前,我们建议您在此处查看完整的配置文件

开发任何物联网应用程序最重要的部分是选择合适的硬件平台。开始使用像Arduino Yun这样的简单平台来升级到UDOO,这完全取决于应用程序的资源需求。以下是可供选择的 最佳物联网硬件平台

我们建议您在从以下列出的任何软件中做出选择之前, 如何选择家庭自动化系统。

43 Eclipse SmartHome

44 Home Gateway Initiative (HGI)( Home Automation)

45 Ninja Blocks

46 openHAB

47 PrivateEyePi

48 RaZberry

49 The Thing System

许多首次使用 物联网的应用程序开发人员都 低估了选择正确的中间件的重要性。中间件是一种能够在所有不同组件之间实现顺畅通信的机制。

简单来说,“中间件”便于“互联网”和“物联网”之间的通信。

根据您的需要从以下选择正确的中间件:

选择合适的硬件平台后,就可以为您的应用选择合适的物联网 *** 作系统了。选择应基于应用程序级别,API要求和硬件需求。以下是可供选择的 顶级物联网 *** 作系统

物联网开源工具列表中的下一个是将有兴趣选择的集成平台。下面列出了一些目前可用的最佳物联网集成工具。

最后,您正处于为物联网应用选择正确的通信平台的阶段。以下是建议:

物联网开源资源

最后,如果您需要任何专门资源的参考,您可能想看看下面列出的那些。

我已尽最大努力找到这100个物联网开源工具和资源列表。如有更好的,请随时在下面留下您的评论。

物联网 (Internet of Things): 物联网顾名思义就是物物相连的互联网, 是基于互联网之上,使不可交流的物体与物体之间进行交流,而产生的过程,称之为物联网。

起初这一慨念是由美国提出来的。把任何物品通过物联网域名相连接,进行信息交换和通信,以实现智能化识别、定位、跟踪、监控和管理的一种网络概念。物联网从表面看来就是物物相连,其实背后却蕴藏着很多新兴技术和概念。物联网的理念最早起源于咖啡壶事件。在1991年,剑桥大学特洛伊计算机实验室的科学家们在工作时,需要下楼看咖啡是否煮好,常常都是空手而归。因此他们编写了一套程序,并且在咖啡壶旁边安装了一个便携式摄像机,利用计算机图像捕捉技术,传递到实验室的计算机上,工作人员可以很方便的看到咖啡是否煮好,这就是著名的“特洛伊咖啡壶”。

那么物联网是怎样让不可以交流的物体与物体之间通信呢?

这里就涉及到通讯设备了,就像我们人与人之间的通话是通过手机,而物与物之间就要通过下面这个设备进行通信。它的名字叫做“无线数传终端”,简称DTU 英文全名 (Data Transfer unit),

DTU就是通过串口,然后把原本不可以通讯的设备进行通讯,比如我们平时都知道的电表、水表等,它们本身是无法通讯的,通过DTU的串口电表链接起来,就可以把电表的数据上传的到监控中心,这样电力局就可以通过监控中心来查看每家每户的电表每个月的使用情况。

再比如我们都知道的共享单车,就是通过物联网技术--nb-iot模块(nb-iot为物联网专用网络),又叫nb-iot通信模块。原理是当用户手机扫描共享单车二维码时,该模块会发送信号到共享单车的平台,然后平台收到请求后再将数据下发到共享单车通信模块,告诉模块开锁,最终完成我们平时所看到的共享单车解锁。

将来万物互联是什么景象呢?大到 汽车 ,小到纽扣,都可能会被植入智能芯片。在互联网时代,我们会传照片、写评论、打分,到了物联网时代,这个过程的很大一部分都能自动完成。

按照数据采集功能分的话,有条码采集的手持终端,RFID读取的手持终端,NFC识读手持终端,DPM手持终端,指纹识别手持终端等等。这要看你需要哪个方面的数据采集功能了。我们超市之前用的是东大集成的,主要用来盘点货物,扫条码。

1建立项目:打开VC++60,建立一个基于对话框的MFC应用程序SCommTest(与我源代码一致,等会你会方便一点);
2在项目中插入MSComm控件 选择Project菜单下Add To Project子菜单中的 Components and Controls…选项,在d出的对话框中双击Registered ActiveX Controls项(稍等一会,这个过程较慢),则所有注册过的ActiveX控件出现在列表框中。 选择Microsoft Communications Control, version 60,,单击Insert按钮将它插入到我们的Project中来,接受缺省的选项。(如果你在控件列表中看不到Microsoft Communications Control, version 60,那可能是你在安装VC6时没有把ActiveX一项选上,重新安装VC6,选上ActiveX就可以了),
这时在ClassView视窗中就可以看到CMSComm类了,(注意:此类在ClassWizard中看不到,重构clw文件也一样),并且在控件工具栏Controls中出现了电话图标(如图1所示),现在要做的是用鼠标将此图标拖到对话框中,程序运行后,这个图标是看不到的。
3利用ClassWizard定义CMSComm类控制对象 打开ClassWizard->Member Viariables选项卡,选择CSCommTestDlg类,为IDC_MSCOMM1添加控制变量:m_ctrlComm,这时你可以看一看,在对话框头文件中自动加入了//{{AFX_INCLUDES() #i nclude "mscommh" //}}AFX_INCLUDES (这时运行程序,如果有错,那就再从头开始)。
4在对话框中添加控件 向主对话框中添加两个编辑框,一个用于接收显示数据ID为IDC_EDIT_RXDATA,另一个用于输入发送数据,ID为IDC_EDIT_TXDATA,再添加一个按钮,功能是按一次就把发送编辑框中的内容发送一次,将其ID设为IDC_BUTTON_MANUALSEND。别忘记了将接收编辑框的Properties->Styles中把Miltiline和Vertical Scroll属性选上,发送编辑框若你想输入多行文字,也可选上Miltiline。
再打开ClassWizard->Member Viariables选项卡,选择CSCommTestDlg类, 为IDC_EDIT_RXDATA添加CString变量m_strRXData, 为IDC_EDIT_TXDATA添加CString变量m_strTXData。说明: m_strRXData和m_strTXData分别用来放入接收和发送的字符数据。
5添加串口事件消息处理函数OnComm() 打开ClassWizard->Message Maps,选择类CSCommTestDlg,选择IDC_MSCOMM1,双击消息OnComm,将d出的对话框中将函数名改为OnComm,(好记而已)OK。
这个函数是用来处理串口消息事件的,如每当串口接收到数据,就会产生一个串口接收数据缓冲区中有字符的消息事件,我们刚才添加的函数就会执行,我们在OnComm()函数加入相应的处理代码就能实现自已想要的功能了。请你在函数中加入如下代码:
void CSCommTestDlg::OnComm()
{
// TODO: Add your control notification handler code here
VARIANT variant_inp;
COleSafeArray safearray_inp;
LONG len,k;
BYTE rxdata[2048]; //设置BYTE数组 An 8-bit integerthat is not signed
CString strtemp;
if(m_ctrlCommGetCommEvent()==2) //事件值为2表示接收缓冲区内有字符
{ ////////以下你可以根据自己的通信协议加入处理代码
variant_inp=m_ctrlCommGetInput(); //读缓冲区
safearray_inp=variant_inp; //VARIANT型变量转换为ColeSafeArray型变量
len=safearray_inpGetOneDimSize(); //得到有效数据长度
for(k=0;k<len;k++)
safearray_inpGetElement(&k,rxdata+k);//转换为BYTE型数组
for(k=0;k<len;k++) //将数组转换为Cstring型变量
{
BYTE bt=(char)(rxdata+k); //字符型
strtempFormat("%c",bt); //将字符送入临时变量strtemp存放
m_strRXData+=strtemp; //加入接收编辑框对应字符串
}
}
UpdateData(FALSE); //更新编辑框内容
}
到目前为止还不能在接收编辑框中看到数据,因为我们还没有打开串口,但运行程序不应该有任何错误,不然,你肯定哪儿没看仔细,因为我是打开VC6对照着做一步写一行的,运行试试。没错吧?那么做下一步:
6打开串口和设置串口参数 你可以在你需要的时候打开串口,例如在程序中做一个开始按钮,在该按钮的处理函数中打开串口。现在我们在主对话框的CSCommTestDlg::OnInitDialog()打开串口,加入如下代码:
// TODO: Add extra initialization here
if(m_ctrlCommGetPortOpen())
m_ctrlCommSetPortOpen(FALSE);
m_ctrlCommSetCommPort(1); //选择com1
if( !m_ctrlCommGetPortOpen())
m_ctrlCommSetPortOpen(TRUE);//打开串口
else
AfxMessageBox("cannot open serial port");
m_ctrlCommSetSettings("9600,n,8,1"); //波特率9600,无校验,8个数据位,1个停止位
m_ctrlCommSetInputMode(1); //1:表示以二进制方式检取数据
m_ctrlCommSetRThreshold(1);
//参数1表示每当串口接收缓冲区中有多于或等于1个字符时将引发一个接收数据的OnComm事件
m_ctrlCommSetInputLen(0); //设置当前接收区数据长度为0
m_ctrlCommGetInput();//先预读缓冲区以清除残留数据
现在你可以试试程序了,将串口线接好后,打开串口调试助手,并将串口设在com2,选上自动发送,也可以等会手动发送。再执行你编写的程序,接收框里应该有数据显示了。
7发送数据 先为发送按钮添加一个单击消息即BN_CLICKED处理函数,打开ClassWizard->Message Maps,选择类CSCommTestDlg,选择IDC_BUTTON_MANUALSEND,双击BN_CLICKED添加OnButtonManualsend()函数,并在函数中添加如下代码:
void CSCommTestDlg::OnButtonManualsend()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE); //读取编辑框内容
m_ctrlCommSetOutput(COleVariant(m_strTXData));//发送数据
}
运行程序,在发送编辑框中随意输入点什么,单击发送按钮,我们通过把RS232的23两口短接,在一台电脑上显示串口的收发数据!
最后说明一下,由于用到VC控件,在没有安装VC的计算机上运行时要从VC中把mscomm32ocx、msvcrtdll、mfc42dll拷到Windows目录下的System子目录中(win2000为System32)并再进行注册设置


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存