想用 Python 来控制硬件,做一些小玩意儿

2022-11-01 14:47:56 +08:00
 ralstonish

最近想开始尝试通过编程与硬件进行互动(比如简单的控制风扇,自己弄几个传感器做一个空气质量检测仪之类的)

不过我主要用的是 python ,其他的语言没有怎么深入学过,不知道单单用 python 是否可行?

家里翻了一下,有一块树莓派 4B ,之前捣鼓了软路由,看了下要接传感器好像还蛮复杂的,请教一下大家,如果想玩一些硬件、传感器之类的,从哪里下手会比较好一些?(就玩玩,暂时不打算从 c 开始做起)

有没有别的套件或者开发板推荐呢?

PS:有网友推荐去淘宝花 10 块钱买个 esp32c3 ,刷 micropython ,带 adc/dac/i2c/spi 等一些列外设接口。不知道这个连接传感器用方便不。

树莓派的看了下,Python 读取传感器的方式,树莓派可以直接通过 GPIO 口读取,主要问题,无法读取模拟传感器,需要额外的硬件( ADC MCP3008 ),比如: https://tutorials-raspberrypi.com/mcp3008-read-out-analog-signals-on-the-raspberry-pi/

自己之前没接触过硬件,感觉入门还是有点难度 = =

4282 次点击
所在节点    Python
19 条回复
sivacohan
2022-11-01 14:58:50 +08:00
娱乐的话还是很简单的。

Linux 的的抽象是万物皆文件,你把各种外设都当成一个文件就好了。
然后 I2C ,SPI 之类的通信协议当成一个驱动就好了。
listenfree
2022-11-01 16:10:25 +08:00
建议买 esp32 ,刷 micropython 没问题,难点主要在硬件模电,数电,上拉,下拉,i2c,如果只是点亮一个灯,是很简单。
muooOOO
2022-11-01 16:32:14 +08:00
还有一种就是买 arduino 套件,各种传感器搭配起来很方便。但是需要你了解下 arduino 的开发语言,反正也不难
bnull
2022-11-01 16:36:37 +08:00
esp32 拿来做 iot 设备挺方便的,价格低廉性能也有,但是电子方面要学很多知识,这方面跳不过。最近在学校弄个小东西就是用 esp32cam 当视频源,电脑处理图片(不过其实 esp32 本身性能足够挺强的,例程中甚至有一个人脸识别)不过 esp32 缺陷也很明显,io 太少了,树莓派太贵了玩不起,stm32 性能稍微弱了一些但是资源资料都挺充足的。搞这些东西还是得学点 c 把,如果用 stm32 开发的话相当轻松了,hal 库封装的很好,绝大部分直接用就行了。实际底层都还是操作寄存器的
qzwmjv
2022-11-01 16:37:19 +08:00
esp32 自带 adc 虽然不太准,
开发简单还是建议搞数字输出的传感器,上 esp32s 系列吧,c 系列弱一点
marcong95
2022-11-01 16:43:24 +08:00
如果你只是自己弄着玩,或者用来辅助自己的智能家居啥的,其实你说的已经足够了。而且传感器感觉很多都是数字的,真需要用模拟传感器,那就在买个模块插上去就好了

想进一步玩的话 ESP32 确实也更合适,毕竟等你多弄几个到处放的时候树莓派就算原价也显得比较贵了。
eyewater
2022-11-01 17:16:49 +08:00
可以买个 esp32 刷 arduino 的固件,arduino 的语言还是很简单,比如这个,用 DHT11 传感器获取温湿度 https://create.arduino.cc/projecthub/arcaegecengiz/using-dht11-b0f365

micropython 也用过,不过感觉没有 arduino 的库多
ralstonish
2022-11-01 17:30:29 +08:00
非常感谢大家的回复!
Eiden
2022-11-01 17:38:49 +08:00
mpy 可以实现你的需求, 但是 mpy 最多语法上手快, 你还是要了解很多硬件外设知识的

可以试试买 esp32, 然后用乐鑫官方的 ESP-IDF 开发框架, 比较适合软件开发的人上手, 单片机开发场景 mpy 这种相较 c 其实并没有提供多少便利
kokutou
2022-11-01 17:42:25 +08:00
Arduino 算了。。学一下很快的。。。
Arduino 库多的 1b
wangbin526
2022-11-01 17:54:27 +08:00
用 ESP-IDF 的路过,新手入门不推荐,这货没成体系的教程,基本都得看官方文档和示例自己啃
建议 Arduino 吧,这货 C 语言就那二三十句,到处都是完整教程,最主要是第三方库多,基本上常见传感器都有现成库,买个合宙 9.9 的 ESP32C3 接几个传感器半小时搞定,micropython 不推荐,不过进阶的 ESP32S3 语音识别、人脸识别什么都只有官方的 IDF 库
当然做产品最后还是得 ESP-IDF ,光一个加密 ESP32 Arduino 就很难搞定
PS:乐鑫刚出了一本官方的 ESP-IDF 教程,《 ESP32-C3 物联网工程开发实战》,IDF 至少有一本官方教程了,不过还是得自己啃示例
Scirocco
2022-11-01 20:08:46 +08:00
虽然微雪的传感器啥的很贵,但是可以先买他们家的,有很完备的例程。

https://www.waveshare.net/wiki/Main_Page

(实际上买相同型号和接口的传感器就行,例程是通用的)
leimao
2022-11-01 23:14:21 +08:00
NVIDIA Jetson
MonoLogueChi
2022-11-02 00:06:48 +08:00
只用 Python 的话可以尝用 circuitypython 或者是 micropython 。硬件的话建议用第三方的 pico 开发板,大概 20-30 块钱一个,可以搜 rp2040 开发板不建议用树莓派官方的 pico 。如果想用 esp32 系列开发板的话

esp32 优点价格便宜,io 口多,性能强,缺点没 usb ,不支持 dfu
esp32s2 优点,原生 usb 支持,价格便宜,io 口多,缺点,不支持蓝牙
esp32s3 优点,原生 usb 支持,io 口多,性能强,缺点,贵
esp32c3 优点 便宜,低功耗。缺点,io 口相对较少,不支持 usb ,但支持 usbcdc
MonoLogueChi
2022-11-02 00:08:46 +08:00
补充,如果不想买开发板,用树莓派 4b 也是可以的,circuitpython 和 micropython 都是可以直接在树莓派上跑的,而且比开发板上更方便
customsshen
2022-11-02 14:22:48 +08:00
mpy 可以简单点,但是相比 arduino 用 C 开发的话,库少的可怜。python 的先天优势都没了。
ralstonish
2022-11-02 17:35:41 +08:00
@wangbin526 感谢!我去看看~
ralstonish
2022-11-02 17:37:16 +08:00
@MonoLogueChi 非常感谢!
MoyiTech
2022-11-09 17:14:13 +08:00
高中的时候做过,esp8266 开发板可以使用 Arduino 进行编程,然后可以使用 HTTP 协议或者连接 MQTT 实现联动

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/891774

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX