我是一位使用各种技术以及实时技术的经验丰富的开发人员。我想学习如何为不是计算机,平板电脑或任何人都知道的熟悉设备的设备进行开发。模块,nodeMCU开发板以及与物联网相关的更多硬件。我不知道该如何处理或入门。

假设我知道如何编码,该如何开始开发我的第一个IoT设备?

评论

“其他”设备具有处理器或微控制器以及通用计算机,唯一的区别在于它们的性能,可用内存等。

在我看来,“经验丰富的开发人员”和“如何开始”问题之间存在脱节。非常简单。查找与您今天相关的应用程序(供暖,照明,自动化)并实施它。遇到特定问题时,您应该在这里得到很好的答案-最有可能的答案将来自原始原型的改进或迭代。正如所提出的那样,这个问题实际上是在征求意见,没有明显正确的答案。

我进行了一个编辑,尝试进入问题的内核,但保留了一些原始文本。我建议OP @TheUnreal询问第二部分:“进入物联网是否有必要成为一家足智多谋的公司,或者个人在这个世界上也能做到吗?”作为一个单独的问题,我认为它仍然是一个相关的问题。

#1 楼

这是一个非常广泛的问题,但是我将尝试给出一些一般性的指示,希望对其他人以及您都有用(因此,如果我发布您已经知道的内容,请接受我的道歉)。

如果您要询问读取传感器,这是遥测,不一定是IoT。我编写了许多项目,其中一个独立的PC读取并显示一些测量结果。

如果您还想控制所连接的硬件,那就是SCADA。同样,它不一定必须连接到互联网。

这是SCADA的示意图,总体上给物联网带来了很好的感觉。请注意,图中的PLC是启用IoT的设备的传感器和控件。



您可以在“硬件建议”中要求传感器和控制器的硬件推荐。 >
一旦有了一些代码,就可以在Stack Overflow上获得有关问题的建议。

通常,工业IoT涉及客户端/服务器模型,以及客户端测量/控制硬件。设备并向服务器报告/从服务器接收命令。该服务器通常还具有数据库,并允许生成管理和警报报告(并可以指示远程硬件根据接收到的数据重新配置/关闭)。那是介绍。现在,让我们开始动手。

如果您想了解编码的精髓,请查看套接字,并了解TCP和UDP之间的区别。几十年来,大多数棘手的东西都包装在库中,最好建议您阅读RESTful服务。有许多免费的在线教程,课程和视频,具体取决于您的语言。 C是一种传统的嵌入式语言,其中一些使用C ++,但是当然,请使用您所知道/熟悉的任何语言。 Python非常受欢迎且易于学习,并且是Raspberry Pi的推荐语言。

就个人而言,我更喜欢编译语言来解释,因为更容易发现错误,但是选择完全取决于您。只需确保它对通过USB,以太网和-在行业中仍然非常普遍-串行端口访问外围设备具有良好的支持。对于服务器端,全球90%以上的服务器仍在运行PHP。但是,使用NodeJS的人越来越多,主要是为浏览器应用程序编写代码的人,目前只能使用JavaScript来完成,并且不想学习两种语言。我不建议开发基于浏览器的IoT应用程序,因为浏览器代码访问文件系统和外围设备受到限制(不过,如果您要开发智能手机,我会提到Cordova之类的东西)。

开始之前,我建议您使用Raspberry Pi(使用Python或C语言编码)。这只是一个示例,但并不昂贵,并且包含陀螺仪–角速率传感器:+/- 245/500 / 2000dps加速度计
线性加速度传感器:+ / -2 / 4/8/16 g
磁力计-磁性传感器:+/- 4/8/12/16
高斯气压计:260 – 1260 hPa绝对范围(精度取决于温度和压力,在正常情况下为+/- 0.1 hPa)
温度传感器(在0-65摄氏度范围内,温度精确到+/- 2摄氏度)
相对湿度传感器(在温度为+/- 4.5%的情况下) 20-80%rH范围,在15-40摄氏度范围内精确到+/- 0.5摄氏度)
8x8 RGB LED矩阵显示器
5键小操纵杆>
这将使您可以收集一些数据并将其报告给服务器。您也许可以在线找到免费服务来接收和显示您的数据。我在其他S.O网站上看到过,但是忘记了。

但是,您可能想对自己的服务器进行编码。我会推荐PHP作为编程语言。对于Linux,LAMP(Linux,Apache,Mysql和PHP)非常适合您。对于Windows,您必须安装WAMP(Windows…等)。

您可以选择。我在工业应用中使用XAMPP已有十多年了。您不必使用Mysql,Sqlite也可以使用(对于6年前我自己的S.O问题,“ Sqlite或MySql?如何决定?”使用无阴影的插件)。您还必须了解CRUD。

基于从客户端/传感器接收到的数据,您可能想要发送回一条命令,甚至只是一个简单的命令(显示:“温度过高”

您可能想实时发出警报(发送电子邮件指出温度过高)。

而且,您可能还需要考虑生成报告。从显示接收数据的表格开始。考虑一下图表,或者更奇特的东西。添加一个选项以导出到逗号分隔值(CSV),允许最终用户将数据导入到电子表格中以进行进一步的分析和处理。在PHP中完成此操作,但是经过几十年的发展,现在我开始在浏览器中做很多报表工作。

有关一般原理,请概述单页应用程序和AJAX。我个人做了很多研究,选择Google的AngularJS作为我的编程语言(有很多教程和强大的支持),但是您可以随意使用纯JS,Jquery等。

如果您也决定对浏览器中的东西进行编码,并且最好在服务器端使用NodeJ,那么您只需学习一种新的编程语言。 />选择太多?抱歉:-(

我希望这能给您一些建议,但是请随时提出问题,并让我知道这里是否缺少任何常规建议。

评论


谢谢Mawg,您所说的大部分内容我都已经知道了,而且不是问题的困扰,我从事PHP和Javascript以及corodva的工作已有多年了。我想我将开始购买UNO R3,然后看看如何从那里开始。

–虚幻
17年2月7日在10:40

我开始写作,只是无法停止:-)我希望它能对其他人有所帮助。我不太了解科尔多瓦。可以很好地访问'电话硬件,石灰照相机,SIM卡,倾斜传感器,但是可以访问串行端口吗?因为那在工业上经常使用;您可以使用USB到串行转换器,这是我们用于笔记本电脑的方式,但是Cordova可以通过USB发送数据吗?和以太网?继续 ...

–莫格说要恢复莫妮卡
17年2月7日在12:43

...您知道JS,但我不建议您在嵌入式处理器上使用它。您可以,但这肯定不正常。也许是时候选择一些Python或C了?或者,也许您是说UNO R3 <->服务器<->浏览器?如果您已经知道的话,请坚持使用Arduino。我改用R Pi,但这只是我个人的喜好。 。您有学习计划吗?提示,提示…iot.stackexchange.com/questions/675/…:-)

–莫格说要恢复莫妮卡
17年2月7日在12:43

#2 楼

作为经验丰富的开发人员,您具有理解逻辑,读取和编写代码,解决问题以及其他一些重要技能的能力。您可能根本不了解基本的电子技术,以及从在小型设备上运行的台式机获取代码的艺术。表示您放弃得太早。例如,人们在推荐ESP8266和NodeMCU时并未想到需要正确的选择,需要将芯片安装在开发板上,必须在其上安装软件,需要将其连接到某物上,然后您就可以运行JavaScript。这是您需要的许多不同技能,您可以放弃其中的任何一个阶段。

我的建议是从Arduino开始。 Arduino在制造商社区中与众不同的地方在于,将Arduino插入USB端口有多么容易,并且为您整理了编译,构建,部署链。您可以编写一些代码,并快速使某些LED闪烁。

我还建议您从正式的Arduino入门套件开始。尽管非常简单,但操作说明却很容易,您会得到一堆有用的有用电子零件(面包板,跳线,LED等)。 Arduino的基础。在尝试任何复杂的事情之前,首先要对电子学和动手做事有热情。如果您发现电子设备有趣并且想做更多事情,请坚持使用Arduino,并获得更复杂的套件。我买了BOE Shield-Bot机器人。它可能不是最好或最便宜的机器人,但是有一个非常好的教程,其中详细介绍了如何控制伺服器等。您还将获得更多有用的信息。

如果您能做到这一点,要么放弃并返回服务器端软件,要么购买更多的钻头,烙铁,更多的板子和组件。很快,您将像我们其他人一样,带着破碎的梦境降落在抽屉里。它不只是一台电脑,更不是一台东西,并且不具有理解过程初期所需的重要功能(例如模拟输入)。您很快就会超过Arduino(它很难很容易地连接到Internet),但这是查看它是否是您喜欢的东西的好地方。

评论


这是最接近我的问题的答案。谢谢。

–虚幻
17年2月7日在21:35

#3 楼

我将继续回答您的第一个问题。

如果您只想学习,我可以向您推荐一些有关物联网的书,但我想您可以自己搜索。如果这很清楚,那么我建议您开始自己的小项目,这是您学习最好的方法,面对现实中的问题。

您需要确定要创建的内容。
这里有一些灵感和很酷的想法可以开始:

Arduino项目->微控制器

Raspberry Pi项目->微处理器(功能更强大)

混合组件

一旦您有了想要的想法这样做,那么您需要为您的项目提出要求。微控制器,传感器,执行器,通信协议等。

您可以看到最受欢迎的设备是Arduino,Raspberrypi和所有其他亲戚,beaglebone黑色,洋葱等,
那里还有更多,区别在于价格,与其他传感器的兼容性以及受欢迎程度。流行的版本兼容性更高,并且在论坛上具有更多的支持。

我们会根据您的项目帮助您解决需求。
祝你好运!

评论


我已经有了一个主意,但是我想在进入这个世界之前先体验一下这个世界。我想我会立即购买Uno R3并发布问题。

–虚幻
17年2月7日在10:42

Arduino Uno非常适合控制物理项目,但是适应网络协议的成本很高,因为您基本上必须添加另一个更好的微控制器或计算机才能这样做。有时,您会找到一个可以同时完成这两个部分的部分,而另一些时候,您会遇到一个面向网络的系统,该系统将电气控制任务委托给诸如Arduino之类的东西

–克里斯·斯特拉顿(Chris Stratton)
17年2月7日在19:20

#4 楼

其他人则专注于您问题的第一个方面;我将专注于后者。您问是否只有任何人可以进入物联网,或者您是否必须成为拥有大量资源的大公司。

如果浏览智能家居标签,您会发现有些物联网设备具有所有服务器端已经为您完成。有很多“几乎任何人”都可以买到的物联网设备,包括Nest cam,恒温器等,Amazon Echo,Google Home,智能烤箱,冰箱等。
许多新车都有资格作为可远程感测或控制的对象……尽管可能还不是受控的部分。 :)

这会引出您的第一个问题的答案:


我如何开始练习开发我的第一个IoT设备?


不必从开发开始:您可以从更简单的事情开始。如果您想进入它的发展方面,可以像某些人建议的那样简单地尝试一下,但是您确实可以选择从简单开始,逐步进入更复杂的领域。 >

评论


还有什么比iot.stackexchange.com/questions/675/…更好的起点?

–莫格说要恢复莫妮卡
17-2-7在17:56