零基础碰硬件,一条不到 60 块钱能走通的路
上一篇写了一件事:AI 把「能不能把它做出来」这堵墙拆掉了大半,但露出了后面「系统」那堵墙。
写完有人问我:那硬件呢?
我想了想,硬件其实是同一个故事的另一个版本,而且更极端——因为你面对的不只是别人的代码,还有物理世界。
但这里有个可能反直觉的结论:对零基础的人来说,硬件反而是现在更好的入门方向。
原因有三个:
- 反馈是物理的。灯亮了就是亮了,不需要你去理解什么是「正确的抽象」。
- 问题空间是有限的。「LED 不亮」满打满算就那么几种原因,能把它们一个个排除掉,你就有答案了。
- 你从一开始就知道 AI 帮不了你全部。纯软件里容易产生「AI 什么都能干」的错觉,硬件里不会——因为板子就在你桌上,它不在 AI 那儿。
下面是一条具体的路:0 元起步,不到 60 元走通。
一、先算账:入门到底要花多少钱

答案可能比你想的便宜。
台阶一:0 元。浏览器打开 Wokwi(wokwi.com),不用装软件、不用注册账号、不用买板子,直接在里面搭电路、写代码、点运行。ESP32 的虚拟板子、LED、按钮、电阻、显示屏、各种传感器都有,连 WiFi 都能仿真。
台阶二:约 40 元。让物理世界真的动一下:
| 要买的东西 | 参考价 |
|---|---|
| ESP32 开发板 | 约 25 元 |
| 面包板 | 约 5 元 |
| 杜邦线(公对公、母对母各一把) | 约 5 元 |
| LED 和 220 欧电阻 | 约 3 元 |
| USB 数据线 | 家里多半就有 |
台阶三:再加约 15 元。一块电容式的土壤湿度传感器,大概 10 到 15 元。
全套不到 60 元。
这个数字值得对比一下。十来年前学单片机是什么流程:买一块开发板(几十到一百多)、买一个专用烧录器、买一本厚书、装一个只能在 Windows 上跑的 IDE……而且最关键的是,烧不进去的时候,没有搜索,没有 AI,只能去论坛发帖等三天。
现在同一个起步动作,成本降了一个数量级。但最大的变化其实不是钱——是你能问 AI 了。这一点第五节展开说。
二、为什么第一块板子选 ESP32

