交互式“请勿进入”门牌“从紧闭的门后”或“谁来我的房间?”
如果您有耐心阅读整个故事,您就会意识到这并不是真正的 Minecraft 剑。
享受!
我将从最终产品的外观开始,然后解释它是如何构建的以及如何控制它。这种方式似乎更吸引人...
。
剑面板由白板制成,用铅笔标记,并用 Crayola 标记着色。仅此一项对您的孩子来说可能是一个有趣的项目:
我包含了一个开放的办公室文档,其中包含钻石剑的示例图片,如果您喜欢快捷方式,可以将其粘在白板上......
一切完成后,您可以将面板热粘合到组件的其余部分或使用双面胶带。
我有 2 个,每个 4 个段,所以我决定制作一个 8 段的。
方便的是一侧有一个 5 针公头,另一侧有 5 个孔。将公头弯曲成钉状] 形状,我能够以电气和机械方式连接两个模块!一块石头打死两只鸟(或一拍打两只苍蝇,一口堵住两张嘴,一份礼物交两个朋友,一张弓有两根弦,还有什么其他成语——你想过吗?对不起,我跑题了)。
对面的公头将用于连接来自 veroboard 的匹配母头与 ESP32-Cam 和其他组件。
这两个组件通过一个 3d 打印的桥连接,桥上还装有一个开关来打开和关闭电源。
bridge 和其他组件的 3d STL 文件位于files/3d
GitHub 上的文件夹中。
Sword 由 2500 mAh USB 移动电源供电——我能找到的最小和最薄的移动电源。Powerbank 滑入一个 3d 打印的外壳中,该外壳也连接到点阵模块,从而将整个东西固定在一起。
移动电源盒上有两个圆形磁铁,这就是剑与门的连接方式(因此可以很容易地拆卸以进行维护)。
真正的原理图在 GitHub 上,但是一张图值 1000 字(信息技术中 1024 字),所以这里是:
如果您知道使用焊枪的方式,这相当简单。
注:3d 桥接部分专为非常特定的 veroboard 尺寸设计:30 x 70 毫米。如果您决定使用不同的,则需要重新设计桥接组件。
电池盒和将 ESP32-CAM veroboard 连接到点阵显示组件的桥接器是 3d 设计和打印的。
电池盒分为两部分,打印后需要粘合在一起,为电池创建一个“口袋”。
这座桥只需要清理掉所有的支撑结构(不幸的是,没有好的方向可以最大限度地减少它们)。
STL 文件位于 GitHub 上,TinkerCad 原件位于此处。
TinkerCad 上的 3D 设计还包括零件如何装配在一起以及应如何连接的模拟装配示意图。
...现在:有趣的东西:
多任务处理
此设计使用FreeRTOS进行抢占式多任务处理,使用TaskScheduler库进行协作处理。文本和 Blynk 相关的执行通过 TaskScheduler 任务进行管理。其他一切 - 在 Core 0 上。
这是该项目的主要目标:先发制人与合作多任务的和平与富有成效的共存!
我正在使用非常强大的MD_Parola和MD_MAX72xx库,也可在 Arduino IDE 库管理器中使用。
最多支持 10 个连接的客户端。
您必须找出 ESP32-CAM 的 IP 地址才能连接到它。您可以在路由器上查找它,或者先启用_DEBUG_选项编译此草图,然后在连接到您的网络时读取终端的IP地址。
重要提示:建议为 ESP32-CAM 模块分配永久 IP 地址或创建 DHCP 预留,以便在租约到期时其地址不会更改。您还可以修改 Blynk 应用程序以更新流 URL 中的 IP 地址 - 如果您愿意的话,这是一个有趣的家庭作业。
当前草图使用 QVGA 分辨率:320x240 像素,这使得它非常快。您可以自由选择并鼓励您尝试其他解决方案并决定适合您的解决方案。
RAM 应该不是问题,因为草图确实利用了 PSRAM。
该草图利用我的Dictionary和EspBootstrap库在启动时从配置服务器加载配置参数。
我运行我自己的配置服务器,你也可以这样做(它是一个简单的 Apache2 Web 服务器,实际上只是提供 JSON 文件)。
您还可以使用任何可用于该任务的在线服务:(OTADrive 、Microsoft Azure 、AWS IoT等)。在这种情况下,请更改String makeConfig(String path)
方法以适当地构造指向您的配置源的 URL。或者,您可以将配置文件保存到 ESP32-CAM 上的 SPIFFS 文件系统中并从那里读取,或者只是硬编码所有条目。请参阅EspBootstrap 库的README以了解您的选择。
GitHub 上提供了配置文件的示例。
如果您更喜欢硬编码参数,下面是一个示例:
pd("Title", "DND Sword Setup");
pd("ssid", "your wifi ssid");
pd("password", "your wifi password");
pd("msg", "Hello!");
pd("devices", "8");
pd("blynk_auth", "your blynk AUTH UUID");
// if you run your own server only:
pd("blynk_host", "your blynk server IP");
pd("blynk_port", "your server port");
该草图还启用了 OTA(无线)固件更新,并在每次启动时检查新固件。
同样,我运行我自己的 OTA 更新服务器,你也可以这样做(它是一个简单的 Apache2 网络服务器,带有一点 PHP 脚本服务二进制文件)。
您还可以使用任何可用于该任务的在线 IoT 服务:(OTADrive、Microsoft Azure、AWS IoT等)。在这种情况下,请更改void checkOTA()
方法以适当地构造指向您的二进制文件源的更新 URL。
这是可选的- 您可以选择仅通过串行连接上传二进制文件。
此处已对此进行了描述。无需重复。
Blynk是一个基于云的物联网平台,可实现快速应用程序开发。它免费供个人使用,甚至可以选择运行您自己的Blynk 服务器。
我(正如您可能已经猜到的)正在运行我自己的 Blynk 服务器,但您使用云版本可能更容易。
安装 Blynk iOS 或 Android App,并按照下图在手机上重构 App。
。该项目的许多概念都可以在其他应用程序中重复使用。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !