1. LED灯闪烁控制
实验简介:通过树莓派的GPIO接口控制LED灯的闪烁,这是一个非常基础的入门实验,适合家长与孩子一起完成。
操作步骤:
- 准备一个树莓派和LED灯。
- 使用杜邦线连接树莓派的GPIO引脚和LED灯的正负极。
- 编写Python代码,通过GPIO库控制LED灯的开关。
import RPi.GPIO as GPIO
import time
LED_PIN = 17 # 假设使用的是GPIO17引脚
GPIO.setmode(GPIO.BCM)
GPIO.setup(LED_PIN, GPIO.OUT)
try:
while True:
GPIO.output(LED_PIN, GPIO.HIGH)
time.sleep(1)
GPIO.output(LED_PIN, GPIO.LOW)
time.sleep(1)
except KeyboardInterrupt:
pass
finally:
GPIO.cleanup()
2. 自动浇花系统
实验简介:利用树莓派监测土壤湿度,自动控制浇花,让孩子了解物联网的基本概念。
操作步骤:
- 准备树莓派、湿度传感器、继电器、水泵和相应电路。
- 编写Python代码,根据土壤湿度自动控制水泵的开关。
import RPi.GPIO as GPIO
import time
MOISTURE_SENSOR_PIN = 27
PUMP_PIN = 22
GPIO.setmode(GPIO.BCM)
GPIO.setup(MOISTURE_SENSOR_PIN, GPIO.IN)
GPIO.setup(PUMP_PIN, GPIO.OUT)
try:
while True:
moisture_level = GPIO.input(MOISTURE_SENSOR_PIN)
if moisture_level == GPIO.LOW:
GPIO.output(PUMP_PIN, GPIO.HIGH)
time.sleep(5)
GPIO.output(PUMP_PIN, GPIO.LOW)
except KeyboardInterrupt:
pass
finally:
GPIO.cleanup()
3. 温湿度记录仪
实验简介:通过树莓派连接温湿度传感器,记录并显示室内外温度和湿度。
操作步骤:
- 准备树莓派、DHT11传感器和相应电路。
- 编写Python代码,读取传感器数据并显示。
import RPi.GPIO as GPIO
import dht
import time
DHT11_PIN = 4
def read_dht11():
sensor = dht.DHT11(DHT11_PIN)
sensor.measure()
return sensor.temperature(), sensor.humidity()
try:
while True:
temp, hum = read_dht11()
print(f"Temperature: {temp} C, Humidity: {hum}%")
time.sleep(2)
except KeyboardInterrupt:
pass
finally:
GPIO.cleanup()
4. 智能灯光控制
实验简介:通过树莓派控制智能灯泡,实现远程开关灯,增加家庭生活的科技感。
操作步骤:
- 准备树莓派、智能灯泡和相应模块(如ESP8266)。
- 编写Python代码,通过Wi-Fi发送指令控制智能灯泡。
import socket
def control_light(bulb_ip, command):
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.connect((bulb_ip, 80))
s.sendall(f"GET /{command} HTTP/1.1\r\nHost: {bulb_ip}\r\n\r\n".encode())
data = s.recv(1024)
print(data.decode())
control_light('192.168.1.100', 'on')
5. 视频监控
实验简介:使用树莓派结合摄像头,搭建一个简单的视频监控系统。
操作步骤:
- 准备树莓派、摄像头和TF卡。
- 编写Python代码,实现视频录制和实时监控。
import cv2
import time
cap = cv2.VideoCapture(0)
while True:
ret, frame = cap.read()
if ret:
cv2.imshow('Camera', frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
else:
break
cap.release()
cv2.destroyAllWindows()
6. 语音助手
实验简介:使用树莓派和语音识别模块,搭建一个简单的语音助手。
操作步骤:
- 准备树莓派、语音识别模块(如ESP8266)和相应电路。
- 编写Python代码,实现语音识别和命令执行。
import speech_recognition as sr
r = sr.Recognizer()
with sr.Microphone() as source:
print("请说些什么...")
audio = r.listen(source)
try:
command = r.recognize_google(audio)
print(f"你说了:{command}")
except sr.UnknownValueError:
print("无法理解音频")
except sr.RequestError as e:
print(f"请求错误;{e}")
7. 智能门锁
实验简介:通过树莓派实现门锁的智能控制,让孩子了解密码学的基本概念。
操作步骤:
- 准备树莓派、指纹识别模块、继电器和电路。
- 编写Python代码,实现指纹识别和门锁控制。
import RPi.GPIO as GPIO
import指纹识别库
LOCK_PIN = 21
GPIO.setmode(GPIO.BCM)
GPIO.setup(LOCK_PIN, GPIO.OUT)
try:
while True:
if 指纹识别库识别成功():
GPIO.output(LOCK_PIN, GPIO.LOW)
time.sleep(1)
GPIO.output(LOCK_PIN, GPIO.HIGH)
else:
time.sleep(0.5)
except KeyboardInterrupt:
pass
finally:
GPIO.cleanup()
8. 智能交通灯
实验简介:利用树莓派控制交通灯,让孩子了解交通规则和编程。
操作步骤:
- 准备树莓派、LED灯和相应电路。
- 编写Python代码,实现交通灯的自动控制。
import time
RED_PIN = 23
YELLOW_PIN = 24
GREEN_PIN = 25
GPIO.setmode(GPIO.BCM)
GPIO.setup(RED_PIN, GPIO.OUT)
GPIO.setup(YELLOW_PIN, GPIO.OUT)
GPIO.setup(GREEN_PIN, GPIO.OUT)
def change_light(red, yellow, green):
GPIO.output(RED_PIN, red)
GPIO.output(YELLOW_PIN, yellow)
GPIO.output(GREEN_PIN, green)
try:
while True:
change_light(1, 0, 0) # 红灯
time.sleep(5)
change_light(0, 1, 0) # 黄灯
time.sleep(2)
change_light(0, 0, 1) # 绿灯
time.sleep(5)
except KeyboardInterrupt:
pass
finally:
GPIO.cleanup()
9. 智能机器人
实验简介:利用树莓派和机器人底盘,搭建一个简单的智能机器人。
操作步骤:
- 准备树莓派、机器人底盘和相应模块(如GPIO扩展板)。
- 编写Python代码,实现机器人的基本动作控制。
import RPi.GPIO as GPIO
import time
MOTOR_A_PIN1 = 5
MOTOR_A_PIN2 = 6
MOTOR_B_PIN1 = 13
MOTOR_B_PIN2 = 19
GPIO.setmode(GPIO.BCM)
GPIO.setup(MOTOR_A_PIN1, GPIO.OUT)
GPIO.setup(MOTOR_A_PIN2, GPIO.OUT)
GPIO.setup(MOTOR_B_PIN1, GPIO.OUT)
GPIO.setup(MOTOR_B_PIN2, GPIO.OUT)
def forward():
GPIO.output(MOTOR_A_PIN1, GPIO.HIGH)
GPIO.output(MOTOR_A_PIN2, GPIO.LOW)
GPIO.output(MOTOR_B_PIN1, GPIO.HIGH)
GPIO.output(MOTOR_B_PIN2, GPIO.LOW)
def backward():
GPIO.output(MOTOR_A_PIN1, GPIO.LOW)
GPIO.output(MOTOR_A_PIN2, GPIO.HIGH)
GPIO.output(MOTOR_B_PIN1, GPIO.LOW)
GPIO.output(MOTOR_B_PIN2, GPIO.HIGH)
try:
while True:
forward()
time.sleep(2)
backward()
time.sleep(2)
except KeyboardInterrupt:
pass
finally:
GPIO.cleanup()
10. 智能家居控制系统
实验简介:利用树莓派搭建一个智能家居控制系统,实现家庭设备的远程控制。
操作步骤:
- 准备树莓派、智能插座、智能灯泡和相应模块(如ESP8266)。
- 编写Python代码,通过Wi-Fi发送指令控制家庭设备。
import socket
def control_device(device_ip, command):
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.connect((device_ip, 80))
s.sendall(f"GET /{command} HTTP/1.1\r\nHost: {device_ip}\r\n\r\n".encode())
data = s.recv(1024)
print(data.decode())
control_device('192.168.1.100', 'on')
通过以上10个创意小实验,家长和孩子可以一起学习树莓派的基本操作,同时了解编程、物联网、智能家居等相关知识。这些实验不仅能够提高孩子的动手能力和创造力,还能增进亲子关系,让家庭生活更加有趣。
