登录|立即注册
论坛 > 接口讨论
发帖|
看17002|回3|收藏
13859024 看全部
2016-11-5 10:12:50
Orange pi使用1-Wire温度传感器DS18B20
1、需要加载的模块

可添加到/etc/modules中,或手动加载w1_therm w1_gpio w1_sunxi gpio_sunxi
2、连接传感器


还有一个vcc随便找路5v连接就行。

由于我的是成品板,其他DS18B20 的IO口与VCC中间需接一个4.7K的上拉电阻。
3、读取成功。



附件: 您需要登录才可以下载或查看附件。没有账号?立即注册
dancer 看全部
2017-1-9 20:32:00
找个 gpio的底层驱动好难。
prince 看全部
2017-3-16 21:44:05
馒头簸箕 看全部
2017-5-19 23:24:40
给你加一个我的perl脚本,用于采集DS18B20的温度存入MySQL数据库服务器。

#!/usr/bin/perl

use Time:ocal;
use DBI;

my $database='DATABASE_NAME';
my $server  ='myhomeserver.local';
my $username='www';
my $password='www';

my $dsn = "DBI:mysql:database=$database:host=$server";
my $dbh = DBI->connect($dsn, $username, $password) || die "Can't connect.\n";

$t = time;  #now

#scan all DS18B20s
$sensors = `ls /sys/bus/w1/devices`;
@sen = split /\s/, $sensors;

foreach $s (@sen) {
    next if ($s !~/^28/) ; #only read DS18B20

    $sensor_temp = `cat /sys/bus/w1/devices/$s/w1_slave 2>&1`;
    if ($sensor_temp !~/No such file or directory/) {
        if ($sensor_temp !~/NO/) {
            $s =~ s/28-(\w\w)(\w\w)(\w\w)(\w\w)(\w\w)(\w\w)/28123456/;
            $sensor_temp =~ /t=(\d+)/i;

            $st = $1/1000;
            #        print "mac = $s  temp = $t\n";

            $sql = qq[ INSERT home_temp VALUES  (0,$t,0,$st,"$s")];
            #print "sql=$sql\n";
            $sth    = $dbh->prepare($sql) || die "DBI error with connect to database.\n";
            $result = $sth->execute       || die "DBI error with execute.\n";
        }
    }
}
$dbh->disconnect;

orange pi.

Powered by Discuz! X3.4

首页|简易版|触屏版|电脑版