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

由于我对IoT不熟悉,所以我没有知道哪种语言是最好的,以及我用于启动的微控制器是什么?

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

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

评论

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

另外,对于选择微控制器,这个答案确实很棒。

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

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

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

#1 楼

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


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


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


您还需要一个显示单元,并且方便地,有一些专为Raspberry Pi设计的显示器,例如4DPI-32触摸屏。您应该只能将显示直接插入40针接头连接器上:
(来源:raspberrypi.org)
Raspberry Pi Foundation,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页面,然后使用Angular获取天气(或使用类似的库来帮助您),然后使用一些CSS使其显示出来即可。
要实际获取位置,我怀疑只允许用户在Pi的触摸屏上键入他们的位置会更容易。发送电话的位置可能会有些困难,尽管您可以通过大量研究找到一些东西。
对于电池使用而言,有关Raspberry Pi Stack Exchange的问题值得一读。

评论


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

–杰森C
17年1月27日在14:14

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

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



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

–Aurora0001♦
17年2月1日在15:00

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

–克里斯·斯特拉顿(Chris Stratton)
17年2月1日在16:14

“可能比您真正需要的强大得多”-是的。 “内置802.11 b / g / n ...蓝牙” ... OIC,您确实打算推荐ESP32,不是吗? ;-)

–莫格说要恢复莫妮卡
20 Dec 25 '14:09

#2 楼

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

另外,正如评论中指出的那样,请查看vocore2,它实际上比洋葱小,但便宜4美元。它目前由IndieGoGo资助,预计发货日期为2017年2月(撰写本文时为下个月)。看起来还可以使用各种底座,并配有内置的wifi路由器,这很酷。

我前几天碰到过这些东西,但没有使用它们的经验。但是请注意,由于它们的新颖性,您可能习惯使用的某些Linux软件包可能尚不可用(例如,我知道在撰写本文时,gioner软件包在Onion上尚不可用)但是,您必须从源代码构建,尽管gstreamer与您不相关)。

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

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



BeagleBone Black(这是我会认真考虑的唯一Pi替代品,因为它的价格低成本)。

Gumstix($$$,但我们一直在项目中使用它们的大小) />
Toradex Colibri(有点难于使用,但是我们也使用了很多,比Gumstix更好的规格,如果您更喜欢Windows工具链和几乎为零的启动时间,则可以选择运行具有即时启动功能的Windows CE。 )。

还请注意,Vilros制作了一些很棒的Pi入门套件(在亚马逊上更便宜),预装了OS,可以使用Wifi,散热器,保护套,可以直接使用,并节省了大量的咕unt声设置工作。如果您使用Pi路线,也值得一试。 Vilros还曾经制作过Beaglebone入门套件,但似乎在他们的网站上不再可用,但是如果您搜索Newegg / Amazon / etc。您仍然可以找到可用的库存。



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

然后,您必须构建您的气象客户端以及所有这些内容,并且必须以32KB或更少的容量完成所有工作。与在Pi / Beaglebone / Gumstix / Colibri / etc上进行Linux / Windows开发相比,这是一种不同的开发风格。

Arduino在这里的好处是作为主系统的附加组件来执行硬件接口,例如读取压力传感器,按钮,控制基本电子设备。元素之类的东西。

嵌入式系统开发与您在Pi上进行的桌面开发完全不同,而且我真的不建议您仅使用Arduino来完成此任务,特别是没有经验的人。 br />

评论


目前仍在运行OpenWRT(Linux)的vocore2体积更小,价格便宜(4美元)

– Matija Nalis
17年1月27日在18:24



这个开源故事是什么?

– Sean Houlihane
17年1月28日在10:27

@SeanHoulihane很好的问题。我会看看是否能找到有关此问题的Kickstarter页面和主页。在Matija的vocore2上面的评论之后,实际上我对洋葱族的“世界上最小的”说法感到有些m异,但是也许他们可以(用我谦卑的眼光)用开放的架构来赎回自己。

–杰森C
17年1月28日在17:42

请记住,人们可以在Kickstarter上要求任何权利...

– Sean Houlihane
17年1月28日在17:59

尽管我喜欢Onion系列和Pis,但对我来说,这确实像是ESP32的工作

–莫格说要恢复莫妮卡
20 Dec 25 '14:10

#3 楼

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



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

您已经定义了它:


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



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

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

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

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

如果您选择可以运行Linux或其他功能强大的BeagleBone或Raspberry,操作系统,然后我说最好的语言将是您最了解的一种语言,当然它应该能够处理任务。 (如果愿意,可以在RPi上运行Java。)

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


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


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

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

评论


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

– Sean Houlihane
17年1月27日在18:01



#4 楼

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

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

如果您需要降低批量生产产品的成本,则可以使用低级语言和资源较少的微控制器,例如带有ASM / C / C ++的Microchip PIC或Silicon Labs EFM。如果该产品不用于批量生产(100k +),则使用更高级别的语言和更灵活的微控制器,例如带有ARM32 MIPS的Micro Python或Lua,甚至带有ARM32 / 64的Linux。这样可以节省开发成本,但会增加硬件价格。请记住,产品的价格不仅仅是带有组件的PCB;它的价格也很低廉。开发,住房,包装以及销售产品所需的所有其他费用均应计入其成本。将其放入业务计划中。并且不要使用带有Arduino或Raspberry pi或Onion的VC或任何看起来像业余爱好者小工具的东西,不要在上面印有徽标的适当PCB并使用精美的外壳使其看起来像最终产品,这是VC很少信任的业余爱好者小工具。

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

评论


它确实使营销有了完全意义。谢谢 :)

–Jigarb1992
17年1月29日在6:24