1月9日,在线听RF检波器如何简化系统设计,与ADI工程师一起学习吧!→ 报名参会 ←
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » jackeyt的【RPI小分队】开发进程--树莓派实战上手【不断更新ing!】

共40条 3/4 1 2 3 4 跳转至
菜鸟
2014-10-22 23:14:23    评分
21楼

4.1 定时台灯

(1)编写点亮灯的程序on.sh

touch on.sh
nano on.sh

 写入程序后保存


#!/bin/bash
echo Exporting pin $1.
echo $1 > /sys/class/gpio/export
echo Setting direction to out.
echo out > /sys/class/gpio/gpio$1/direction
echo Setting pin high.
echo 1 > /sys/class/gpio/gpio$1/value



(2)编写台灯熄灭的程序


touch off.sh
nano off.sh

 写入代码后保存


#!/bin/bash
echo Setting pin low
echo 0 > /sys/class/gpio/gpio$1/value
echo Unexporting pin $1
echo $1> /sys/class/gpio/unexport

 


(3)定时任务

现在已经把控制GPIO接口开关的命令整合成了两个简单的脚本,下面就可以通过cron来设置每天定时开关灯的时间了。cron是Linux中用来定时执行任务的程序。通过使用cron,可以设置在指定的日期或者时间执行指定的命令,或者以指定的时间间隔(如一小时)来执行命令。

先修改linux的cron表

crontab -e

程序设置台灯在21点打开,于凌晨3点关闭;GPIO 24为其输出口控制

0 21 * * * /home/pi/on.sh 24
0 3 * * * /home/pi/off.sh  24

 




高工
2014-10-25 18:17:02    评分
22楼

写得很详细,再接再厉!


菜鸟
2014-10-27 16:54:25    评分
23楼
超级喜欢,学习了,正准备买派了。潜水中……

菜鸟
2014-10-28 21:27:37    评分
24楼

4.2简易发音板

附:

一个FTP软件:FileZilla,RPi默认SSH是支持SFTP的,这样我们上传/下载/管理文件就方便多了,软件默认UTF-8编码

打开后输入主机IP地址:sftp://***.***.***.***,用户名和密码后直接点快速连接就OK啦!

在做简易发音板时可以通过该软件上传音频文件

开始实验:

正确连接硬件,(图中使用23.24.25接口)


    在home/pi/wav/文件夹中建立wav.py文件

touch wav.py
nano wav.py


在编译器中写入:


import pygame.mixer
from time import sleep
import RPi.GPIO as GPIO
from sys import exit

GPIO.setmode(GPIO.BCM)
GPIO.setup(23,GPIO.IN)
GPIO.setup(24,GPIO.IN)
GPIO.setup(25,GPIO.IN)
pygame.mixer.init(48000,-16,1,1024)
soundA=pygame.mixer.Sound("/home/pi/wav/1.wav")
soundB=pygame.mixer.Sound("/home/pi/wav/2.wav")
soundC=pygame.mixer.Sound("/home/pi/wav/3.wav")
soundChannelA=pygame.mixer.Channel(1)
soundChannelB=pygame.mixer.Channel(2)
soundChannelC=pygame.mixer.Channel(3)
print "Soundboard Ready"
while True:
   try:
      if(GPIO.input(23)==True):
         soundChannelA.play(soundA)
      if(GPIO.input(24)==True):
         soundChannelB.play(soundB)
      if(GPIO.input(25)==True):
         soundChannelC.play(soundC)
         sleep(.01)
   except KeyboardInterrupt:
      exit()






运行

sudo python wav.py

 


按ctrl+c可以退出

输入如下代码可以设置其为模拟音频口输出

sudo amixer cset numid=3 1

 

输入如下代码可以HDMI  接口输出

sudo amixer cset numid=3 2

 

通过独立按键可以观察到效果。


菜鸟
2014-10-28 21:36:32    评分
25楼

4.3 Web台灯

(因为最主要是控制,所以也没有特意去使用继电器等控制台灯,使用led代替实验效果,请见谅)

1、连线

板子上#7接到LED的一端,LED用电阻串联,GND接电阻另外一端


2.在Yeelink上添加-开关

在左上角有个“添加一个传感器”,加入一个类型为“开关”的传感器。

3.建立webled.py文件


touch webled.py
nano webled.py



输入下面的代码

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import RPi.GPIO as GPIO
import time
import requests
import json
GPIO.setmode(GPIO.BOARD)
GPIO.setup(7,GPIO.OUT)
apiurl = 'http://api.yeelink.net/v1.1/device/15323/sensor/26299/datapoints'
apiheaders = {'U-ApiKey':'28d52856abe67b682f420eff4a5a5129'}
while True:
   r = requests.get(apiurl,headers=apiheaders)
   print(r.text)
   led = r,json() #此处根据python不同版本有所不同,另外一种为led=r,josn
   if led['value']==1:
      print("led on")
      GPIO.output(7,1)
   else:
      print("led off")
      GPIO.output(7,0)
   time.sleep(1) 

 

运行



最后,可以通过Yeelink控制开关


