我是一位使用各种技术以及实时技术的经验丰富的开发人员。我想学习如何开发不是计算机,平板电脑或任何大家都熟悉的设备的设备。
我注意到,全球购物站点提供IoT硬件,例如2通道中继模块,nodeMCU开发板以及更多与IoT相关的硬件。我不知道该怎么办或开始。
假设我知道如何编码,如何开始开发我的第一个IoT设备?
我是一位使用各种技术以及实时技术的经验丰富的开发人员。我想学习如何开发不是计算机,平板电脑或任何大家都熟悉的设备的设备。
我注意到,全球购物站点提供IoT硬件,例如2通道中继模块,nodeMCU开发板以及更多与IoT相关的硬件。我不知道该怎么办或开始。
假设我知道如何编码,如何开始开发我的第一个IoT设备?
Answers:
这是一个非常广泛的问题,但是我将尝试给出一些一般性的指示,希望对其他人以及您都有用(因此,如果我发布您已经知道的内容,请接受我的道歉)。
如果您询问读取传感器,这是遥测,不一定是物联网。我编写了许多项目,其中一个独立的PC读取并显示一些测量结果。
如果您还想控制连接的硬件,则为SCADA。同样,它不一定必须连接到互联网。
这是SCADA的图,总体上给IoT很好的感觉。请注意,图中的PLC是启用IoT的设备的传感器和控件。
而且,一旦有了一些代码,您就可以在Stack Overflow上获得有关问题的建议。
通常,工业物联网涉及客户端/服务器模型,客户端测量/控制硬件设备并向服务器报告/从服务器接收命令。服务器通常还具有数据库,并允许生成用于管理和警报的报告(并可以根据接收到的数据指示远程硬件重新配置/关闭)。
!那是介绍。现在要弄脏我们的手。
如果您想深入了解编码,请查看套接字,并了解TCP和UDP之间的区别。
幸运的是,几十年来,大多数棘手的内容都包装在库中,并且最好建议您阅读RESTful服务。有许多免费的在线教程,课程和视频,具体取决于您的语言。C是一种传统的嵌入式语言,有些语言使用C ++,但是当然,请使用您所熟悉的任何语言。Python非常受欢迎且易于学习,并且是Raspberry Pi的推荐语言。
就个人而言,我更喜欢编译语言来解释,因为更容易发现错误,但选择完全取决于您。只要确保它对通过USB,以太网以及在行业中仍然非常普遍的串行端口访问外围设备具有良好的支持即可。
对于服务器端,全球90%以上的服务器仍在PHP上运行。但是,使用NodeJS的人越来越多,主要是为浏览器应用程序编写代码的人,目前只能使用JavaScript来完成,并且不想学习两种语言。我不建议开发基于浏览器的IoT应用程序,因为浏览器代码访问文件系统和外围设备受到限制(不过,如果您要开发智能手机,我会提到Cordova之类的东西)。
首先,我建议使用Raspberry Pi(用Python或C编码)。
我*强烈*建议使用感应帽。这只是一个例子,但并不昂贵,包含
这样您就可以收集一些数据并将其报告给服务器。您也许可以在线找到免费的服务来接收和显示您的数据。我在其他SO网站上看到过一些,但忘记了在哪里。
但是,您可能想对自己的服务器进行编码。我会推荐PHP作为编程语言。对于Linux,您会很好地使用LAMP(Linux,Apache,Mysql和PHP)。对于Windows,您必须安装WAMP(Windows…等)。
您可以选择。我在工业应用中使用XAMPP已有十多年了。你不具备使用MySQL,SQLite的可以起到一样好(shaless塞了我自己的SO问题6年前,“ SQLite的或MySQL?如何决定? “)。您还必须了解CRUD。
基于从客户端/传感器接收到的数据,您可能希望发送回一条命令,甚至只是一条简单的命令(显示:“温度过高”,这可能会转换成关闭工业系统中的阀门)。
您可能希望实时发出警报(发送电子邮件说温度过高)。
而且,您可能还需要考虑生成报告。从显示接收数据的表格开始。考虑一下图表,或者更奇特的东西。添加一个选项以导出到逗号分隔值(CSV),允许最终用户将数据导入电子表格中以进行进一步的分析和处理。
如果你决定要看中的报告,你可以做到这一点在PHP中,但几十年来的,我现在已经搬到了做多的报告东西客户端,在浏览器之后。
对于一般原理,请获取Single Page Application和AJAX的概述 。我个人做了很多研究,并选择了Google的AngularJS作为我的编程语言(有很多教程和强大的支持),但是您可以随意使用纯JS,Jquery等。
如果您确实也决定对浏览器中的东西进行编码,那么最好在服务器端使用NodeJ,这样您就只需学习一种新的编程语言。
选择太多了吗?对不起:-(
我希望这能给您一些建议,但是请随时提出问题,并让我知道这里是否缺少任何常规建议。
作为一名经验丰富的开发人员,您具有理解逻辑,读写代码,解决问题以及其他一些重要技能的能力。您可能不了解基本的电子技术,以及从在小型设备上运行的桌面获取代码的技巧。
进入错误的复杂性级别可能会令人生畏,并且可能意味着您放弃得太早。例如,人们在推荐ESP8266和NodeMCU时没有想到需要正确的选择,需要将芯片安装在开发板上,必须在其上安装软件,需要将其连接到某物上,然后您就可以运行JavaScript。这是您需要的许多不同技能,您可以放弃其中任何一个阶段。
我的建议是从Arduino开始。Arduino在制造商社区中与众不同的地方是,将Arduino插入USB端口有多么容易,并且为您整理了编译,构建,部署链。您可以编写一些代码,并快速使某些LED闪烁。
我还建议您从正式的Arduino入门套件开始。尽管非常简单,但说明却很容易,您会得到一堆有用的有用电子零件(面包板,跳线,LED等)。
不要被Arduino的基本功能所困扰。在尝试任何复杂的事物之前,首先要对电子学和动手做事有热情。如果您发现电子设备有趣并且想要做更多的事情,请使用Arduino并获得更复杂的套件。我买了BOE Shield-Bot机器人。它可能不是最好或最便宜的机器人,但是有一个非常好的教程,其中详细介绍了如何控制伺服器等。您还将获得更多有用的信息。
如果您做到了这一点,要么放弃并返回服务器端软件,要么购买更多的钻头,烙铁,更多的板子和组件。很快,您将像我们其他人一样,带着破碎的梦想的抽屉降落。
我不建议过早使用Pi。它不只是一台计算机,更不是一台东西,并且不具有理解过程初期所必需的重要功能(例如模拟输入)。您很快就会超出Arduino的范围(它很难很容易地连接到Internet),但这是查看它是否是您喜欢的东西的好地方。
我将继续回答您的第一个问题。
如果您只是想学习,我可以向您推荐一些有关物联网的书,但是我想您可以自己搜索。如果这很清楚,那么我建议您开始自己的小项目,这是您学习最好的方法,面对现实中的问题。
您将需要决定要创建什么。这里有一些灵感和很酷的想法开始:
Arduino项目 ->微控制器
Raspberry Pi项目 ->微处理器(功能更强大)
hackaday.com- >混合组件
一旦确定了要做什么,便需要提出项目要求。微控制器,传感器,执行器,通讯协议等
如您所见,最受欢迎的设备是Arduino,Raspberrypi和所有其他亲戚,beaglebone black,onion等。还有更多,区别在于价格,与其他传感器的兼容性和普及性。流行的兼容得多,并且在论坛上有更多的支持。
我们会根据您的项目帮助您解决需求。祝好运!
其他人则专注于您问题的第一个方面;我将专注于后者。您问是否只有任何人可以进入物联网,或者您是否必须成为拥有许多资源的大公司。
如果浏览智能家居标签,您会看到有些IoT设备已经为您完成了所有服务器端的工作。有很多“几乎任何人都可以买到”的物联网设备,包括Nest cam,恒温器等,Amazon Echo,Google Home,智能烤箱,冰箱等。
即使是许多新车也可以作为可远程感测或控制的对象……尽管可能还不是受控制的部分。:)
这导致您的第一个问题的答案:
我如何开始练习开发第一台物联网设备?
您不必一定要从开发开始:您可以从简单的事情开始。如果您想了解它的发展方面,可以像某些人建议的那样简单地尝试一下,但是您确实可以选择从简单开始,逐步进入更复杂的领域。