新手最容易纠结的就是选哪块板子。直接给结论:ESP32。理由三条。
第一条,WiFi 和蓝牙是烧在芯片里的。你要做任何一个联网的东西,都不用再另买通信模块。不要小看这一条——新手第一次踩坑,十有八九踩在「买了 A 发现要配 B,买了 B 发现还要配 C」上。
第二条,二三十块钱,而且能写 Python。ESP32 支持 MicroPython,语法和 Python 一样。对不是程序员的人来说,这比啃 C 语言的指针,心理门槛低得多。当然,真做复杂项目最终还是要回到 C/C++,但入门阶段不该卡在语言上。
第三条,国内资料最多。中文教程、视频、问答,ESP32 是压倒性第一。这很重要,因为新手遇到的问题,百分之九十九别人已经踩过了——你需要的不是「能解决问题」,而是「能搜到答案」。
顺便说一下另外两个常见选择,为什么不推荐给零基础:
- Arduino UNO:非常经典,但没有网络功能,做联网项目要另买 WiFi 模块;性能也弱,跑不动现在流行的东西。
- STM32:功能强、工业上用得很多,但工具链重(装 CubeIDE、配 HAL 库、理解时钟树),新手很容易在「配环境」这一步就卡死,还没开始学东西就先放弃了。
所以结论是:ESP32 是现在零基础入门性价比最高的入口。一块板子、一根 USB 线,就能同时学「读传感器」「控制硬件」「连网络」三件事。
三、第 0 步:不花一分钱,先在浏览器里把灯点亮
很多人卡在「我得先买板子」,结果板子到了,发现线不知道往哪插、代码不知道往哪写,就搁置了。
正确的第一步是:先在仿真里把代码和接线逻辑摸熟,再买板子。
Wokwi 的操作就六步:
- 浏览器打开 wokwi.com
- 点 New Project,选 ESP32 的模板
- 左边是代码区,右边是电路区
- 点右边的加号,从元件库里拖一个 LED 和一个电阻出来
- 把 LED 长脚接 GPIO2,短脚经过电阻接 GND
- 点顶部的绿色三角,运行
你会看到灯开始闪,串口监视器里也会打印出信息。整个过程不需要花一分钱。
这一步的意义在哪?你在零成本的情况下,把「代码长什么样」「引脚是什么概念」「接线是什么逻辑」这三件事过了一遍。等板子到了,你只是把屏幕里的东西搬到桌面上。
但必须说清仿真的边界——这一点很多教程不讲。
Wokwi 能验证的是:代码逻辑对不对、接线思路对不对。
Wokwi 验证不了的是:电源够不够、模拟量准不准、射频行不行、传感器在真实环境里怎么响应。
它的官方文档自己就写得很清楚:仿真结果不能替代物理验证。所以仿真解决的是「先把该会的学会」,不是「不用买板子」。
四、第 1 步:花 40 块钱,让物理世界真的动一下
板子到了,做第一件事:点亮一个 LED。
接线就三根线:LED 的长脚(正极)接 ESP32 的 GPIO2;LED 的短脚接一个 220 欧电阻;电阻的另一端接 GND。
为什么要串一个电阻?因为 LED 直接接电源会烧。220 欧是常见值,不必纠结具体数字,先能亮起来要紧。
代码用 Arduino 风格,就是最经典的那一段:
void setup() {
pinMode(2, OUTPUT); // 把 GPIO2 设成输出
}
void loop() {
digitalWrite(2, HIGH); // 给高电平,灯亮
delay(1000); // 等 1 秒
digitalWrite(2, LOW); // 给低电平,灯灭
delay(1000);
}
上传成功后,灯应该一秒一闪。
如果它闪了——恭喜,你已经完成了从「写代码」到「改变物理世界」的跨越。这个感觉和写网页、写后台完全不一样。
如果它没闪——更好。因为学习真正开始的地方,就在这里。下一节专门讲这件事。
五、这一节最重要:有 AI 了,新人该怎么用它
先说结论:有 AI 之后,新手学硬件的路径变了,但「必须动手」这一条没变。
老路径是:看书,背寄存器,抄例程,调不通,去论坛发帖等三天,放弃。
新路径是:说清楚要做什么,AI 给代码,调不通,把现象描述给 AI,AI 帮你缩小范围。
看起来轻松了很多。但这里有个新陷阱,很多教程不会告诉你:
AI 会给你一个「能编译但不对」的代码,而你现在没有能力判断它对不对。
软件里,代码错了通常会有报错、有日志、有异常。硬件不会。硬件只会「不工作」。
所以新人真正的核心技能,从「会写代码」变成了——把物理世界发生了什么,准确地描述给 AI。
这个差别有多大,看一个例子。