菜鸟
2014-10-30 19:09:20    评分
26楼

上传树莓派cpu温度到Yeelink

1.首先在Yeelink注册,在Yeelink上添加新设备

在下图左上角有个“添加一个传感器”,加入一个类型为“数据”的传感器

在pi中建立cputemp.py程序



touch cputemp.py


nano cputemp.py



输入如下代码


#!/usr/bin/python
# -*- coding: utf-8 -*- 
import requests 
import json 
# 打开文件 
file = open("/sys/class/thermal/thermal_zone0/temp") 
# 读取结果,并转换为浮点数 
temp = float(file.read()) / 1000 
# 关闭文件 
file.close() 
# 向控制台打印结果 
print "temp : %.1f" %temp 

# 设备URI 
apiurl = 'http://api.yeelink.net/v1.1/device/1949/sensor/2510/datapoints' 
# 用户密码, 指定上传编码为JSON格式 
apiheaders = {'U-ApiKey': 'ffa3826972d6cc7ba5b17e104ec5xxxx', 'content-type': 'application/json'} 
# 字典类型数据,在post过程中被json.dumps转换为JSON格式字符串 {"value": 48.123} 
payload = {'value': temp} 
#发送请求 
r = requests.post(apiurl, headers=apiheaders, data=json.dumps(payload)) 

# 打印返回码
print "response status: %d" %r.status_code


(若出现无法引用requests库的情况,输入sudo pip install requests安装即可)

输入

sudo python cputemp.py


成功上传温度至Yeelink平台


在Yeelink上的设备便能观察到效果



菜鸟
2014-11-20 22:49:32    评分
27楼

5.1基于树莓派的人脸识别保险箱

眨眨眼睛就能保住身家,好过记住密码或拿着钥匙,你的脸就是保险柜的钥匙!这个作品将展示给大家如何用树莓派和摄像头制作一个人脸识别的保险柜,当然,如果不慎毁容或整容,不好意思。。。直接拿锤子砸了吧。。

软件部分由开放源代码计算机视觉类库(OpenCV)提供的算法实现。用树莓派做这个作品再好不过,它能够运行OpenCV,体积小到能在任何地方安装。


零件/工具

  • 树莓派B+
  • 树莓派专用摄像头模组
  • 玩具保险箱,我们选了一个钢制外壳,并有警报功能。尺寸为9x8x6英寸。
  • 伺服电机
  • 4节AAA电池盒
  • 瞬时按钮开关
  • 10千欧电阻,功率0.25瓦
  • 接线盘
  • 跳线,母座对母座接口
  • 金属片,尺寸约为2×8英寸
  • 机器螺丝,32英寸x0.75英寸,配有螺母
  • 压铆螺母柱,1/8英寸x1/2英寸。从废旧圆珠笔上面能获得类似零件。(就是圆珠笔头)
  • 束线扎带

  • 电钻与钻头

  • 电烙铁与焊锡
  • 夹铁钳
  • 台钳
  • 锤子
  • 凿子或电动高速打磨机
  • 中心冲头
  • 锉刀
  • 螺丝刀
  • 铆钉枪,配有铝制铆钉,1/8英寸x3/16英寸



菜鸟
2014-11-20 22:57:06    评分
28楼

第一步:安装树莓派


  • 将树莓派放在保险柜门内,确定放在门锁结构外的最佳位置。
  • 用一支深色记号笔标注两处固定树莓派的位置,然后小心钻出1/8英寸洞眼。
  • 装上压铆螺母柱,用螺丝螺母将树莓派固定在上面。

第二步:折出个伺服电机支架


  • 用记号笔在金属片中央画一个长方形。
  • 钳住金属片,用凿子去掉标记好的区域,然后用锉子打磨平整。
  • 再将另一边的金属片也如此弯曲,以贴合保险柜的锁头。它将用作伺服电机架,对应不同的保险柜有不同的尺寸。
  • 用台钳钳住和支撑工件。如果金属片不易弯折,用锤子来帮忙。
第三步:安装保险柜门
  • 在伺服电机架两端各钻一个1/8英寸洞眼。
  • 将它放在门上,以记号笔标记门上相应的洞眼。
  • 在记号上钻上1/8英寸洞眼。

  • 用记号笔在金属片中央画一个长方形。
  • 钳住金属片,用凿子去掉标记好的区域,然后用锉子打磨平整。
  • 再将另一边的金属片也如此弯曲,以贴合保险柜的锁头。它将用作伺服电机架,对应不同的保险柜有不同的尺寸。
  • 用台钳钳住和支撑工件。如果金属片不易弯折,用锤子来帮忙。

第三步:安装保险柜门

  • 在伺服电机架两端各钻一个1/8英寸洞眼。
  • 将它放在门上,以记号笔标记门上相应的洞眼。
  • 在记号上钻上1/8英寸洞眼。



专家
2014-11-22 16:30:08    评分
29楼
好棒的帖子啊

菜鸟
2014-11-25 12:28:06    评分
30楼
谢谢。

共40条 3/4 1 2 3 4 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]