启用Internet的天气显示应使用哪种微控制器和编程语言?


11

我是物联网的新手,想开始我在物联网的职业。当我在Google上搜索物联网初创公司时,我发现了许多博客。我发现了IoT中使用的语言,例如C#,Java,Node.js,以及Arduino,Raspberry Pi,Intel,Netduino等微控制器。

当我刚接触物联网时,我不知道哪种语言是最好的,以及我用于启动的微控制器是什么?

对于基本的启动公司,我想创建一个具有显示屏的设备,该显示屏可以显示我的手机所给定位置的天气情况。因此,这可能是一个涵盖硬件,Internet和软件的启动示例。

该设备将由电池供电,小型数字显示屏,并且具有成本限制。

我应该使用哪种微控制器和语言来满足显示天气的要求?


1
这似乎比以前的问题要好得多。更着重于特定用例。因此,我们可以给您一个很好的答案,这里有几个问题:您的设备将由电源供电还是由电池供电?您希望显示器多大?有费用限制吗?
Aurora0001

2
同样,对于选择微控制器,这个答案确实是很棒的。
Aurora0001

1
谢谢@ Aurora0001,我在您评论时添加了更多详细信息,请检查。
Jigarb1992

1
挑剔:Arduino是一个微控制器。Pi是一台完整的计算机,Pis,Beaglebones和Gumstix之类的东西通常称为“单板计算机”(SBC)或“模块计算机”(COM)。与Pi不同,Arduino不运行操作系统-Arduino只是Atmel ATmega ?? 8,位于一个易于使用的小巧板上,并带有便捷的IDE。Pi是具有ARM Cortex-A53微处理器内核的实际计算机。举例来说,您可能会使用Pi进行所有网络连接并显示输出,并使用Arduino进行复杂的控制来完成诸如读取按钮,RFID标签之类的简单工作。
杰森·C

1
电池供电的设备:您的意思是像智能手机/智能手表(锂电池,两次充电之间的寿命为几天),还是像时钟(AA不可充电,寿命为几个月)?如果您选择后者,那将推动您的设计并严重限制您的选择。
pjc50

Answers:


5

就个人而言,我会为此选择Raspberry Pi 3B,尽管它可能比您真正需要的强大得多。我建议这样做的原因是:

  • 它具有内置的802.11 b / g / n无线局域网,因此您可以将其连接到Wi-Fi网络,而不是通过以太网电缆

  • 它还支持蓝牙,因此您也许可以通过蓝牙连接到手机。

您还需要一个显示单元,并且方便地,有一些专为Raspberry Pi设计的显示器,例如4DPI-32触摸屏。您应该只可以将显示器直接插入40针接头连接器上:

40针 Raspberry Pi基金会CC BY-SA 4.0。我知道从技术上讲这是Pi 2B,但是GPIO在3B上是相同的。

对于这种情况下的编程方面,您所需要做的就是从某个地方的API获取天气,并将其作为GUI程序显示在屏幕上。显示器的功能就像Pi的任何HDMI输出一样,因此您不需要做任何特殊的事情。对于Python,您可以使用Tkinter创建基本的UI,或者甚至可以根据自己的喜好选择用HTML / CSS / JS编写Web应用程序。您可以免费使用OpenWeatherMap API;该文档是每个API端点的链接。

在这一点上,这取决于您。这里最好的语言是您最熟悉的语言。如果你喜欢AngularJS,只需创建一个HTML页面,获取与棱角分明的天气(或使用图书馆像这样帮助你),并使用一些CSS来使它看起来不错显示。

为了真正获得位置,我怀疑只允许用户在Pi的触摸屏上键入他们的位置会更容易。发送电话的位置可能会有些困难,尽管您可以进行很多研究,但是仍然可以找到一些东西。

对于电池使用,Raspberry Pi Stack Exchange上的这个问题值得一读。


1
可以直接使用即即用的Vilros Pi套件,并节省大量烦人的初始设置。也是题外话,但对于调试,我发现它(以及如果您搜索该站点时它的加固版本)非常有用。一次性使用很贵,但是如果您一直使用它就值得。通过HDMI-> VGA适配器可以很好地工作。
杰森·C

1
不会。首先是因为对易碎的SD卡的依赖,其次是因为您不能真正量产。圆周率可能会为您提供概念证明,但随后您必须围绕可以在产品中实际使用的内容进行重新设计。此外,对于任何严重的使用情况,它基本上都是完全不会启动电池的。
克里斯·斯特拉顿