没用的问法是:「我的代码为什么不工作?」
AI 能怎么办?它只能把你的代码重写一遍,再猜几种可能。因为它不知道板子上发生了什么。
有用的问法是这样的:
ESP32 接了一个 LED 在 GPIO2。代码编译上传都成功,串口也在正常打印,但 LED 不亮。我用万用表量了 GPIO2 对地的电压,一直是 0V,不变化。接线是:LED 长脚接 GPIO2,短脚通过 220 欧电阻接 GND。可能是什么原因?
看出区别了吗?第二种问法里,你把这几件事交代清楚了:
- 环境:什么板子,接在哪个引脚
- 预期和实际:应该是闪,实际不亮
- 你已经排除掉的:代码能编译、能上传、串口正常——所以问题不在代码逻辑上
- 你测量到的:GPIO2 电压一直是 0V
- 物理连线的细节:长脚短脚、电阻串在哪
其中「量到 0V 而且不变化」这一条最关键,它直接把问题锁定在「这个引脚根本没有真正输出」这个方向上。AI 拿到这个信息,第一反应就会去问:引脚号对不对?板子上 GPIO2 是不是被板载 LED 占用了?代码真的烧进去了吗?
而如果缺了这条信息,AI 就只能泛泛地猜。
这就是硬件入门里最值钱的一句话:你要当 AI 的眼睛。
六、第 2 步:做一个真正有用的东西
前面都是练手。现在做一个能用的:土壤湿度监测。
选它的原因很实际:传感器便宜、原理好懂,而且这个东西在农业场景里是真的有用。
先说一个选型的知识点,这个坑一定要提前知道。市面上的土壤湿度传感器分两种,买错了会让你在一个月后莫名其妙:
| 类型 | 长相 | 问题 |
|---|---|---|
| 电阻式 | 两个叉子一样的金属电极 | 便宜,十几元。但两根金属一直通电插在湿土里,本质上是个微型电解槽,会腐蚀、长绿锈,几周后读数开始飘,然后报废 |
| 电容式 | 一整块覆了防腐涂层的板子 | 贵一点,10 到 15 元。导电部分被涂层封住,不参与电解,基本不腐蚀,寿命长得多 |
结论:想做能放住的东西,直接买电容式。电阻式只适合「接出来玩两天」。
接线还是三根:
| 传感器 | ESP32 | 说明 |
|---|---|---|
| VCC | 3.3V | 供电 |
| GND | GND | 共地 |
| AO | GPIO34 | 模拟输出,必须接在 ADC1 上 |
注意这里有两个坑,都是新手必踩的。
坑一:为什么必须接 GPIO34 这种引脚?因为ESP32 的 ADC2 在 WiFi 开启的时候是不可用的。你要做联网项目,就必须把模拟传感器接在 ADC1 上,也就是 GPIO32 到 GPIO39 这一组。接错了的典型现象是:不连 WiFi 时读数正常,一连上 WiFi 就开始乱跳。
坑二:为什么读数会一直顶到 4095 不动?因为 ESP32 的 ADC 默认量程只到大约 1.1V,而传感器输出可能到 2 到 3V。你不改衰减设置,读数早就顶满了,看起来就像「传感器坏了」。解决办法是加一句设置衰减的代码。
完整代码大致长这样:
const int PIN_SOIL = 34; // AO 接 GPIO34(ADC1)
// 标定得到的两个端点,先用占位值,标定后改
const int RAW_DRY = 3200; // 干透时的读数
const int RAW_WET = 1300; // 浇透时的读数
void setup() {
Serial.begin(115200);
// 关键:ESP32 的 ADC 默认量程偏小
// 加大衰减才能读到 0 到 3.3V
analogSetPinAttenuation(PIN_SOIL, ADC_11db);
}
void loop() {
int raw = analogRead(PIN_SOIL);
// 注意方向:干土读数大、湿土读数小
int pct = map(raw, RAW_DRY, RAW_WET, 0, 100);
pct = constrain(pct, 0, 100);
Serial.print("raw=");
Serial.print(raw);
Serial.print(" 湿度=");
Serial.print(pct);
Serial.println("%");
delay(1000);
}
还有一件事必须你自己做:标定。
代码里那两行标定值不能抄别人的。不同模块、不同土质、不同插入深度,原始值都不一样。做法很简单:
- 把探头放在空气里(或者插进彻底干透的土里),等串口读数稳定,记下来,填进干点
- 把同一盆土浇透,等读数稳定,记下来,填进湿点
- 这两个值就是 0% 和 100% 的两个端点,中间的值会被线性映射成百分比
顺带一提:很多电容式模块的方向是反的——越干读数越大,越湿读数越小。如果你发现方向反了,把这两个值对调就行。
标定完,再往里加一段 WiFi 上传的代码,数据就能发到你的服务器或者云平台了。
到这一步,你已经做出了一个能用的东西。整个过程不到 60 块钱。
七、新手一定会撞上的几个坑

