我们如何创建物联网系统来管理太阳能使用

如果您对物联网解决方案背后的开发架构和机械/电气设计一无所知,它们可能看起来像“具有看似超自然的品质或力量”。 例如,如果您向18世纪的人们展示可以正常工作的IoT系统,那么他们会认为这很神奇。 或者,更确切地说,是关于在太阳能管理领域对一个很棒的项目的物联网开发进行微调的提示。


剧透 :没有咒语,只有分析性想法可以发展快速便捷的服务。


免责声明 :我们没有提供万能的解决方案(它根本不存在),只分享我们认为很认真的内容。 这些观点可能是杀手级特征,相反,它们的忽视可能会杀死它。 双关语意;)


引入物联网系统以可视化和优化太阳能消耗


我们很高兴从事改善自生能源使用的项目。 核心在于为安装公司和最终客户可视化和优化光伏(PV)系统的使用。 因此,将Solar Manager安装为用于在家用设备之间分配产生的太阳能的中央集线器时,您将使用最大的自行产生的能量。



我们已经写过关于使用太阳能的商业观点,现在让我们深入探讨技术挑战和发展提示。


绝对前提


在开始之前,让我们弄清楚。 无论是物联网系统还是简单的着陆,每个项目适用一件事。


在完全了解要实现的目标之前(所有相关人员都知道),切勿开始实施。


没有明显的事情。 不,没有心灵感应,没有人阅读您的想法。 澄清,讨论并确保您在同一页面上。



当然,如果您不想花费两倍的时间和金钱。


任务


那么,我们有什么投入呢? 灵活的连接性和集中的远程固件,具有不同UX和权限集的5个用户角色,转换和分析数据,大量请求,以及为锦上添花,在图表上绘制了大量时间值数据。


实施物联网系统以降低能耗的挑战和细节


在开发方面,最重要的三件事是:稳定性,相关性和速度。 特别是当项目需要整体架构时。 这就是为什么总体逻辑,所有用户流和数据库设计应尽可能简单和优化的原因。 坦白说,在2019年,没人愿意等待40秒,因为“您的数据正在处理中”。 因此,这是我们引用的物联网平台的问题/答案列表:


  • 该体系结构符合要求和规范吗?
  • 您将如何转换,处理和分析收集的数据?
  • 亲子MVC / MVP层之间的最佳关系是什么? 然后可以缩放它们而不会被打断吗?
  • 是否有执行类似/相邻功能的模块? 它们可以组合成一个单一的多功能模块吗? 这会引入或减少复杂性吗?
  • 阶段之间的沟通是否最佳?
  • 在可视化之前如何缓存数据?
  • 每个用户角色的用户体验(UX)是否简单明了?

拆分需要分发的内容,合并相似的内容。 但是,不要将其与创建(应该)解决多个任务的大型类混淆。 而是为单个任务创建小型任务。 对于复杂的任务,创建几个类,每个类解决一个子任务,另一个类将使用那些子任务。


  • 物联网智能解决方案架构师



此处的“智能”是指创建适合项目要求的快速,可扩展,优化和可持续的项目架构。 此时出现的基本问题:


  1. 最简单,最直接的架构流程是什么?
  2. 如何使每个角色的用户体验最简单?
  3. 我们可以修改初始架构以获得更好的可扩展性和性能优化吗?

对于Web应用程序,这涉及分层模型视图控制器(HMVC)设计。 例如,要更好地分配资源并提供更快的响应,请通过API,后端,前端和边缘之间的连接进行工作。 配置云本地通信,存储和传输数据,以便您快速获得正确的响应(您好,上尉船长!)。



  • 设计数据库时要考虑性能



永远不要低估通过数据库(DB)设计进行思考的重要性。 这也适用于数据库中集合之间的关系。 您有很多实体,它们以各种方式交互,因此将所有相关的逻辑连接保持在一个位置至关重要。


因此,当您拥有初始结构时,请确定:


  1. 这(一对一,一对多,多对多)是此集合的最佳关系类型吗? 它最有效地解决了任务吗?
  2. 它与特定屏幕上的任务的对应程度如何?
  3. 它是否适合该项目的总体架构?

优化每个模块背后的逻辑,并确保保留常规体系结构。 考虑一下权限集。 然后再考虑并优化。 记住要设置连接类型,以便对每个任务都将所有需要的信息放在一个地方并正确处理请求。


例如,假设您的数据库是一家快餐店。 您有很多客户,您需要快速准确地提供他们所订购的食物。 否则您的业务就完成了。 对于数据库来说,这是完全相同的。 是的,有几十个集合,您需要同时从其中的7-8个数据。 因此,请设计关系,使它们在逻辑上相连并快速返回响应。


物联网系统就像一家餐馆。 不要让客户等待。


  • 如何绘制[海量]数据



还记得网站加载了几分钟的时间吗? 我们已经看到了仪表板加载速度更慢的应用程序。 那是不可以的。


图表是新常态。 出于某种原因,数据可视化通常用于SCADA,IoT和任何分析项目中。 看到能耗高峰,市场趋势,空气中的二氧化碳以及您可以测量的其他任何东西(通常随时间推移)会给人以生动的印象。 你看,你明白,你行动。 通过海量数据阵列的文本显示,您的眼睛将立即模糊。


因此,挑战在于快速绘制具有大量价值时间对的图表。 在用户查看图表上的数据之前,系统必须确定所有点以进行绘制。 我们进行了大量的头脑风暴来确定如何缓存数据,以便绘制具有50K +数据值对的图表所需的时间不到2秒。



从头到生产,再到超越


除了网络应用程序外,我们还开发了iOS和Android应用程序,可进行实时安装,监控和访问。


在物联网系统上工作时要记住的重要事情是保持简单性和可伸缩性。 典型的五阶段物联网架构应经过深思熟虑,以免带来任何冗余的复杂性。


随着每种产品的发展,您必须考虑分层新功能的方式,同时又不要中断现有功能。 而且,当然,不要忘记单元测试。


推出不到一年


自2018年10月推出以来,Solar Manager已被瑞士领先的光伏批发商和安装商公司采用并使用。


通过审查和优化能源使用习惯,消费者可以充分利用其PV,从而节省成本。 根据德勤公司的说法,这种解决方案在全球范围内具有可与传统电源竞争的太阳能。 反过来,这也使其吸引了其他住宅消费者和企业。 最后,这听起来不是我们所有人都在等待的智慧城市的基础吗?


成功的背后是任何物联网项目


没有创建成功产品的“最终指南”。 首先,每个项目都是独特的,并带来自己的挑战。 其次,即使您已经在该地区完成了许多项目,技术和市场需求也在不断发展。 因此,您在两年甚至半年前的经验可能现在不重要了。


您也可以在我们的GitHub上查看许多用于物联网开发的免费开源工具。

Source: https://habr.com/ru/post/zh-CN466473/


All Articles