物联网正以前所未有的速度肆虐。在我们向您介绍物联网(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个物联网开源工具和资源列表。如有更好的,请随时在下面留下您的评论。
注册账号后,你将有一个唯一的id号,或api号什么的,自己去平台找一下,不同平台描述不同。
然后根据平台的接口文档,搭建你的开发环境。这个一般使用单片机吧?或arduino?平台有对应的程序。当然单片机环境必须要有网络模块或wifi模块来联网。
在平台中建立你的设备,传感器等,建立后有对应的编号等,在程序中要用。
最后,完善程序,调试传感器,调试上传,平台就能收到数据。arduino机器人属于什么行业,机器人及智能装备属于物联网产业。 在供给侧和需求侧的双重推动下,物联网进入以基础性行业和规模消费为代表的第三次发展浪潮,5G、低功耗广域网等基础设施加速构建。 数以万亿计的新设备将接入网络并产生海量数据,人工智能、边缘计算、区块链等新技术加速与物联网结合,应用热点迭起,物联网迎来跨界融合、集成创新和规模化发展的新阶段。 随着物联网技术创新、产业发展、应用示范等一批项目的逐步落实,机器人、智能装备、智慧城市等领域的物联网应用已经初步具备了规模化的基础。小小云提示:教程作者 caterpillar是来自台湾的programmer(kinda),所以在一些专有名词的使用上会和我们这边使用的不太一样啦,不过作者也有标注出英文名称,大家自行转换哟(⁎⁍̴̛ᴗ⁍̴̛⁎)
步进电机这东西的学问真不少,就结论而言,控制步进电机最好的方式,就是找到与手边步进电机可以配合的程式库来使用。Arduino IDE 不是有 Stepper 程式库可以使用吗?嗯!它是可以用一些步进电机上,不过,不见得能完全发挥步进电机应有的控制能力,控制某些电机则会有些问题,正巧,我手上这颗 28BYJ-48 5V DC 就是!… XD
在 Arduino 官方网站的 Arduino – Stepper 文件中,谈到了步进电机的两个基本分类:单极步进电机(Unipolar Stepper)与双极步进电机(Bipolar Stepper)。那么就从这两个分类开始认识!
单极步进电机是提供单一方向的电流来驱动电机,例如:
在上图中,可以看到线圈各有一个共同接点,通常接电源,只要改变其他接点的电压讯号,就可以产生电流,而电流都是固定的方向,而由于有四个线圈,这样的电机被称为四相(Phase)电机。
双极步进电机的电流则是双向的,例如:
这类电机在驱动时,需要改变电流的方向来达到不同激磁的效果,而由于有两个线圈,这样的电机被称为二相电机。
电机的相数除了二向、四相之外,还有单相、三相、五相等,这是为了达到不同程度的控制,电机的控制是运用电流通过线圈会产生磁场,并与另一永久磁铁产生作用,来达到转动的效果,以四相步进电机为例:
如果做为定子的线圈激磁后,面对转子一面是 S 极,就会吸引转子的 N 极,只要依顺序对各相线圈激磁,就会产生转动效果,像上面这种一次激磁一个线圈的方式,称为一相激磁,因为每次只激磁一个线圈,电力消耗小,不过缺点是振动大、转距小。
常见的激磁方式是二相激磁,顾名思义,一次激磁两相,由于有两相用以吸引住转子,因此振动小、转距大:
也有一相、二相轮流激磁,称为一/二相激磁,顺序其实就是上面两张图的结合:
可以看出这种激磁方式,每次转动的角度为一相或二相激磁的一半,可以得到更精确的控制。
步进电机需要比较高的电压或电流驱动,在 Arduino 官方网站的 Arduino – Stepper 文件中,有 Unipolar Steppers 及 Bipolar Steppers 两个页面,介绍了如何连接出能驱动步进电机的电路,分别有可以接成两个控制脚位与四个控制脚位的方式。
其中会用到的 IC 是达灵顿阵列(Darlington Array),如先前〈mBlock & Arduino(15)认识晶体管与继电器〉谈到的,若想运用晶体管提供更大的电流来驱动电机,可以使用两个或多个晶体管的组合,达灵顿阵列中有多组达灵顿电路,以 ULN2003APG 来说,里头有七组达灵顿电路。
如果不想那么麻烦地自己接电路,那么可以依使用的步进电机来搭配现成的步进电机驱动模组:
这个步进电机驱动模组,左上四个脚位可以接到 Arduino 的数位输出脚位,下方有 +、- 两个脚位,分别接 Vcc 与 GND,右上白色插槽用来连接我手边这颗五线四相的 28BYJ-48 5V DC,上图步进电机驱动模组中的 ULN2003APG,可搭配 28BYJ-48 5V DC 这个步进电机:
28BYJ-48 5V DC 这个步进电机,其中红线是接 5V 电源,各线的连接是:
如果搭配 ULN2003,要对 28BYJ-48 5V DC 步进电机做激磁,那么 ULN2003 的输入脚位 4、3、2、1,提供电位以进行激磁的顺序为 …
一相激磁:1000-0100-0010-0001
二相激磁:1100-0110-0011-1001
一/二相激磁:1000-1100-0100-0110-0010-0011-0001-1001
如果想要体验一下步进电机转动,那么可以简单地如下实作,脚位 D8 到 D11 分别对应至澄、黄、粉、蓝,例如一相激磁:
执行程式之后,你可以见到步进电机缓慢的转动,将顺序改为 S4 到 S1,就会看到电机缓慢的逆转,这边没有设任何的工作时间延迟,这是因为 mBlock 执行速度的关系,直接使用 Arduino 积木方块,只能是这个速度了。
类似地,以下是二相激磁:
以下是一/二相激磁:
如果想更进一步试试步进电机控制,可以使用 Arduino IDE 中的 Stepper 范例,它们使用到 Arduino 的 Stepper 程式库,不过,如果你手边是 28BYJ-48 5V DC 步进电机,就要注意一下了,以 stepper_oneRevolution 范例为例:
直接执行的话,你的电机只会有一个方向的转动,无法逆转,这是因为 28BYJ-48 5V DC 的接线顺序,与 Stepper 程式库预期的不同,如果你的 28BYJ-48 5V DC 的接线顺序由澄、黄、粉、蓝分别是接至 D8 到 D11,那么有两个方式可以解决,一个方式是在 Arduino 上将 D9 与 D10 接线对调,另一个方式是在建立Stepper时,9与10对调:
再来是stepsPerRevolution必须设定为你的电机实际上一圈会有多少步,如果是 28BYJ-48 5V DC 的话,查询到的规格上写着,步进角为5625 / 64,因此这电机转一圈需要的步数是360 / (5625 / 64),也就是4096步,不过,这是一/二相激磁才会有的步数,如果你查看 Stepper 程式库原始码,会发现,它是采二相激磁的实作方式,因此,使用这个 Stepper 程式库,你实际上要设的stepsPerRevolution必须是2048步。
不过,如果你改了脚位也将stepsPerRevolution设为2048,步进电机还是不会动,这是因为 Stepper 程式库中setSpeed函式的关系:
这是以毫秒为单位来设置step_delay,如果你设为2048步,那number_of_steps就是2048,那么step_delay就会是29296875 / whatSpeed,如果whatSpeed设为60,那结果就会是048828125,然而step_delay是unsigned long,也就是实际上结果只会储存0,那么step函式中millis() - this->last_step_time >= this->step_delay该行,就会一直是成立的,也就是完全没给工作时间,这么一来电机就不会动了。
因此,如果你直接使用 Stepper 程式库,设为 2048 步之后,那么速度就不能设太高,例如以下就可以正常正反转了:
如果你会使用 Arduino 官方语言的话,改写 Stepper 应该不是难事,可以试着实作一/二相激磁,并令其能支援 28BYJ-48 5V DC 的4096步与高转速,懒的话,网路上是也有人已经实作或改写好的版本,不过,想要精确控制的话,重点还是在于,认识你的步进电机与程式库!
感谢CodeData用户: caterpillar 的贡献 著作权归作者所有
整理:宁波家电物联网云平台,中科极动云
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)