Smart Lock:为什么懒惰是物联网进步的推动力

当您坐在凉爽的现代化办公室中的舒适椅子上时,任何使您无法从自己喜欢的日常工作中分散注意力的事情真令人讨厌。 有人可能称它为懒惰的迹象,但实际上,它与工作流程的优化有关。 我们的计算机和智能手机为我们提供了很多机会,可以做很多事情而不会离开自己的位置。 这样的软件只需单击即可关心我们对物理世界的控制。 确实,数字化取得了进步:在过去的几个世纪中,人们与肌肉有关的事情如今可以通过语音命令或文本消息来完成,这要归功于众多的遥控小玩意。 物联网在所有这一切中起着至关重要的作用,这是有原因的。

原始文章-Smart Lock:为什么懒惰是物联网进步的驱动力

让我们帮助门锁进化


采取平凡的行动,例如打开一扇门。 几千年来,根本没有发明门的基本设计。 不同的形状或应用的材料都不能改变任何门的主要功能-控制每个入口和出口。 真正改变了门功能的是如何固定打开和关闭的门的方法。 人们发明了各种设计的门锁,从原始的锁舌到带有面部识别系统的高科技电子锁。 每个现代门锁设计的复杂性都取决于进入房间的特定过程:银行金库必须比大学校园更难进入。

物联网开发公司迟早会想到为办公室门锁创建简单的物联网解决方案的合理想法。 当员工人数达到数十人时,门锁中的普通读卡器可以对一些健忘的开发人员起到欺骗作用,这些开发人员过去常常不时将钥匙卡留在家中。 由于同事厌倦了仅仅为了协助打开办公室门而打断工作,因此创建相关物联网解决方案的任务变成了真正的动力。 但是,有创造力的人总是可以利用任何情况来获得乐趣并同时展示他们的创造力。 因此,创建智能锁应用程序的相当普通的开发过程被Indeema转换为一个有趣的挑战,需要通过另一个Hackathon解决。

欢迎大家


物联网解决方案的最大优势之一是将其代表为黑客马拉松的任务,其中包括可以参与协作开发的众多专家。 与许多其他纯软件挑战相反,物联网始终需要硬件规格。 在物联网环境中,硬件组件通常可以为整个项目设定基调。 这就是为什么Smart Lock Hackathon几乎没有硬件工程师就无法做到的原因。 Indeema邀请了多家友好公司的硬件规格-越好。 他们到达了。

当然,API,后端,网站以及可以为所选硬件提供服务的特定软件都由黑客马拉松中占多数的程序员负责。 此外,还邀请设计师创建一个有吸引力且用户友好的界面。 任何物联网解决方案都无法避免进行测试,这就是测试人员和质量保证规范参与该过程的原因。 此外,其他各种团队成员,例如销售经理,营销人员,甚至会计师,都参加了此次活动,以加强头脑风暴,因为产生新想法属于自然的想象力,而不是某种特定的熟练程度。 顺便说一句,Hackathon是开发人员聚会中的一类,每个人都可以尝试新事物并提供与众不同的东西,而无需考虑任何特定专业知识。 换句话说,黑客马拉松的发明是为了提高创造力,无论采取什么形式。



为什么要参加黑客马拉松?


咖啡,糖果,“红牛”的爆炸性组合,以及在整个24小时不间断会议中真正的竞赛驱动力,对于任何需要定期中断例行程序的开发人员来说,任何Hackathon都是非凡的事件。 强烈的积极情绪以及极其非正式的氛围可以帮助人们从不同角度解决许多问题。 此外,黑客马拉松可以消除大三和大四,高层管理人员和低级职员之间的距离,使整个团队可以共同完成一项任务,而无需普通从属。 在远古时代,贵族每年为他们的仆人安排一次特别聚会时,便实行了一种几乎遥不可及的做法。 在这种情况下,仆人变得等同于主人,以没有头衔的名字称呼他们。

毋庸置疑,在Hackathons上进行的非常心理上的解放可以揭示出一些创新的功能,这些功能在平凡的工作流程运行时仍然隐藏。 如果是这样,有人可能会问,为什么不尽可能频繁地安排黑客松? 反对它的观点在于人类的心理:我们已经习惯了定期进行的任何练习。 复发会很快抵消刺激作用和新鲜体验。 这就是为什么我们享受一年仅发生几次的假期的原因。

初始条件和硬件


普通的电磁门锁在许多办公楼中用作标准解决方案。 它通常是关闭的,要打开它,您应该使用外部的RFID卡(开发商经常在家里留下的非常钥匙卡)或内部的按钮。 可以将一个简单的继电器连接到按钮上,以使锁打开一会儿。 继而,继电器应由发送相关信号的微控制器(或微型计算机)控制。 选择Raspberry Pi作为微控制器,该微控制器应在验证来自客户端应用程序的请求后控制继电器。 在这种有效算法中,最重要的实体是可同时在iOS和Android操作系统上运行的应用程序。 因此,整个智能锁项目意味着一个复杂的硬件-软件IoT解决方案,该解决方案集成了各种技术,例如Web后端,iOS和Android的客户端,Linux的嵌入式部分以及各种框架和Raspberry Pi特定的库。

应用程序如何工作




整个系统包含3个定制开发的应用程序:

  • iOS客户端
  • Android客户端
  • 伺服器

和一个第三方身份验证系统-Redmine。

为了不给应用程序带来过多的冗余功能,仅针对其用户界面开发了3个屏幕:主屏幕,登录屏幕和设置。 基于智能手机的远程开门器应该很简单,对吗? 该应用程序是服务器-客户端解决方案,它通过公司的Redmine凭据使用第三方身份验证,这是最重要的安全措施。 登录后,可以生成Redmine用户的单个API密钥以发送到服务器。 服务器验证一个特定的API密钥,以确定它是否可以访问公司Redmine,从而不允许打开门锁。 例如,iOS的客户端应用程序是一个用Swift编写的简单应用程序,其中涉及3D Touch以促进访问。 防止用户离开办公室时偶尔打开门的功能提供了一个额外的弹出表,用户可以在其中确认打开门的意图。 该应用程序的Android版本在一般功能方面与iOS版本没有区别。 因此,最终的物联网解决方案为用户提供了仅需在智能手机上轻按几下即可进入办公室的能力。

发展的挑战与细微差别


Python被选为应用程序服务器部分的编程语言。 该选择是出于与24小时紧缩的Hackathon周期和嵌入式目标平台的ARM处理器相关的多种考虑而做出的。 后者在编译和部署方面不及x86处理器。 这就是为什么使用Python作为一种解释性高级编程语言,允许在目标平台和宿主平台上编辑代码的原因,以便立即运行该应用程序进行测试。 使用Python的另一个原因是其标准库,可以使用用C编写的模块轻松扩展其标准库,以访问各种操作系统功能以及调用系统服务。 此外,当操作系统提供各种功能时,Python应用程序将作为Linux服务运行,例如在启动时执行应用程序,在应用程序崩溃时重新启动,将应用程序作为后台进程执行等。 因此,Python的优势提供了将应用程序部署到目标平台的功能,而无需将源代码初步编译成机器指令。

这是我们项目的主要方案。



此外,由于该框架具有最小的依赖性以及第三方库对运行服务器应用程序的最低要求,因此Flask Web微框架被用于部署Smart Lock应用程序。

根据项目中使用的某些特定编程方式,应用了RPi。GPIO库,以便控制目标板上Raspberry Pi 3上的引脚输出。只有几行代码。

回到树懒


尽管存在许多偏见,但就技术进步而言,“天然”人类树懒并不总是有毒的。 Smart Lock应用程序的背景中是否有树懒? 这是有问题的,因为只有动态的Hackathon才能生成如此可行的IoT解决方案。 但是,整夜开发过程的直接结果是Smart Lock应用程序会导致Indeema开发人员不再需要离开椅子让他们健忘的同事进入的最长的不间断时间段。 此外,除了打开办公室的门外,还有许多其他类型的体育活动。 可以肯定的是:开发人员的工作效率将不可避免地提高。 因此,强烈建议使用Hackathon和智能锁IoT解决方案。 当然,Indeema总是很高兴与每位感兴趣的IoT专业人员(GitHub)共享该应用程序的代码

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


All Articles