养老院是受新冠病毒大流行影响最严重的地方之一,传播率很高。护理人员不得不适应这种流行病,工作量更大,数字基础设施薄弱加剧了这种情况。从跟踪测试结果到 PPE 库存,疗养院都在努力收集和管理数据。反过来,对跨养老院的传播安全性的担忧日益增加,也增加了限制,导致许多人错过了与亲人见面的机会。一个可以帮助护理人员安全地跟踪重要数据的一体化解决方案是必要的。
认识多功能智能物联网仪表板 Devolatus,通过改进数字基础设施和物流跟踪,帮助使养老院成为一个安全的空间。
该设备允许护理院工作人员跟踪容量并在达到容量时发送提醒。此外,仪表板可帮助工人跟踪重要供应品(例如 PPE),在库存不足时提供提醒。该系统使用 AWS IoT + Analytics 和 SNS 安全可靠地存储所有相关数据并相应地发送通知。
从 AWS 控制面板中搜索 AWS IoT Core 并在管理选项卡下选择事物。
在策略部分下,创建一个新策略。确保将操作标记为 iot:* 并将 Resource ARN 替换为星号。这些功能将启用所有操作。
返回到事物设置选项卡并将策略附加到证书。下载证书、公钥和私钥。将它们重命名为“certificate.pem.crt”、“public.pem.key”和“private.pem.key”
返回 AWS 仪表板并搜索 cognito。创建一个新的身份池。选择一个唯一的名称并启用对未经身份验证的身份的访问。在详细信息下,更改策略并将其替换为事物 ARN(如果您返回到 AWS IoT 核心事物则可以查看)。
从https://shop.m5stack.com/pages/download下载 M5 刻录机软件
选择 UIFLOW Core 2 固件,设置 wifi 凭据,然后烧录。
注意:如果刻录尝试超时,您可能需要更改“com”端口或更换 USB-C 电缆。
在配置下,选择以互联网模式启动并复制您的 API 密钥。
在该部分中,我们希望核心 2 与 AWS 通信并发布消息(使用 MQTT)。使用“AWS”块,确保使用您的事物的名称,并输入您的主机名作为设备数据端点。这可以在 AWS IoT 主页面的设置选项卡下找到。确保
aws = AWS(things_name='enterthingname', host='enterhostnamehere', port=8833, keepalive=60, cert_file_path="/flash/res/certificate.pem.crt", private_key_path="/flash/res/private.pem.key")
aws.start()
while True:
aws.publish(str('exampletopic'),str((json.dumps(({'firstvalue':'20','secondvalue':'21'})))))
wait(4)
wait_ms(2)
(或者使用 micropython)
在 IoT 页面的测试部分下,输入 MQTT 测试客户端并订阅您的主题名称,例如 exampletopic 在您的设备上运行代码后,应该可以在客户端上查看这些值。
如果您没有看到任何主题,则可能有一系列不同的问题可能会导致错误。首先,确保设备和 AWS 之间的连接正在发生 - 这可以在 AWS IoT 仪表板的“监视器”部分下找到。还可以尝试订阅通配符 MQTT 主题,方法是输入井号“#”
1. 检查您终端节点上的 AWS 位置和 MQTT 客户端是否匹配(如果不匹配,则您需要在正确的 AWS 位置重复这些步骤)。
2. UIFlow 的桌面 IDE 问题 - 与 AWS 通信时桌面 IDE 可能存在问题。这可能会导致设备出错(例如“无法创建线程”)。改用数字 IDE。
3. 政策问题-仔细检查政策是否正确,并确保它正确地附在证书和事物上。
4. 检查证书是否处于活动状态(在 AWS IoT 部分的安全部分下)。您还应该能够检查它是否与策略和事物相关联。如果它未激活,您应该可以使用切换菜单将其激活。
5. 检查您的证书和密钥是否已正确添加到您的设备中。有时,如果下载时无法访问设备,它们可能会从初始上传中消失。根 CA 证书在设备中进行了硬编码,但也值得将其刷入 M5 堆栈(这是一个解决我自己的连接问题的解决方案)。
右键单击并另存为“.pem”文件并将其添加到闪存(UIFlow 上的文件管理器到证书部分)。
6. 使用 OpenSSL 检查证书。
现在我们已经设置了 AWS 的基础知识,下一步是设计设备。为此,我们可以利用 figma 对我们的 UI 设计进行原型设计。
创建一个新的 figma 设计文件并使用 M5 Stack Core 2 屏幕 (320 x 240) 的尺寸创建一个新框架。使用 montserrat 字体(UI Flow 的默认设置)并尝试找到好的颜色主题。
在完成基本设计之后,是时候开始构建您的设计并考虑所有交互了
在消费者层面考虑设计思维至关重要——在我们的案例中,我们希望让我们的流程变得简单、直观和快速,以避免排长队和疏远访客/员工。
使用检查选项卡,您可以将按钮的属性复制到 UI Flow Prototype。
该代码可在 GitHub 上找到(参见代码部分)。访客的容量计数算法非常简单。
容量计数器只是将本地变量发布到 AWS(使用 MQTT)。如果在容量已经为 0 时尝试退出,则会向用户抛出错误。如果容量已达到,则将发送一封电子邮件(通过 SNS)。
def Sign_Out_Visitor_pressed():
global Capacity
if Capacity > 0:
Capacity = (Capacity if isinstance(Capacity, Number) else 0) + -1
aws.publish(str('capacity'),str((json.dumps(({'capacity':Capacity})))))
wait(1.5)
rgb.setColorAll(0x33ffff)
speaker.playWAV("res/success.wav")
CloseVisitorSign()
OpenHome()
else:
Error_Registration.set_hidden(False)
wait(3)
Error_Registration.set_hidden(True)
pass
Sign_Out_Visitor.pressed(Sign_Out_Visitor_pressed)
def Visitor_Button_Home_pressed():
global Capacity
CloseHome()
wait(2)
OpenVisitorSign()
pass
Visitor_Button_Home.pressed(Visitor_Button_Home_pressed)
在新选项卡中导航到 SNS 服务,并创建一个名为“容量”的新主题,并设置电子邮件协议。您需要接受发送到目标电子邮件的确认
创建 SNS 主题后,返回 IoT 页面
如果容量达到限制,您需要创建一个新规则以通过电子邮件发送 SNS 警报。导航到规则部分(在 AWS IoT 控制面板的“Act”下)。创建一个唯一的名称并添加以下 SQL 规则查询语句:
SELECT capacity as capacitycount, 5 as max_capacity FROM 'capacity' WHERE capacity > 5
设置发送 SNS 推送通知的操作 - 链接到容量主题。
每当满足条件时,您应该会收到类似的电子邮件:
重复上述相同的过程,但这次是库存盘点部分。记得创建一个新的 SNS 主题。
将规则部分的 SQL 替换为:
SELECT masks as maskcount, 5 as min_capacity FROM 'masks' WHERE amount < 5
添加股票的代码类似,除了我们还发送员工:
def add_mask_pressed():
global maskboxes, employee
maskboxes = (maskboxes if isinstance(maskboxes, Number) else 0) + 1
aws.publish(str('masks'),str((json.dumps(({'Employee':employee,'Amount':maskboxes})))))
medicine_amount.set_text(str((str('Amount:') + str(maskboxes))))
pass
add_mask.pressed(add_mask_pressed)
演示:
最后阶段是 3D 打印 DeVolatus 的底盘设计。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !