分类存档: Lifestyle - 第3页

一个软件工程师的 2022 电子 DIY 小结

在 2022 年中的时候,已经很久没有玩过 DIY 的我,在看到稚晖君以及其他一些 UP 主的视频之后,又对电子 DIY 捡起了兴趣。在这同时,又了解到了嘉立创的免费打样活动,因此也想在之前使用万用板和飞线的基础上,更进一步,能真正向产品化迈进一点,好好地做个东西出来。

在经过了几个月的学习、尝试,也在嘉立创打了快 30 块板子之后,目前也完成了几个小玩具的开发、组装、使用,也算是完成了一些里程碑。

学习路径

为了使 DIY 产品更像一个产品,就需要使用 PCB 了,因此需要系统地了解和学习硬件产品整体的开发流程。幸运的是,现在 B 站科技区很多 UP 主,在发布视频的时候,都给出了完整的实现方式,这就让我的整个学习过程有了比较详细的参考资料。

整体学习过程中,遵循了看视频》原理图学习》EDA 学习和操作》PCB 布线》项目复刻》自主从头实现这个路径。当然因为是业余 DIY,实践的时候都以满足基本需求为主,没有特别地去优化线路、优化功耗。

总的来说,在入门电子 DIY 的时候,还是遵循了实践大于理论的原则,很多时候并没有特别去深入原理性的东西,像模电的一些内容,并没有花太大精力去深入学习,更多还是直接使用了现成的模块。

EDA

在很久以前玩 Arduino 的时候,也去尝试过一些 EDA 软件,那个时候对整个电路,都比较费解,也不太能从头去画一个原理图,并且由于没有系统地去学习过原理图绘制,因此对于什么元件使用什么符号,各个元件所起的作用之类,都不太了解。

但是在接触到了立创开源硬件平台之后,就像是在 GitHub 上去阅读开源项目代码一样,可以成体系地去学习一下开源硬件项目了,自带的编辑器立创 EDA 可以直接打开项目。并且由于立创 EDA 相对其他 EDA 工具而言,功能还不太复杂,对于我这样的初学者来说,可以比较快的掌握并去画一些基础的原理图。

在使用立创 EDA 过程最大的感受就是,可以完全不需要了解各个元件的封装之类的参数,只需要在立创商城找到的元件,就可以直接放在画布中使用,各个参数、符号、3D 模型都是现成的,这也导致我现在使用立创 EDA 的时候还保留有一个习惯,元件选型的时候,只有有模型可以直接放置在画布的元件才会去选用,这样可以完全不用操心元件封装,还可以直接在 …

阅读全文 »

超简单 DIY – AirCube 空气检测站

源由

一直以来对家里的环境状态比较在意,在很多年以前,就使用万用板 + ESP8266 + 传感器组装了很多台空气检测节点放在家里,用于监控 PM 2.5 浓度、二氧化碳浓度、温度、湿度等环境状态。

配合 ESPEasy 固件 + Domoticz,可以很方便的采集环境状态的数值,从而配置 Domoticz 的脚本来完成一些自动化动作,例如打开新风、打开空气净化器等。

进一步,也可以通过 Domoticz 将采集到的数据保存到 InfluxDB 中,使用 Grafana 图形化的展示这些环境状态的变化趋势。

在知道嘉立创的 PCB 免费打样活动之后,就产生了将这些空气检测节点进行升级的想法。

目标

这次升级,主要是为了改进以前使用洞泂板,ESP8266 等老旧部件碰到的一些问题,主要有以下几点:

  • 更美观,原先使用万用板 + 亚克力面板太多飞线,不是很好看,整体空间利用也不充分,并且现在也有 3D 打印机,可以做一个更好看的外壳。
  • 更标准,原先每个节点的传感器选型都不太一致,从而导致每块万用板的飞线都不一致,组装存在出错可能,这次通过使用统一的 PCB,将所有传感器模块位置固定,每个节点的传感器都保持一致。
  • 更强大,原先使用的 ESP8266 模组,GPIO 数量较少,在传感器数量多的情况下,GPIO 就不够用了,这次更换为更先进的 ESP32,拥有更多 GPIO,性能也更为强大。并且因为 GPIO 数量更多,还可以额外增加一个屏幕,这样即使不借助 Domoticz 的情况下,也可以独立使用,查看当前环境数据。
  • 更灵活,原先使用的 ESPEasy 固件,所有的传感器是通过在它的网页配置界面来完成的,并且它的配置保存格式为自定义的二进制格式,很难阅读以及提前配置,这次更换为更灵活的


阅读全文 »

记一次硬件 Debug:ESP32 连接 Wi-Fi 报 Auth Expired 错误

起因

前段时间准备把家里的空气质量检测节点更新一下,从原来的万用板升级为 PCB,并且将主控 MCU 从 ESP8266 升级为 ESP32,这样可以单个节点支持更多传感器,同时把固件从 ESPEasy 换成 ESPHome。

经过

在完成 PCB 打样测试后,就上淘宝采购了一批 ESP32 开发板,其中一批是 USB Type-C 接口的 NodeMCU-32S,最开始测试的时候只买了一块,使用下来并没有什么问题,但是在一次接错 VCC 和 GND 导致温度模式损坏之后,再次使用这块 ESP32 开发板时,发现它无法连接到之前已经配置好的 Wi-Fi 上。

这时还以为是由于之前温度模块损坏关联导致的,因此重新购买了几块同样型号的 ESP32 开发板,但是在完成固件烧录,完成固件配置之后,第二次运行时,同样发现了无法连接 Wi-Fi 的错误,日志中显示连接失败的原因为 Auth Expired:

[23:50:02][I][wifi:248]: WiFi Connecting to 'HOUSE_IOT'...
[23:50:03][W][wifi_esp32:495]: Event: Disconnected ssid='HOUSE_IOT' bssid=xx:xx:xx:xx:xx:xx reason='Auth Expired'
[23:50:03][W][wifi:536]: Error 


阅读全文 »

使用 ESPHome + INA219 模块构建一个简易功率计

最近在使用 ESP32 做一些小东西,其中一个设备是使用电池供电,因此对使用电池时的续航比较关心,但是手头并没有合适的电子负载仪,在翻模块库存的时候,刚好发现有一个 INA219 模块,就直接拿它现做一个功率计了。

再配上一个 12864 OLED 屏幕,这样就可以实时去观测单片机设备的实时功率以及功耗了:

EasyPower Demo

ESPHome

ESPHome 是一个配置化生成 ESP32/ESP8266 智能家居固件的系统,一般都会用它来作为智能家居节点中的系统来使用,配合很便宜的 ESP32/ESP8266 模块,使用起来很是方便。

在查阅它所支持的模块时,发现 INA219 也在其中,并且 ESPHome 本身对 12864 OLED 也有良好的支持,因此最终就直接选择了 ESPHome 来作为功率计的基础系统,这样可以省去编写很多基础代码,例如任务设计、屏幕绘制、I2C 总线读写等,只需要关注功率计核心的功能即可。

最近也使用 ESPHome 比较好,发现它还是有很多优点的,基本可以作为一个 Arduino 项目的基础应用框架来使用:

  • 配置化生成代码,无需管理复杂的库依赖
  • 丰富的模组库支持,对于开发单片机应用来说,常见的输入输出模块都内置支持
  • 完整的运行框架,开发者只需要关注业务本身,其他相关内容都内置了,例如 MQTT、OTA 等功能
  • 灵活的 Lambda 支持,它的 Lambda 就是 C++ 的 Lambda,因此对于有能力的开发者来说,可以直接写代码

总的来说,对于一般 DIY 项目来说,ESPHome 足够强大、足够灵活来处理大部分需求了。

INA219



阅读全文 »

就是要 4K 双显,M1 MacBook Pro + DisplayLink 性能体验测试

这是什么坑

在使用一段 M1 芯片的 13 寸 MacBook Pro 之后,一直有一个问题没有解决,那就是两台 4K 显示器的一台,只能闲置在那里。

虽然给 M1 MacBook Pro 配备的是 StarTech 雷电 3 接口的扩展坞,它拥有一个 DisplayPort 接口和一个全功能 USB Type-C 接口,在配备 Intel 芯片的 16 寸 MacBook Pro 上,它是可以直接驱动两个 4K 显示器。

但是由于 M1 芯片又或者是 M1 MacBook Pro 的限制,配备 M1 芯片的 MacBook Pro 只能驱动一台 4K 显示器,另外一台显示器,即使将它连接在 MacBook Pro …

阅读全文 »

MacBook Pro 16′ 散热大作战

这是什么坑

自从苹果在 2019 年,去掉蝶式键盘,恢复剪刀键盘之后,终于觉得可以入手了,而且在这一年,除了键盘可以接受,而且屏幕也增大到了 16 寸,并且增加了 AMD Radeon 5500M 这样的高规格显卡,选配 8G 显存价格也很实惠。

最终,我选配了一台 i9 2.3G + 64G 内存 + 5500M 8G 的 16 寸 MacBook Pro。

