当前位置:首页 > 嵌入式 > 嵌入式分享
[导读]在物联网与边缘计算兴起的今天,单板计算机(如树莓派、Jetson Nano等)凭借其低功耗、高集成度的特性,成为开发者探索硬件编程的理想平台。而Python凭借其简洁的语法和丰富的库支持,成为单板计算机开发的首选语言。本文将通过三个从入门到进阶的实践项目,带你快速掌握基于单板计算机的Python开发技巧。

在物联网与边缘计算兴起的今天,单板计算机(如树莓派、Jetson Nano等)凭借其低功耗、高集成度的特性,成为开发者探索硬件编程的理想平台。而Python凭借其简洁的语法和丰富的库支持,成为单板计算机开发的首选语言。本文将通过三个从入门到进阶的实践项目,带你快速掌握基于单板计算机的Python开发技巧。

一、环境感知小助手:温湿度监测系统

项目背景

在智能家居或农业大棚场景中,实时监测环境温湿度是基础需求。本项目使用DHT11温湿度传感器与树莓派,通过Python读取传感器数据并显示在LCD屏幕上,同时将数据上传至云端进行可视化分析。

硬件准备

树莓派4B(或其他单板计算机)

DHT11温湿度传感器

1602 LCD显示屏(I2C接口)

面包板与杜邦线

代码实现

# 安装依赖库

# sudo apt-get install python3-pip

# pip3 install Adafruit_DHT smbus RPi.GPIO

import Adafruit_DHT

import smbus

import time

from RPi import GPIO

# 初始化DHT11传感器(GPIO4引脚)

sensor = Adafruit_DHT.DHT11

pin = 4

# 初始化I2C LCD(地址0x27)

bus = smbus.SMBus(1)

LCD_ADDR = 0x27

def read_sensor():

humidity, temperature = Adafruit_DHT.read_retry(sensor, pin)

if humidity is not None and temperature is not None:

return round(temperature, 1), round(humidity, 1)

return None, None

def display_lcd(temp, hum):

# 实际项目中需根据LCD驱动协议实现显示逻辑

# 此处简化为打印到终端

print(f"温度: {temp}℃ | 湿度: {hum}%")

try:

while True:

temp, hum = read_sensor()

if temp is not None:

display_lcd(temp, hum)

# 实际项目可添加MQTT上传代码

# mqtt_publish(temp, hum)

time.sleep(2)

except KeyboardInterrupt:

print("程序终止")

关键点解析

传感器驱动:Adafruit_DHT库封装了传感器通信协议,read_retry方法会自动重试失败读取

I2C通信:通过smbus库与LCD进行字节级通信,需根据具体显示屏型号调整地址与指令集

异常处理:传感器可能因接触不良返回None,需添加判断避免程序崩溃

扩展功能

添加蜂鸣器报警:当温湿度超出阈值时触发

集成MQTT协议:将数据上传至阿里云/腾讯云IoT平台

制作Web仪表盘:使用Flask框架搭建本地监控页面

二、智能安防卫士:人体感应报警器

项目背景

家庭安防场景中,低成本的人体感应方案需求旺盛。本项目使用HC-SR501红外传感器与树莓派,检测到人体移动时触发摄像头拍照,并将照片发送至邮箱。

硬件准备

HC-SR501红外传感器

USB摄像头

树莓派(需安装picamera库)

代码实现

# 安装依赖库

# pip3 install picamera yagmail

import RPi.GPIO as GPIO

import time

import picamera

import yagmail

# 初始化GPIO(BCM编号模式)

GPIO.setmode(GPIO.BCM)

PIR_PIN = 17

GPIO.setup(PIR_PIN, GPIO.IN)

# 邮箱配置(需开启SMTP服务)

yag = yagmail.SMTP('your_email@gmail.com', 'your_password')

def capture_image():

with picamera.PiCamera() as camera:

camera.resolution = (640, 480)

timestamp = time.strftime("%Y%m%d-%H%M%S")

filename = f"/home/pi/alert_{timestamp}.jpg"

camera.capture(filename)

return filename

try:

print("等待人体感应...(Ctrl+C退出)")

while True:

if GPIO.input(PIR_PIN):

print("检测到人体移动!")

img_path = capture_image()

# 发送带附件的邮件

yag.send('recipient@example.com', '安防警报', '检测到异常移动!', [img_path])

time.sleep(10) # 防重复触发

except KeyboardInterrupt:

GPIO.cleanup()

print("程序已停止")

关键点解析

传感器特性:HC-SR501输出数字信号,高电平表示检测到人体,需调整延时与灵敏度电位器

摄像头操作:picamera库专为树莓派摄像头设计,支持分辨率、曝光等参数调整

邮件发送:yagmail库简化了SMTP配置,实际使用时需开启邮箱的"允许不够安全的应用"选项

安全优化

添加密码保护:通过Flask制作Web登录界面

双重验证:结合门窗传感器实现多条件触发

加密传输:使用SSL加密邮件内容

三、自动化种植管家:植物浇水系统

项目背景

精准农业场景中,自动化灌溉可节约水资源30%以上。本项目使用土壤湿度传感器与继电器模块,构建闭环控制系统,根据土壤湿度自动启停水泵。

硬件准备

土壤湿度传感器(模拟输出型)

5V继电器模块

小型水泵

树莓派

代码实现

# 安装依赖库

# pip3 install RPi.GPIO

import RPi.GPIO as GPIO

import time

# 引脚定义

SOIL_PIN = 0 # 使用ADC芯片时对应的通道

RELAY_PIN = 21

THRESHOLD = 300 # 土壤湿度阈值(需根据实际校准)

GPIO.setmode(GPIO.BCM)

GPIO.setup(RELAY_PIN, GPIO.OUT)

# 模拟读取土壤湿度(实际项目需连接ADC芯片)

def read_soil_moisture():

# 此处简化为随机值模拟,实际应读取ADC转换结果

import random

return random.randint(200, 800)

def control_pump(moisture):

if moisture < THRESHOLD:

print("土壤过干,启动水泵")

GPIO.output(RELAY_PIN, GPIO.HIGH)

else:

print("土壤湿度正常,停止水泵")

GPIO.output(RELAY_PIN, GPIO.LOW)

try:

while True:

moisture = read_soil_moisture()

print(f"当前土壤湿度: {moisture}")

control_pump(moisture)

time.sleep(5)

except KeyboardInterrupt:

GPIO.cleanup()

关键点解析

模拟信号处理:土壤传感器输出0-3.3V模拟信号,需通过ADS1115等ADC芯片转换为数字量

继电器控制:树莓派GPIO输出电流较小,需通过继电器驱动水泵等大功率设备

PID控制(进阶):可引入PID算法实现更精准的湿度控制,避免水泵频繁启停

硬件连接图

1土壤传感器 → ADC芯片 → 树莓派GPIO → 继电器 → 水泵

开发建议

虚拟环境管理:使用venv创建隔离的Python环境,避免库版本冲突

日志记录:添加logging模块记录系统运行状态,便于故障排查

远程调试:通过SSH或VNC连接树莓派,实现无线开发

性能优化:对于实时性要求高的项目,可考虑使用Cython加速关键代码

从温湿度监测到智能安防,再到自动化种植,这三个项目覆盖了单板计算机Python开发的典型场景。通过实践这些案例,你将掌握GPIO控制、传感器数据采集、网络通信等核心技能,为开发更复杂的物联网应用打下坚实基础。现在,不妨选择一个项目开始动手实践吧!

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读

特朗普集团近日取消了其新推出的T1智能手机“将在美国制造”的宣传标语,此举源于外界对这款手机能否以当前定价在美国本土生产的质疑。

关键字: 特朗普 苹果 AI

美国总统特朗普在公开场合表示,他已要求苹果公司CEO蒂姆·库克停止在印度建厂,矛头直指该公司生产多元化的计划。

关键字: 特朗普 苹果 AI

4月10日消息,据媒体报道,美国总统特朗普宣布,美国对部分贸易伙伴暂停90天执行新关税政策,同时对中国的关税提高到125%,该消息公布后苹果股价飙升了15%。这次反弹使苹果市值增加了4000多亿美元,目前苹果市值接近3万...

关键字: 特朗普 AI 人工智能 特斯拉

3月25日消息,据报道,当地时间3月20日,美国总统特朗普在社交媒体平台“真实社交”上发文写道:“那些被抓到破坏特斯拉的人,将有很大可能被判入狱长达20年,这包括资助(破坏特斯拉汽车)者,我们正在寻找你。”

关键字: 特朗普 AI 人工智能 特斯拉

1月22日消息,刚刚,新任美国总统特朗普放出重磅消息,将全力支持美国AI发展。

关键字: 特朗普 AI 人工智能

特朗普先生有两件事一定会载入史册,一个是筑墙,一个是挖坑。在美墨边境筑墙的口号确保边境安全,降低因非法移民引起的犯罪率过高问题;在中美科技产业之间挖坑的口号也是安全,美国企业不得使用对美国国家安全构成威胁的电信设备,总统...

关键字: 特朗普 孤立主义 科技产业

据路透社1月17日消息显示,知情人士透露,特朗普已通知英特尔、铠侠在内的几家华为供应商,将要撤销其对华为的出货的部分许可证,同时将拒绝其他数十个向华为供货的申请。据透露,共有4家公司的8份许可被撤销。另外,相关公司收到撤...

关键字: 华为 芯片 特朗普

曾在2018年时被美国总统特朗普称作“世界第八奇迹”的富士康集团在美国威斯康星州投资建设的LCD显示屏工厂项目,如今却因为富士康将项目大幅缩水并拒绝签订新的合同而陷入了僵局。这也导致富士康无法从当地政府那里获得约40亿美...

关键字: 特朗普 富士康

今年5月,因自己发布的推文被贴上“无确凿依据”标签而与推特发生激烈争执后,美国总统特朗普签署了一项行政令,下令要求重审《通信规范法》第230条。

关键字: 谷歌 facebook 特朗普

众所周知,寄往白宫的所有邮件在到达白宫之前都会在他地进行分类和筛选。9月19日,根据美国相关执法官员的通报,本周早些时候,执法人员截获了一个寄给特朗普总统的包裹,该包裹内包含蓖麻毒蛋白。

关键字: 美国 白宫 特朗普
关闭