unPhone

unPhone

一个适用于物联网等领域的开源教育小工具
electronics 创客 esp32

unPhone 正如其名,它不是一部手机。确实并不是手机也许是件好事:虽然它外形像手机,拿在手里也很舒适,但它既没有扬声器也没有麦克风,无法用来打电话。

它所拥有的是开放源码设计和固件,运行在一个隐藏在全彩触摸屏后面的Espressif ESP32-S3微控制器上——同时配备了一个功耗低、距离远的LoRa无线电模块,即使只依赖一个简单的隐蔽铜线圈作为天线,通讯范围也可达60英里甚至更远。

unPhone显然并非手机。它既超越了手机的限制,也未能达到手机的标准——它更像是一个实践教育项目的核心,这个项目旨在教授物联网(IoT)知识,由英国谢菲尔德大学的Hamish Cunningham开发。现在,这款产品可以直接购买 —— 但它是否物有所值呢?

unPhone

硬件

  • 微控制器乐鑫ESP32-S3-WROOM-1,8MB PSRAM

  • 存储:8MB闪存,microSD卡(包括16GB)

  • 显示屏:3.5英寸320×480彩色LCD电阻式触摸屏(光泽)

  • 无线电:ESP32-S3(Wi-Fi、蓝牙)、HopeRF RFM950(LoRa 868MHz、915MHz可调)

  • 传感器:加速度计、磁力计

  • IO:3×按钮开关,RGB LED,IR LED,振动电机

  • 扩展:4×GPIO、I2C、SPI、扩展板扩展接头(6×ADC、UART、1×GPIO、2×FeatherWing)

  • 软件:ESP-IDF、Arduino IDE、带有PlatformIO Core的Visual Studio、CircuitPython

  • 许可证:硬件知识共享署名-非商业性使用-相同方式共享4.0国际,软件GNU Affero通用公共许可证3

unPhone

不出所料,unPhone的外观和手感都像手机——尽管是大约十年前的手机。它的机身主要由塑料构成,前面板由PCB制成,通过四颗螺栓固定;拆下这些螺栓,就能看到使设备运作的单板。

正在评测的unPhone版本,技术上是unPhone9——这个编号是对之前每一个原型进行递增得到的。这个项目始于一个面包板,后来被称为unPhone0,并且由谢菲尔德大学的Cunningham及其同事与BitFIXit的Gareth Coleman和Pimoroni的Gee Bartlett与Paul Beech共同开发——他们负责生产和销售这款设备的零售版本。

unPhone

正如手机一样,前面主要是一个3.5英寸的320×480彩色LCD显示屏,带有电阻式触控层和非常光滑的表面处理,这使得这个小工具在明亮的阳光下难以使用。当以横向持握时,屏幕右侧有一组带有方形、圆形和三角形符号的触感按键,就在提供软件驱动的开关、复位按钮、RGB和红外LED灯,以及一个用于数据和电源的USB Type-C连接口的侧面板上方。内部还隐藏着一个振动马达,尽管没有扬声器或麦克风。

电力供应给一个装在塑料后壳一个相对紧凑区域的1200mAh锂电池——与unPhone网站提供的文档中提到的1400mAh相比有所降级,但由于决定使用低功耗的Espressif ESP32-S3-WROOM-1模块,而不是像在手机中找到的高性能应用级系统芯片,所以仍然可以支持大约六小时的活跃使用。这块电路板上还有一个HopeRF RFM950 LoRa收发器——这让设备在ESP32-S3提供的Wi-Fi和蓝牙低功耗(BLE)的基础上,还具备了远距离低功耗的无线电连接能力。

unPhone

除了微控制器模块中的8MB闪存之外,它预先编程了一个简单的演示固件,用于测试显示屏并展示一些基本功能,还有一个microSD卡槽用于存储——只是在切口中留有足够的间隙,使得卡片有可能意外地滑入金属槽上方并丢失在机壳内,因此如果你要更换卡片,一定要小心。

unPhone拥有厚重的塑料壳、相对较小的屏幕和硬件按钮,你不会长时间将其视为手机——但它构建坚固,手感沉重而稳健,并且如果需要,例如需要取回丢失的microSD卡,很容易就可以拆开并重新组装。

教育平台

unPhone不仅仅是其零件的总和:这个项目源于希望提供一个平台,用于教授物联网背后的核心概念。因此,Cunningham和同事们一直在编写课程材料以配合之——将unPhone构建成一个课程大纲,其中包括一个自由访问的“物联网书籍”,大约有300页。

这本书的每一页都不是关于unPhone。的确,这本物联网书——正式标题为“Mi Casa su Botnet?”——是对物联网设备经常被忽视的安全问题的一种诙谐提法,书中广泛涉及了从数字PDP-10小型计算机到使用面包板ESP32闪烁LED,再到机器学习、实时操作系统,以及一个名为WaterElf的自动水产养殖教育平台的各种主题。

unPhone

对于那些有经验的人,可以跳过背景介绍,直接跳到第11章“unPhone Yourself”,这一章介绍了硬件并演示如何使用Arduino IDE以及ESP32核心和unPhone库用C++编程。附录提供了其他方法的探讨,包括使用Espressif的ESP-IDF在命令行进行编程,无论是本机还是通过Docker容器,通过Microsoft Visual Studio Code的PlatformIO以及ESP-IDF或Arduino插件进行编程,以及用CircuitPython编程unPhone——在撰写本文时,这个端口处于非常早期的状态。

对于从零开始的人来说,从一开始就受益,他们将被引导了解从建立GitLab帐户——尽管你需要跳过确保使用谢菲尔德大学邮箱账户的部分,除非你真的是那里的学生——到设置构建环境的所有内容。你还将需要额外的硬件:亲自参加课程的学生会收到一个硬件套件,包括一个Feather格式的ESP32-S3板、无焊接面包板和各种组件,这些都不包括在unPhone里。

unPhone

为unPhone制作的课件不仅可以自由获取,而且是开放的:Cunningham根据Creative Commons Attribution Share-Alike Non-Commercial 4许可证发布这本书。这也扩展到项目的所有其他方面:书中的一个章节详细讲解了unPhone的电路图,尽管基于早期的unPhone6v2,而所有源代码都发布在GitLab上,采用GNU Affero General Public License 3许可证。

实验空间

然而,这些课件并不能带你走得太远。虽然它涵盖了大约100小时的课程,但只有一小部分关注于unPhone本身——并且很快就略过了设备编程的部分,演示了如何使用库来初始化硬件、使用RGB和IR LED灯、检查电源开关的状态、访问触摸屏显示、读取加速度计、处理电源管理以及如何通过LoRa无线电向The Things Network发送短消息。

除此之外,读者只能通过查看示例代码来了解如何使用设备——包括一个使用LVGL编写的光滑用户界面演示,遗憾的是这并没有真正利用unPhone的特性,除了触摸屏之外——这比任何其他事情都更突出了这个小工具的双重受众:那些将其作为大学课程一部分使用的人,其中物联网书籍得到了面对面辅导的支持,以及那些在零售市场上购买它进行一些自我引导实验的人。

unPhone

正是这些后者的受众最有可能对unPhone感到失望,因为他们努力克服从一个仅有四行代码的片段(这个片段展示了向The Things Network盲目传输单条信息)到实际使用无线电进行有用的双向通信之间的鸿沟。因此,对于初学者来说,unPhone或许并不是最佳设备;但对于那些有先前经验或有坚持下去的韧性的人来说,其中有很多值得喜欢的地方。

彩色触摸屏意味着unPhone可以被改造成各种项目的控制器,它拥有一个光滑的自包含手持形态。Wi-Fi和蓝牙可以用于本地通信,而LoRa无线电在你需要更远距离时就派上用场——Cunningham亲自测试过,有效距离可达60英里。

unPhone

也许最好的特性是,没有任何专有技术。unPhone由现成的组件巧妙连接而成,虽然提供了unPhone库,但它不是使用设备的唯一方式:如果你宁愿只引入想要使用的部件的基础库而忽略其他部分,这样做也是受欢迎的。

如果你需要的不仅仅是基础硬件,还有扩展空间。电路板的一侧有未填充的0.1英寸通用输入/输出针脚头,可以焊接并通过机壳的一个突出部分将线露出外界。在另一侧,紧挨着电池连接器的位置,有一个零插入力(ZIF)插座,用于连接扁平灵活电缆(FFC)——设计用于配合一个捆绑的扩展板使用,适合托管两个FeatherWing格式的扩展板和你选择的组件,用于小型原型区。

结论

unPhone显然不是手机,这从名称上就很明确。然而,它确实是一个很好的平台,用于尝试类似手机的物联网接口——只要你不需要音频功能——并且可以胜任任何ESP32-S3能够做的事情。如果你想将它用作机器人的手持蓝牙控制器,你可以这么做。如果你想在上面运行一个复古计算机模拟器,没有什么能阻止你。如果你想跟随Cunningham的课程,不管你是否在谢菲尔德大学注册,你也可以这么做。

然而,它也不是没有缺点。屏幕上的塑料电阻层是光滑的,比玻璃覆盖的电容屏容易划伤,这使得unPhone在户外使用变得困难——这很遗憾,考虑到它内置的电池。对于欧洲以外地区的人来说,一个更大的问题是无线电:虽然固件可以在868MHz和915MHz模式之间切换,但线圈天线特别调整为868MHz——这使得它不太适合北美的部署。

unPhone

尽管如此,unPhone还是有很多可圈可点之处。里面没有令人眼花缭乱的突破性硬件,它所做的一切以前都有人做过——但是把这一切集成在一个紧凑的手持设备中还是非常吸引人。捆绑的扩展板也为增长提供了空间,而且Coleman目前正在努力将 Meshtastic 固件移植到unPhone上,以实现基于LoRa的离网网格网络。

更多关于unPhone的信息可以在官方网站 https://www.unphone.net/ 上找到。


评论:
相关文章
物联网项目开发实战-第3章-自动浇花项目迭代3

本节我们在迭代二的基础上使用四位数码管和OLED显示屏显示相关交互信息。


物联网项目开发实战-第3章-自动浇花项目迭代2

本节我们在迭代一的基础上增加采集土壤湿度数据,并根据湿度数据来决定是否自动进行浇水动作。


物联网项目开发实战-第3章-自动浇花项目迭代1

本节我们实现一个基本能工作的手动浇水装置,即通过按下按键来闭合继发器让小水泵进行浇水。


物联网项目开发实战-第2章-开发环境

本小节通过点亮LED和串口输出两个程序,来初步掌握ArduinoIDE、了解GPIO和串口使用、同时把开发环境与开发板的连接,上传程序的各环节跑通,


小鹏浇花套件单机版程序V1.0.0

本程序是小鹏物联网智能浇花套件的单机版程序(不连接物联网),供同学们参考。


ESP32 的中断机制和处理

本文介绍ESP32中的中断机制,以及如何通过GPIO中断实现按钮控制。重点讲解了如何设置中断服务例程、处理中断抖动问题,并提供了消除中断抖动的示例代码。


在ESP32上实现WEB交互界面

本文主要介绍在未联网(AP热点)情况下实现WEB交互界面的CSS和javascript库。


Arduino ESP32获取芯片、RAM信息

本文介绍如何使用Arduino-ESP32库中的API函数获取ESP32的芯片、RAM信息等,并提供了一个示例程序代码。


ESP32 FreeRTOS 双核使用

ESP32系列(包括ESP32-S3)搭载Xtensa双核处理器,默认情况下Arduino框架仅使用单核运行用户代码,通过多核编程,可以充分利用硬件资源来提升系统响应和性能。


ESP32 GPIO 矩阵和引脚多路复用

ESP32 芯片有34个物理GPIO管脚。每个GPIO管脚都可用作一个通用IO,或连接一个内部的外设信号。IO_MUX ¹、RTC IO MUX 和GPIO交换矩阵用于将信号从外设传输至GPIO管脚。

相关创作
这是由一个支持WiFi的ESP32单片机和一个7.5英寸电子墨水屏组成天气显示器。
热度:469
项目是基于 ESP32 处理器的自主 GPS 跟踪器,可以支持常规SIM800扩展板来管理2G GSM通信,并且与大多数3.3V的GPS模块兼容。
热度:354
HoloCubic 是一个带网络功能的伪全息透明显示桌面站,基于ESP32PICO-D4打造。
热度:318
基于ESP32-S3,板载1.69寸LCD总成接口、蜂鸣器、SD卡槽、AXP173电源管理,双排母引出大部分引脚供底板拓展功能。
热度:138
本项目是以ESP32为核心,打造一个多功能集合的综合性极强的小模块。
热度:113
OMOTE是一个基于ESP32-PICO-D4的开源通用遥控器。它的电容式2.8英寸触摸屏为切换设备和设置提供了直观而快捷的用户界面。
热度:93
基于ESP32的电子墨水屏日历,支持通过 OpenWeatherMap 实现天气显示等功能。
热度:89
LILYGO TTGO T-Watch-2020编程开发可穿戴设备 ESP32可编程手表
热度:70
用树莓派做了个产品级磁带随身听,好看又好听,开源了!
热度:70
小鹏STEM教研服务

专属教研服务系统,助您构建STEM课程体系,打造一站式教学环境。