@ChrisStratton:对于像OP这样的初学者,我认为RPi似乎是一个可行的选择。是的,对于大规模生产而言,这不是理想的选择,但我专注于提供一种易于访问且易于修改的想法;POC正是这里所需要的。对于业余爱好者来说,我认为SD卡并不是真正值得关注的问题。在批量生产中,情况有所不同,但从一个起点来看,我认为这应该足够好。我愿意接受任何提出更好方法的建议。
Aurora0001

除了这些问题使产品无法使用的方式外,海报的电池电量要求从一开始就将其排除在外。由于pi是机顶盒架构,没有移动设备的电源管理,因此使用任何合理的电池都不会花费数小时以上的时间。
克里斯·斯特拉顿

10

洋葱欧米茄2号称是最小的Linux计算机世界。该说法可能并不完全正确(例如,请参见下面的vocore2),但根据我的经验,它必须是最小的3.成本仅为5美元的内置wifi,专门针对IoT设计。在他们的网站上有一些屏蔽。全新产品,似乎拥有强大而活跃的社区。Kickstarter支持者获得了该设备。值得一试。

另外,如评论中所指出的,请查看vocore2,它实际上似乎比洋葱小,并且便宜4美元。它目前由IndieGoGo资助,预计发货日期为2017年2月(撰写本文时为下个月)。还看起来有各种可用的坞站,并且具有内置的wifi路由器,这有点酷。

前几天,我只是碰巧遇到的,没有任何经验。但是请注意,由于其新颖性,一些你可以用来使用可能无法使用的Linux软件包的尚未(例如,我知道一个事实,在这写的GStreamer包的时间是不可用的洋葱尽管gstreamer与您无关,但您仍必须从源代码构建。

像其他答案所说的那样,Pi缺少这些,它是一款很棒的低成本设备。不要忘记Raspberry Pi Zero,这是另一台售价5美元的微型计算机,与洋葱差不多。它没有较大的Pi拥有的所有端口,但是如果您不介意,或者如果您只想在最终产品中使用3进行开发,而在其最终尺寸中使用0,则是另一个值得考虑的选择。

其他一些昂贵的设备包括:

  • BeagleBone Black(由于成本低廉,这是我会认真考虑的唯一Pi替代品)。
  • Gumstix($$$,但我们一直在项目中始终使用它们的大小)
  • Udoo($$$,但值得一提)
  • Toradex Colibri(有点难于使用,但是我们也使用了很多这些,比Gumstix更好的规格,如果您希望使用Windows工具链和几乎为零的启动时间,则可以选择运行具有即时启动功能的Windows CE。 )。

还要注意,Vilros制作了一些很棒的 Pi入门工具包(在亚马逊上更便宜),这些工具包已经预先打包了操作系统,可以工作Wifi,散热器,外壳,开箱即用,节省了大量的繁琐设置工作。如果您使用Pi路线,也值得一试。Vilros还曾经制作过Beaglebone入门套件,但似乎在他们的网站上不再可用,但是如果您搜索Newegg / Amazon / etc。您仍然可以找到可用的库存。


顺便说一下,一个Arduino(或另一个微控制器,与上面列出的功能强大的单板计算机形成对比)可能不是您想要的。Arduino只是Atmel ATmega168 / 328。它不运行操作系统,除了您要执行的操作外,它实际上不执行任何操作。因此,例如,对于联网,您需要以太网防护罩,该防护罩随附一个完整的以太网控制库,我相信它提供了TCP和UDP堆栈(我从未用过,只是浏览他们的站点),当然占用了一个有限的代码空间。

然后,您必须构建您的天气客户端以及所有这些内容,并且必须全部以32KB或更少的大小进行。与在Pi / Beaglebone / Gumstix / Colibri / etc上进行Linux / Windows开发相比,这是一种不同的开发风格。有点超出此答案的范围。

Arduino的什么好这里是作为一个附加到主系统做硬件接口的东西,喜欢读的压力传感器,按钮,控制基本的电子元件,那种事。

嵌入式系统开发与您在Pi上进行的桌面开发完全不同,我真的不建议您尝试仅使用Arduino来完成此工作,尤其是没有经验的人。


1
目前仍在运行OpenWRT(Linux)的vocore2体积更小,更便宜($ 4)
Matija Nalis

2
这个开源故事是什么?
肖恩·霍利哈内

@SeanHoulihane很好的问题。我看看是否可以找到,他们在Kickstarter页面和主页上都缺少这方面的信息。在Matija的vocore2上面的评论之后,实际上我对洋葱族的“世界上最小的”主张感到有些iff异,但是也许他们可以用开放的架构来赎回自己(以我卑微的眼光)。
杰森·C

3
记住,人们可以在Kickstarter上要求任何权利……
Sean Houlihane

@SeanHoulihane哦,千万不能让我开始了我的Kickstarter的仇恨言论,嘿。抵制,抵制...尽管如此,Kickstarter声称除了开放性,Omega和vocore都是看起来很酷的新设备。在低成本方面,我们也有RPi Zero。
Jason C

6

我建议采取逐步的方法来找出您应使用的语言和控制器。您需要的微控制器将取决于您要执行的任务。从理论上讲,该任务将设置一些适当的微控制器可以满足的要求,因此您应根据这些要求选择微控制器。

  1. 定义设备的用户故事。您对此有何期待?您希望它具有什么功能?

    在您的情况下,它已经由您定义:

    电池供电的设备,应该能够从智能手机接收输入并在其自己的显示器上显示所请求位置的天气信息。

  2. 现在,第1步为您提供一些开始。您可以在框图级别上决定所需的硬件。

    当然,您将需要显示器以及可能的WiFi或蓝牙模块才能与您的手机通信。访问全球天气数据库可能需要互联网连接。您应该使用MCU或WiFi模块来控制这两者(您需要Internet,以便可以排除蓝牙)才能控制显示并运行软件。

  3. 您可以开始寻找特定零件。您可以先确定要使用的电池,然后再考虑潜在部件的功耗。我在上一个答案中总结了选择MCU的一般过程。基本上应该在这里做同样的事情。找到便宜的显示器,它可能会使用SPI或I2C接口进行通信。然后,您可以搜索具有SPI / I2C且具有集成MCU的Wifi模块,也可以搜索独立的MCU和WiFi模块。单个WiFi模块可能会使用UART进行通信,因此单个MCU应该在SPI / I2C上具有UART。

  4. 至于语言。大多数微控制器将限制您在该领域的可能性。在大多数情况下,您的选择将是C,C ++或Assembly,严格来说,这里的微控制器而不是单板计算机。

    如果您决定使用可以运行Linux或其他功能强大的OS的BeagleBone或Raspberry,那么我说最好的语言就是您最了解的语言,当然它应该能够处理任务。(如果愿意,可以在RPi上运行Java。

    也可以使用C,C#或Python打开全球天气数据服务的套接字。用C处理JSON会有点困难,但是肯定可以。

一般来讲成本。最好的选择是搜索启用WiFi的显示设备,将会有很多结果,并且大多数将使用相同的硬件,并且这可能是最便宜的。


您可以使用与Arduino兼容的ESP8266 WiFi模块连接到互联网并连接显示器。与Raspberry Pi相比,它需要进行很多修补,但会更便宜。

这是一个关于ESP8266 + OLED显示屏Hackaday项目


2
良好的过程细分。Micropython可用于许多小型电路板,可能要考虑的因素之一是电路板的生态系统,以及是否有任何开源库(尽管MCU供应商通常也提供良好的库)。
肖恩·霍利哈内

6

创建一家初创公司与您可以使用该技术做什么甚至与产品无关。对于可以吸引风投的成功创业公司,您应该首先考虑将要服务的市场。但是仅仅考虑您将服务的市场还不够。您需要掌握有关市场的真实数据。这不仅对您有意义。创建产品然后捆绑销售不是一个成功的方法,这就是大多数失败的初创公司的终结方式。市场是真正的需求。创建商品时,要创建商品以定位特​​定的市场。这就是成功产品的原因,因为人们已经在寻找产品,所以该产品能够自我销售。VC仅对拥有此类产品的初创公司进行投资,特别是如果它们已经在销售。

要首先选择一种技术来开发产品,您需要知道您的产品需要做什么,这将如何解决选定市场中的问题。然后查看潜在客户愿意为此付出什么。然后选择了一种技术,该技术可以使最快的产品上市时间,同时将成本保持在预算之内。然后将开发外包或找到可以做到并愿意与您合作的合作伙伴。与您的伙伴分享50/50的利润。然后,当您有了原型时,就开始制定业务计划,并记住只有向VC展示他们如何赚钱,才能吸引他们。

如果您需要降低批量生产产品的成本,则可以使用低级语言和资源较少的微控制器,例如带有ASM / C / C ++的Microchip PIC或Silicon Labs EFM。如果该产品不用于批量生产(100k +),则使用高级语言和更灵活的微控制器,例如带有ARM32 MIPS的Micro Python或Lua,甚至带有ARM32 / 64的Linux。这样可以节省开发成本,但会增加硬件价格。请记住,产品的价格不仅是带有组件的PCB,而且还包括价格。开发,住房,包装以及销售产品所需的其他一切都应计入成本。将其放入业务计划中。而且不要使用Arduino或Raspberry pi或Onion或任何看起来像是业余爱好者的东西去VC,

启动,而不是失败,最好的运气。


它确实使营销有了完整的意义。谢谢:)
Jigarb1992
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.