唔,入手之后,还是很香的,毕竟键盘好用,性能也是我使用过的 MacBook 中最强的,而且在经过苹果几年的培养,市场上也有了很多 USB Type-C Dock 可以选择,在使用上已经不太有什么障碍。

但是,在使用这台电脑的过程中,一直有两个问题困扰着我:

  • 一个是接上外接显示器之后,GPU 功耗会直接增加到 20W,从而使得风扇一直工作在 3500RPM 以上
  • 另外一个是所谓的梦幻单热管压 i9 导致 Intel 5 秒真男人,在我实测之后,发现,嘿,还真是……

对于第一个问题,在我经过了长达一个月的折腾之后,终于初步解决了,这个在文末会提到。

然后在前几天,刚好有一批照片和视频需要导出,然后我就顺便打开 Intel Power Gadget,想看看这个 …

阅读全文 »

六款便携 4K60Hz USB Type-C 扩展坞横向对比评测

在之前对比了一些扩展坞,以及新买了一个 DockCase 的扩展坞之后,对现在这些便携类型的 USB Type-C 扩展坞起了兴趣,并且做了一些对比测试:

然后最近想把之前购买的绿联 CM121 Type-C 扩展坞替换掉,因为它虽然接口齐全,包含了 HDMI 输出、SF/TD 读卡器、千兆网口、USB Type-A 接口、PD 充电直通,但是它的 HDMI 输出只能到达 4K30Hz,在真正感受过 4K30Hz 和 4K60Hz 的区别之后,已经不能接受 4K30Hz 的使用感受了。

因此,我在京东找了一番,筛选出来 HDMI 输出是 4K60Hz 的 Type-C 扩展坞,并且价格不算高的产品,来做一个横向对比评测,同时测试一下对 M1 MacBook 的兼容性如何,看看有哪一些能代替绿联 CM121,也可以顺便看一下在这个时间点,市面上便携类型 Type-C …

阅读全文 »

便携 Type-C 扩展坞那些事和 DockCase 7 合 1 带屏扩展坞评测

1. 为什么又买扩展坞

之前因为换了 MacBook Pro 买了一些 USB Type-C 扩展坞 ,已经做了一期对比,现在已经过去一年了,而且也有新出了 M1 芯片的 MacBook Pro,借着这个机会再看看有没有新的更好用的 Type-C 扩展坞。

在去年对比几个 Type-C 扩展坞的时候,对其中新出的 PS186 HDMI 芯片很感兴趣,它可以在 USB 3.2 Gen 2x1 10Gbps 的带宽上实现 4K60Hz 显示输出的同时,仍然有 5Gbps 的 USB 传输速率,这个基本上能满足大部分场景下的需求,所以那些只能支持到 4K30Hz 的扩展坞就不考虑。

在去年 6 月份这个时间点,带有 PS186 HDMI 芯片的扩展坞并没有太多产品可以选择,而且之前购买的威迅扩展坞,也只有 3 个 USB 3.0 和 1 …

阅读全文 »

自用 MacBook Pro USB-C 扩展坞介绍和对比

四款Type-C扩展坞

自从我淘汰了 2015 款 MacBook Pro,买了新款 MacBook Pro 16 寸版本之后,因为它只有四个 USB Type-C 口,去掉了 2015 款自带的 USB Type-A,以及 HDMI 接口,导致在使用 USB Type-A 设备,以及外接显示器时,需要额外的扩展坞才可以实现。

为了解决这个问题,就必须要好好找找便宜又大碗的扩展坞了。

筛选目标

基于 MacBook Pro 雷电 3 接口高达 40Gbps 的带宽,可以做到一根线实现显示器输出、电源输入以及扩展 USB-A 数据上行,因此在筛选目标产品时,会优先考虑以下几个功能是否能实现:

  • 一根线实现电源输入、显示器输出、数据上行
  • Dock 类型设备需要支持双显示器
  • 电源输入功率足够使用,60W 起
  • 有 SD/TF 卡槽更佳
  • 不喜欢硬连接到 MBP 上的设备,偏好使用数据线连接的扩展坞

当然因为所有扩展坞针对的场景不一样,会对设备能支持的能力有所取舍,例如对于 Dock 类型的扩展坞,会更多要求全面的功能支持,但是对于便携类型的扩展坞,则是根据自己的实际使用场景去选择必需的功能,以及可选的功能。

目标产品

在参考同事的意见,阅读网上的评测,以及实际对比各种扩展坞的功能之后,最终陆续购买了以下几款扩展坞:

  • CalDigit


阅读全文 »

另外一些胶片

对一个宅来说,热情果然很容易消退,胶卷的消耗速度是越来越慢。