这一节可以当手册用,遇到问题先来对一遍:
| 现象 | 原因 | 怎么办 |
|---|---|---|
| 读数恒定不动,一直是 0 或 4095 | AO 接错脚,接到了没有 ADC 功能的引脚 | 对照引脚图,接到 ADC1(GPIO32 到 39) |
| 读数顶到 4095 不动 | 没设 ADC 衰减 | 加一句 ADC_11db 衰减设置 |
| 湿度方向反了,越湿数字越大 | 该模块是「越干读数越大」 | 把干点和湿点两个值对调 |
| 干湿读数差不多,区分不开 | 没标定,或者探头插得太浅 | 做干湿两点标定,插够深度 |
| 埋了一段时间,读数越来越飘 | 买到了电阻式,电极被腐蚀 | 换成电容式 |
| 一连 WiFi 读数就乱跳 | AO 接到了 ADC2 引脚 | 改接到 ADC1 |
| WiFi 连不上,拿不到 IP | 密码错,或者路由器只有 5G 频段 | 打印连接状态排查;ESP32 只支持 2.4G |
| 读数来回跳十几点 | 接触不良,或者电源噪声 | 线接牢,连读十次取平均再发 |
注意这份表里的大部分问题,AI 光看代码是查不出来的。「线松了」「买错型号了」「插得不够深」——这些信息只有你能提供。
这就是硬件和纯软件最不一样的地方:一半的坑,不在代码里。
八、所以新人到底该怎么学
把上面整条路串起来,有三条原则。
第一条:先动起来,再求懂。
不要一开始就啃模电数电,也不要先把 C 语言从头学完再碰板子。顺序反了,大概率会放弃。正确的顺序是:先让灯亮起来,再问它为什么亮,再问这里为什么要加电阻,一点一点往下挖。
第二条:每个项目只加一个新东西。
点灯,加个按钮,加个传感器,加个 WiFi,加个云端。每次只增加一个新的、没学过的东西,其他部分都保持你已经会的。
千万不要一上来就做「智能农业大棚系统」。那个项目拆开是二十个小项目,其中任何一个卡住你,你都会觉得「我果然不适合干这个」。
第三条:别让 AI 替你做判断。
这是最重要的一条。
AI 给你的代码是候选,不是答案。它能写出看起来对的东西,但你的板子会不会烧、接线对不对、这个传感器适不适合长期埋在土里——AI 不知道,你得自己验证。
所以新人的核心能力不是「会问 AI」,是「会验证」:
- 会量电压
- 会看串口打印
- 会做对照实验,换一个引脚试试、换一根线试试
- 会把观察到的现象准确地说出来
九、再说回那堵墙
上一篇的结论是:AI 拆掉了「实现」这堵墙,露出了「系统」这堵墙。
硬件是同一个故事的另一个版本,但露出来的那堵墙更硬:
软件里,AI 拆掉「写代码」,露出「系统」。
硬件里,AI 拆掉「写代码」,露出「物理世界」。
而物理世界有个特点——它不会骗你,但它也不会替你解释。
灯不亮就是灯不亮。它不会告诉你,是因为线松了、引脚错了,还是电阻算错了。这个「翻译」的活儿,只能你来干。
所以有 AI 之后,新人入门硬件的门槛确实低了很多,代码这一关基本被抹平了。但门槛没有消失,只是换了位置:从「会不会写」,换成了「能不能观察、能不能描述、能不能验证」。
有意思的是,这三件事恰好也是 AI 最不擅长的。它在你的电脑里,而你的板子在你的桌上。
这中间的那段距离,就是你的位置。