用树莓派和DS18B20做个小车温度记录仪[原创]

学习怎么着用 PHP 和温度传感器完毕树莓派控制 GPIO
并操作继电器,你是或不是业已想通晓什么样使用手提式有线电话机照旧电脑在另内地点控制你的风扇和灯等部分家电?

前不久探访试用一下树莓派进行局地支出操作,于是出手一块Raspberry Pi
B+的板子来玩。由于没有显示屏,没有备用的键盘和鼠标,所以想到用SSH来控制树莓派,刚早先还很担心已经安装好的操作系统到底有没有安装SSH服务,借使没有设置就蛋疼了。。。

前言

上回在
树莓派上的温湿度环境监察
里提及过,Open-Falcon
也是足以一向装在树莓派上的。所以实际能够动用树莓派在家里做1个袖珍的监察和控制中央,把相应的监督指标采集过来推给树莓派上的
Open-Falcon 就好了嘛

根据这些思路,我尝试了温湿度,PM2.5 和路由器这几块的督察,那里做个享受

   
 很想知道朱律太阳暴晒下,小车内的最高温度以及温度的变通情形。觉得用树莓派和DS18B20来落实应有很简短,于是就尝试捣鼓了一晃,半天时间就消除了,写下来和大家享用。以下原创内容欢迎网上好友转发,但请注脚出处:

自家今后想控制小编的圣诞彩灯,是采纳手提式有线电话机吗,依然选取平板计算机吗,恐怕是运用台式机电脑呢?都不是,而是一味使用一个树莓派。让本人来告诉你什么样接纳PHP 和温度传感器完毕树莓派控制 GPIO 引脚并操作继电器。作者动用 AJAX
把它们构成在了合伙。

(前面发现合法的系统里头居然没有设置VIM编辑器,于是想着照旧试着用用早已忘记的Vi,结果的确是用的一筹莫展啊!!!!大概反人类了,于是安装了VIM,发现更本找不到VIM的安装包,于是
sudo apt-get update;sudo apt-get upgrade等了半天弄完之后,sudo apt-get
install -y vim,好的,今后算是可以动用VIM编制程序序了。)

环境

树莓派:RaspberryPi 3
温湿度传感器:DHT11,DS18B20
PM2.5 传感器:攀藤 PMS3003(G3)
路由器:华硕 RT-AC68U,华硕 RT-AC66U

壹 、树莓派读取DS18B20的温度值

澳门金沙国际 1

先来看看Raspberry Pi 3 B+的布局:

安装 Open-Falcon

归根结蒂,树莓派就是个 CPU 是 A冠道Mv6 的 Linux 而已,所以我们只要准备好
A奥迪Q7Mv6 上的 Golang 环境然后编写翻译就好了
得到 golang 的二进制包

wget https://storage.googleapis.com/golang/go1.9.linux-armv6l.tar.gz

解压

tar -C /usr/local -xzf go1.9.linux-armv6l.tar.gz

配备环境(永久生效应该写道 profile 里去)

export PATH=$PATH:/usr/local/go/bin
export GOPATH=/usr/local/gopath

# go version
go version go1.9 linux/arm

接下来编写翻译
Open-Falcon
就好了~
环境准备,Raspbian 是根据 Debain 魔改的,因而是 apt-get 系统

apt-get install mysql-server
apt-get install redis-server

mkdir -p $GOPATH/src/github.com/open-falcon
cd $GOPATH/src/github.com/open-falcon
git clone https://github.com/open-falcon/falcon-plus.git

cd $GOPATH/src/github.com/open-falcon/falcon-plus/scripts/mysql/db_schema/
mysql -h 127.0.0.1 -u root -p < 1_uic-db-schema.sql
mysql -h 127.0.0.1 -u root -p < 2_portal-db-schema.sql
mysql -h 127.0.0.1 -u root -p < 3_dashboard-db-schema.sql
mysql -h 127.0.0.1 -u root -p < 4_graph-db-schema.sql
mysql -h 127.0.0.1 -u root -p < 5_alarms-db-schema.sql

cd $GOPATH/src/github.com/open-falcon/falcon-plus/

# make all modules
make all

# make specified module
make agent

# pack all modules
make pack

export WorkDir="$HOME/open-falcon"
mkdir -p $WorkDir
tar -xzvf open-falcon-vx.x.x.tar.gz -C $WorkDir
cd $WorkDir

cd $WorkDir
./open-falcon start

理所当然还有
Dashboard

export HOME=/home/work/

mkdir -p $HOME/open-falcon/
cd $HOME/open-falcon && git clone https://github.com/open-falcon/dashboard.git
cd dashboard;

apt-get install -y python-virtualenv
apt-get install -y slapd ldap-utils
apt-get install -y libmysqld-dev
apt-get install -y build-essential
apt-get install -y python-dev libldap2-dev libsasl2-dev libssl-dev

cd $HOME/open-falcon/dashboard/
virtualenv ./env

./env/bin/pip install -r pip_requirements.txt -i https://pypi.douban.com/simple

澳门金沙国际 2

image.png

是否很密切?

   
Raspbian系统已经能够帮忙DS18B20单总线(1-wire)温度传感器,只要简单安排就能够直接读取,无需协调编写底层驱动。

 

1GB RAM

条件监察

   配置进度也一点也不细略:

硬件供给:

  • 树莓派
  • 设置有 Raspbian 系统的 SD 卡(任何一张 icroSD存款和储蓄卡都得以,可是本身更偏向利用大小为 32GB 等级为 class 10 的 SD 卡)
  • 电源适配器
  • 跳线(母对母跳线和公转母跳线)
  • 继电器板(笔者使用八个用于 12V 继电器的继电器板)
  • DS18B20 温度传感器
  • 树莓派的 Wi-Fi 适配器
  • 路由器(为了访问互连网,你供给有3个持有端口转载的路由器)
  • 10KΩ 的电阻

 

802.11.b/g/nWireless LAN

温湿度监控

温湿度监察和控制用 DHT11 ,作者认为这些精度已经够用了。作者那边放了2个 DS18B20
作为相比,能够看一下双面包车型客车热度精度差别。

澳门金沙国际 3

image.png

温湿度监察和控制的求实完毕能够看
树莓派上的温湿度环境监察 。

   打开Raspbian系统的/boot/config.txt文件,在终极一行添加如下代码。

软件要求:

  • 下载并设置 Raspbian 系统到你的 SD 卡
  • 实惠的互连网连接
  • Apache web 服务器
  • PHP
  • WiringPi
  • 基于 Mac 或者 Windows 的 SSH 客户端

 

Bluetooth 4.1

PM 2.5 监控

气氛中的颗粒度浓度也是大家很爱戴的目的。那里用了攀藤的 G3 来做。

澳门金沙国际 4

image.png

   dtoverlay=w1-gpio-pullup,gpiopin=17

诚如的布置和设置

① 、 插入 SD 卡到树莓派,然后采纳以太网网线将它连接到路由器;

2、 连接 WiFi 适配器;

叁 、 使用 SSH 格局登录到树莓派,然后使用上边包车型客车指令编辑 interfaces
文件:

  1. sudonano/etc/network/interfaces

那些命令会用三个叫做 nano
的编辑器打开那一个文件。它是三个格外不难又易于使用的文书编辑器。借使您不熟悉基
Linux 的操作系统,能够利用键盘上的自由化键来操作。

nano 打开那么些文件后,你会合到如此三个界面:

澳门金沙国际 5

File editor nano

四 、要布局你的无线互联网,遵照上面所示修改那个文件:

  1. iface lo inet loopback
  2. iface eth0 inet dhcp
  3. allow-hotplug wlan0
  4. auto wlan0
  5. iface wlan0 inet dhcp
  6. wpa-ssid "Your Network SSID"
  7. wpa-psk "Your Password"

澳门金沙国际,5、 按 CTRL+O 保存,然后按 CTRL+X 退出编辑器。

到近期截止,一切都早已配备达成,接下去你须求做的正是利用命令重新加载互连网:

  1. sudo service networking reload

(警告:假使你是采用远程连接的方法连接的树莓派,连接将会搁浅。)

 

SD Card 8GB

针脚表明
PIN 定义 说明
PIN1 VCC 电源,5V
PIN2 GND 电源负
PIN3 SET 待机设置
PIN4 RXD 串口接收管脚
PIN5 TXD 串口发送管脚
PIN6 RESET 模块复位信号
PIN7/8 NC 悬空

 
 当中最终叁个数字17象征:树莓派和DS18B20老是所运用的扩充引脚编号,即下表中BCM编码列中对应的数字。可依据要求采纳树莓派40pin扩张口中的随机引脚。

软件配置

 

Broadcom BCM2835芯片(700 MHz ARM11)

连接

重复祭出树莓派针脚图

澳门金沙国际 6

image.png

连年就很简短了

PMS3003 Raspbian Pi 3
Pin1 接 5V ,例如 Pin2
Pin2 接地,例如 Pin6
Pin3 设置口,随便接个,例如 Pin11(GPIO17),或者悬空。
Pin5 数据接收口,接 Pin8

 澳门金沙国际 7

安装 Apache web 服务器

Apache
是三个受欢迎的服务器应用,你能够在树莓派安装那一个顺序让它提供网页服务。Apache
原本就足以经过 HTTP 情势提供 HTML 文件服务,添加其余模块后,Apache
仍是能够利用像 PHP 这样的脚本语言来提供动态网页的服务。

能够在命令行输入上面发号施令安装 Apache:

  1. sudoapt-get install apache2 -y

设置到位后,能够在浏览器地址栏输入树莓派的 IP 地址来测试 web
服务器。借使您能够获取上边图片的始末,表明你早已成功地安装并安装好了您的服务器。

澳门金沙国际 8

Successful server setup

要转移这些暗中认可的页面和丰裕你协调的 html 文件,进入 var/www/html 目录:

  1. cd/var/www/html

累加一些文书来测试是或不是中标。

 

Memory (SDRAM): 256 Megabytes (shared with GPU)

串口

PMS3003
的数额是经过串口来传输的,因而我们必要配置一下树莓派,把串口功能打开,由于树莓派的串口略坑,稍微扯点题外话:

世家精晓 Unix
一切为文件,由此串口的驱动会创设对应的字符设备(文件)以供读写。经常这几个设备是以项目+序号来定名。

比如说:x86 架构下串口平日命名为 /dev/ttyS0(Serial 0),大家能够找台
x86 的 Linux 服务器去探望。 Raspbian 是 A卡宴M 框架结构的所以其串口命名为
/dev/ttyAMA0(TeleTyper ARM UART 0)

可是在 Raspbian Pi 3 上,这里情形就不太一样了。Pi3 的 /dev/ttyAMA0
被Bluetooth给默许占用了, 于是它交给二个 /dev/ttyS0 设备用于软串口的
Mini UART。 然后为了使得新老 Raspbian Pi 之间的匹配性 ,又把 3
代事先版本 的 /dev/ttyAMA0 和 Raspberry Pi 3 的 /dev/ttyS0
软链接到同1个 /dev/serial0 。那样子绕了一圈,可是Minu UART
的性质又是一定令人捉急的。。。

于是大家得调整一下布局,把默许的 /etc/ttyAMA0 给搞回来。

启用 UART,修改/boot/config.txt,增加(新版 Raspbian 已经暗中认可开启了)

enable_uart=1

关掉暗中同意的 console

sudo systemctl disable serial-getty@ttyS0.service

在运转脚本/boot/cmdline.txt里干掉 console=ttyAMA0 或者
console=ttyS0 的配备,类似那样

dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline ...

关闭Bluetooth

dtoverlay=pi3-disable-bt 

重启之

图1 树莓派40Pin引脚对照表

安装 PHP

PHP
是三个预处理器,那象征它是当服务器收到网页请求时才会运作的一段代码。它起初运行,处理网页上急需被出示的始末,然后把网页发送给浏览器。不像静态的
HTML,PHP
在不一致的条件下得以显得分歧的剧情。其余的语言也足以形成这点,不过出于
WordPress 是用 PHP 编写的,有个别时候你须求动用它。PHP 是 web
上一种卓殊受欢迎的言语,像 Facebok 和 Wikipeadia 那样的大型项目都以用
PHP 编写的。

利用下边包车型客车命令安装 PHP 和 Apache 软件包:

  1. sudoapt-get install php5 libapache2-mod-php5 -y

 

【澳门金沙国际】用树莓派和DS18B20做个汽车温度记录仪,树莓派上的家园监察和控制中央。USB 2.0 ports: 1 2 (via integrated USB hub) 

数码传输

PMS3003 的多寡格式如下所示

数据 功能
起始符1 0x42(固定)
起始符2 0x4d(固定)
帧长度:高八位,低八位 帧长度=20 (数据:9×2+校验位:2)
数据1:高八位,低八位 数据1表示PM1.0浓度(CF=1,标准颗粒物)单位ug/m3
数据2:高八位,低八位 数据2表示PM2.5浓度(CF=1,标准颗粒物)单位ug/m3
数据3:高八位,低八位 数据3表示PM10浓度(CF=1,标准颗粒物)单位ug/m3
数据4:高八位,低八位 数据4表示PM1.0浓度(大气环境下)单位ug/m3
数据5:高八位,低八位 数据5表示PM2.5浓度(大气环境下)单位ug/m3
数据6:高八位,低八位 数据6表示PM10浓度(大气环境下)单位ug/m3
数据7:高八位,低八位 数据7(保留)
数据8:高八位,低八位 数据8(保留)
数据9:高八位,低八位 数据9(保留)
数据校验和:高八位,低八位 校验码=前 22 位字节累加

可以见到,三个完好无缺的数目包长度共计是 2伍个字节,大家不妨先看一下她的数额到底长什么体统。
写一段不难的串口读取代码

#!/usr/bin/python
import serial
import time


def pm():
    ser = serial.Serial("/dev/ttyAMA0", 9600)
    while True:
        time.sleep(1) # 等个 1 秒钟等数据进来
        count = ser.inWaiting()
        if count >= 24:      # 由于一个完整的数据包长度是24个字节,因此等到缓冲区字节数超过 24 个了,开始读取。
            recv = ser.read(count) # 读取数据
            # 这里如果直接 print recv 肯定是一堆无意义的乱码,即便 print repr(recv),
            # 由于 python 默认的 ACSII 编码,他还是会把其中一部分字符给编码成字符打印出来,
            # 所以要看到原始的 16 进制报文,得额外处理一下
            print map(lambda c: hex(ord(c)), recv) # 按 16 进制格式打印接受到的数据
        ser.flushInput() #读完了清掉缓冲区
    ser.close()
    return

if __name__ == '__main__':
        pm()

执行之

# python pm25_test.py
['0x42', '0x4d', '0x0', '0x14', '0x0', '0x4e', '0x0', '0x6d', '0x0', '0x78', '0x0', '0x33', '0x0', '0x48', '0x0', '0x50', '0x10', '0x44', '0x0', '0x30', '0x91', '0x0', '0x3', '0xb6']

能够见到,初叶符分别为 0x420x4d,然后是高低位的帧长度 = 20(2五个字节去掉 2 个字节发轫符和音量位 2 个字节的帧长度)。接着是 二个字节一组的数目,一共 九个。最终是校验和,高位0x3,低位0xb6,也便是校验和为 0x3b6。
我们来尝试总括一下校验和

root@raspberrypi:/opt/falcon-scripts# python
Python 2.7.9 (default, Sep 17 2016, 20:26:04)
[GCC 4.9.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> a = 0x42 + 0x4d + 0x0 + 0x14 + 0x0 + 0x4e + 0x0 + 0x6d + 0x0 + 0x78 + 0x0 + 0x33 + 0x0 + 0x48 + 0x0 + 0x50 + 0x10 + 0x44 + 0x0 + 0x30 + 0x91 + 0x0
>>> print hex(a)
0x3b6
>>>

校验和不错,所以这组数据是科学的,能够被吸收接纳的。

所以 PM2.5
等的数目收集大体是以此逻辑。由于大家是每分钟定期采集三遍数据,没有必要实时的去处理串口的数据流(实际上
PMS3003 也是距离 200ms ~ 800ms
定期往串口发数据)。只要在始发征集的时候等待上 1 分钟,等到有起码 二十多少个字节输入进去后进行处理即可。
对于数据分外,例如开首符不得法,校验和不科学等数码,间接甩掉等下一轮就好了。

完全代码

#!/usr/bin/python
#encoding=utf-8
import serial
import time
import json
import requests
import copy


def pm():
    ser = serial.Serial("/dev/ttyAMA0", 9600)
    while True:
        time.sleep(1)
        count = ser.inWaiting()
        if count >= 24:
            recv = ser.read(count)
            data = map(lambda c: ord(c), recv) # 上面写 hex() 是为了打印出来方便人看,实际运行就不需要了,不然后面还得转换
            if check_data(data) != True: # 数据校验不合法,抛弃之等下一轮
                ser.flushInput()
                continue
            return get_data(data) # 读到数据了直接返回退出循环
        ser.flushInput()
    ser.close()
    return 0,0,0

def check_data(data):
        sum = 0x00
        if data[0] != int('0x42',16): # 起始符校验
                return False
        if data[1] != int('0x4d',16):
                return False
        for d in data[0:21]:
                sum = sum + d
        check_sum_high = data[22]<<8 # 校验和校验,位移 8 位到高位
        check_sum_low = data[23]
        check_sum = check_sum_high | check_sum_low # 按位或运算,高低位合并
        if sum == check_sum:
                return True
        return False

def get_data(data):
        pm1 = (data[10] << 8) | data[11] # 高位位移,按位或运算合并高低位
        pm2_5 = (data[12] << 8) | data[13]
        pm10 = (data[14] << 8) | data[15]
        return pm1,pm2_5,pm10

def push_falcon(value_name,value):
        ts = int(time.time())
        push_url = "http://127.0.0.1:1988/v1/push"
        payload = [{"endpoint":"home","metric":"room.air_quality","timestamp":ts,"step":60,"value":value,"counterType":"GAUGE","tags":"module="+value_name}]
        r = requests.post(push_url, data=json.dumps(payload))

if __name__ == '__main__':
        pm1, pm2_5,pm10 = pm()
        push_falcon("pm1",pm1)
        push_falcon("pm2.5",pm2_5)
        push_falcon("pm10",pm10)

成效如下所示

澳门金沙国际 9

image.png

假若要控制 PMS3003 的干活情景以来,可以因此调节和测试他的 Pin3,也正是 set
口。能够让他远在待机状态。但注意转入工作状态之后,要起码办事 30
秒以上,读取的数额才相比较标准。

import RPi.GPIO as GPIO
import time
pin = 17 # 11管脚对于的BCM管脚号码
GPIO.setmode(GPIO.BCM)
GPIO.setup(pin, GPIO.OUT) # 写入 GPIO
GPIO.output(pin, GPIO.HIGH) # 工作
GPIO.output(pin, GPIO.LOW) # 待机

   
修改完config.txt后关机,将DS18B20的数据脚(TO-92封装的高级中学级二个引脚)连接到树莓派的17pin,同时连接电源和地引脚。此外,还要在DS18B20的多寡引脚和VCC之间连接一个4.7K的上拉电阻方可正常使用。

测试 PHP

成立文件 index.php

  1. sudonano index.php

在内部写入一些 PHP 内容:

  1. <?php echo"hello world";?>

保留文件,接下去删除 index.html,因为它比 index.php 的预先级更高:

  1. sudorm index.html

刷新你的浏览器,你会看到 “hello world”。这并不是动态的,不过它仍然由 PHP
提供劳动。尽管你在上头看到提原始的 PHP 文件而不是“hello
world”,重新加载和重启 Apahce(LCTT 译注,重启即可):

  1. sudo/etc/init.d/apache2 reload
  2. sudo/etc/init.d/apache2 restart

 

Video outputs: Composite RCA (PAL & NTSC) , HDMI (rev 1.3 & 1.4) 

路由器监控

监察和控制路由器,那一定是走 snmp 了。纵然在路由器的环境里(例如
帕杰罗C-66U,openwrt 系统, cpu MIPS 指令集) 应该也能够编写翻译出 golang 来
go-mips32
,不过考虑到易用性和削减路由器的财富占用,肯定照旧打开路由器的 net-snmp
相比适当。

以Alienware的 中华VT-AC66U 和 RAV4T-AC68U 为例。

 
 重新打开树莓派后就能够在/sys/bus/w1/devices下找到名为28-XXXXXXX(XXXXXXX为实际DS18B20的号码)的目录了,个中的文件w1_slave包涵了事实上温度值,用cat指令查看文件内容如下图所示。

安装 WiringPi

为了可以对代码的变更实行跟踪,WiringPi 的爱护采取git。但要是你因为有些原因此没办法使用
git,还有一种能够代替的方案。(日常你的防火墙会把您隔开分离开来,所以请先检查一下你的防火墙的装置情况!)

假诺你还不曾安装 git,那么在 Debian 及其衍生版本中(比如
Raspbian),你能够这么设置它:

  1. sudoapt-get install git-core

假使你遇到了一部分荒唐,请保管您的树莓派是风靡版本的 Raspbian 系统:

  1. sudoapt-get update sudoapt-get upgrade

使用 git 获取最 WiringPi:

  1. sudogitclonegit://git.drogon.net/wiringPi

要是您前边已经选取过 clone 操作,那么能够运用下边发号施令:

  1. cd wiringPi &&git pull origin

本条命令会将会拿走更新的版本,你然后得以再一次运营上边包车型地铁构建脚本。

有多个新的简化的脚本来创设和装置:

  1. cd wiringPi &&./build

以此新的创设脚本将会为你成功编写翻译和设置 WiringPi。它曾一度须要选取 sudo
命令,所以在运作那它在此之前你恐怕要求检查一下那一个本子。

 

Audio outputs: 3.5 mm jack, HDMI 

开启 snmp —— 官版系统

惠普的官版固件暗中同意并从未开启 snmp,若是要拉开的话须要有三个曲折的历程~

  1. 先是找3个 U 盘插上路由器
  2. 在路由器后台里打开 Download Master (为了激活 ipkg 包管理器),并打开
    telnet
  3. 安装 net-snmp

ipkg install net-snmp
app_set_enabled.sh net-snmp yes

这一步进度中,有很差不离率遇到不可描述的网络故障导致互连网连接极度下载失利
可能供给经过一些不得描述的法子来躲避网络连接的可怜

  1. 万10%功了,就能够 snmpwalk -v 2c -c public 192.168.1.1 测试了

澳门金沙国际 10

测试 WiringPi

运行 gpio 命令来检查装置成功与否:

  1. gpio -v gpio readall

那将给您有的信念,软件运维优异。

 

Low-level peripherals: 8 × GPIO, UART, I²C bus, SPI bus with two
chip selects, +3.3 V, +5 V, ground

开启 snmp —— 梅林

更简便易行的格局是用
梅林
的系统。话说都买了Lenovo的路由器了,不刷个梅林好意思么?

刷完梅林之后,直接在路由器 web 后台就能够打开 snmp

图2 命令行读取温度数值

连年 DS18B20 传感器到树莓派

  • 传感器上的黑线用于 GND。
  • 红线用于 VCC。
  • 黄线是 GPIO 线。

澳门金沙国际 11

GPIO image

连线:

  • VCC 连接 3V 的 1 号引脚。
  • GPIO 线连接 7 号引脚(GPIO4)。
  • 地线连接 GND 的 9 号引脚。

 

澳门金沙国际 12

监控 – swcollector

要在 open-falcon 下的经过 snmp 监察和控制路由器的话,自然考虑用
swcollector
了。这篇文章也得以提供参考 Open-Falcon
中的交换机监察和控制

在编写翻译 swcollector 在此以前,大家不妨先 snmpwalk
测试一下大家的路由器,防止踩坑,比如:
1号坑:

root@raspberrypi:/home/pi# snmpwalk -v 2c -c public 192.168.2.2 1.3.6.1.2.1.31.1.1.1.15
iso.3.6.1.2.1.31.1.1.1.15.1 = Gauge32: 10
iso.3.6.1.2.1.31.1.1.1.15.2 = Gauge32: 10
iso.3.6.1.2.1.31.1.1.1.15.3 = Gauge32: 0
iso.3.6.1.2.1.31.1.1.1.15.4 = Gauge32: 0
iso.3.6.1.2.1.31.1.1.1.15.5 = Gauge32: 10
iso.3.6.1.2.1.31.1.1.1.15.6 = Gauge32: 10
iso.3.6.1.2.1.31.1.1.1.15.7 = Gauge32: 0
root@raspberrypi:/home/pi# snmpwalk -v 2c -c public 192.168.2.2 1.3.6.1.2.1.2.2.1.5
iso.3.6.1.2.1.2.2.1.5.1 = Gauge32: 10000000
iso.3.6.1.2.1.2.2.1.5.2 = Gauge32: 10000000
iso.3.6.1.2.1.2.2.1.5.3 = Gauge32: 0
iso.3.6.1.2.1.2.2.1.5.4 = Gauge32: 0
iso.3.6.1.2.1.2.2.1.5.5 = Gauge32: 10000000
iso.3.6.1.2.1.2.2.1.5.6 = Gauge32: 10000000
iso.3.6.1.2.1.2.2.1.5.7 = Gauge32: 0

好嘛,无论是 ifSpeed 依旧ifHighSpeed,那货再次来到的结果都一向不对嘛。那有点像是 net-snmp 的二个
bug。可是在
asuswrt-merlin 里,snmpd 已经是以 admin ,也正是 root
权限在跑了。所以实际原因也吃不太准,小编在 github 上给
asuswrt-merlin
提了个 issue,希望能有个答案吧。

总的说来,那样的话咱们就无法高兴的监督了。因为 swcollector 自 4.0
版本起,就会遵照 ifSpeed
的值对收集到的流量实行合法性判断,若是采集到的流量总括出来抢先了接口的速率,讲被看成非常值而丢掉的。你这里给本身来个统统
10M,那岂不是一开下载监察和控制就要断流的节拍嘛。。。

诸如此类只好人工设置 speedlimit 为 1G 了

"speedlimit":1000000000,

除去正规的
cpu,内部存款和储蓄器,接口各样流量,包数之外。我们仍是能够通过自定义监察和控制的艺术来拿一些越多的新闻,比如系统的
load 音讯

{
        "metrics":
                [
                        {
                        "ipRange":[
                   "192.168.2.1-192.168.2.3"
                        ],
                        "metric":"switch.system.load",
                        "tag":"",
                        "type":"GAUGE",
                        "oid":"1.3.6.1.4.1.2021.10.1.3.1"
                        }
                ]
}

于今我们能够去 Open-Falcon
里看望我们监察和控制的路由器了。欸?路由器的内部存款和储蓄器好像有个别不太对?

澳门金沙国际 13

image.png

是的,此处正是 2号坑,net-snmp
在此处有内部存储器败露,假如你那样就直接跑下去,路由器倒是不会死球,snmpd
肯定是妥妥的会死球无响应的。

缓解的章程只可以是在路由器上起多个定时义务,每日半夜重启一下 snmpd 咯

admin@RT-AC66U-F5C8:/usr/sbin# crontab -e
0 5 * * * service restart_snmpd

并且把大家监察和控制的采访周期调高到 四分钟,防止三个夜晚她内部存款和储蓄器就炸了,好歹撑到凌晨内部存储器释放

    "transfer": {
        "enabled": true,
        "addr": "127.0.0.1:8433",
        "interval": 300,
        "timeout": 1000
    },

好啊,将来监察和控制木有啥难题了。我们会晤到 华硕 有以下那样些个接口

switch.if.In/ifIndex=1,ifName=lo
switch.if.In/ifIndex=2,ifName=eth0
switch.if.In/ifIndex=3,ifName=eth1
switch.if.In/ifIndex=4,ifName=eth2
switch.if.In/ifIndex=5,ifName=vlan1
switch.if.In/ifIndex=6,ifName=vlan2
switch.if.In/ifIndex=7,ifName=br0

那些接口都是哪些意思吧?这张 DD-W君越T 的原理图可供参考。 Alienware与此之的差异在于还有个 eth2 专门跑 WiFi 5G

澳门金沙国际 14

image.png

从而接口的关联是这么的

接口 功能
eth0 WAN + LAN
br0 Bridge
eth1 WiFi 2.4G
eth2 WiFi 5G
vlan1 LAN
vlan2 WAN

在路由器上,能够通过这一个命令来一发自定义配置

admin@RT-AC68U-AB48:/tmp/home/root# robocfg
Broadcom BCM5325/535x/536x/5311x switch configuration utility
Copyright (C) 2005-2008 Oleg I. Vdovikin (oleg@cs.msu.su)
Copyright (C) 2005 Dmitry 'dimss' Ivanov of "Telecentrs" (Riga, Latvia)

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

Usage: robocfg <op> ... <op>
Operations are as below:
        show -- show current config
        showmacs -- show known MAC addresses
        showports -- show only port config
        switch <enable|disable>
        port <port_number> [state <enabled|rx_disabled|tx_disabled|disabled>]
                [stp none|disable|block|listen|learn|forward] [tag <vlan_tag>]
                [media auto|10HD|10FD|100HD|100FD|1000HD|1000FD]
                [mdi-x auto|on|off] [jumbo off|on]
        vlan <vlan_number> [ports <ports_list>]
        vlans <enable|disable|reset>

        ports_list should be one argument, space separated, quoted if needed,
        port number could be followed by 't' to leave packet vlan tagged (CPU
        port default) or by 'u' to untag packet (other ports default) before
        bringing it to the port, '*' is ignored

Samples:
1) ASUS WL-500g Deluxe stock config (eth0 is WAN, eth0.1 is LAN):
robocfg switch disable vlans enable reset vlan 0 ports "0 5u" vlan 1 ports "1 2 3 4 5t" port 0 state enabled stp none switch enable
2) WRT54g, WL-500g Deluxe OpenWRT config (vlan0 is LAN, vlan1 is WAN):
robocfg switch disable vlans enable reset vlan 0 ports "1 2 3 4 5t" vlan 1 ports "0 5t" port 0 state enabled stp none switch enable

运作截图

澳门金沙国际 15

image.png

澳门金沙国际 16

image.png

   
在那之中第三行末尾都会有3个YES或NO,借使是YES,那第三行紧接着正是温度,以一成00摄氏度为单位。

软件配置

为了用 PHP 使用 DS18B20
温度传感器模块,你供给实践上边包车型客车吩咐来激活用于树莓派上 GPIO 引脚和
DS18B20 的内核模块:

  1. sudomodprobe w1-gpio
  2. sudomodprobe w1-therm

您不想每一趟 Raspberry
重启后都手动执行上述命令,所以你想每一遍开功能活动运营这一个模块。能够在文书
/etc/modules 中添加下边包车型地铁命令行来完成:

  1. sudonano/etc/modules/

丰裕下边包车型客车通令行到它里面:

  1. w1-gpio
  2. w1-therm

为了测试,输入:

  1. cd/sys/bus/w1/devices/

最近输入 ls

您会看出你的设施新闻。在设施驱动程序中,你的 DS18B20
传感器应该作为一串字母和数字被列出。在本例中,设备被记录为
28-000005e2fdc3。然后您须求动用 cd
命令来访问传感器,用你本人的队列号代替小编的: cd 28-000005e2fdc3

DS18B20 会周期性的将数据写入文件 w1_slave,所以您只须要利用命令
cat来读出多少: cat w1_slave

那会生成上边包车型地铁两行文本,输出中
t= 表示摄氏单位的热度。在前两位数前边加上几个小数点(例如,小编接到的温度读数是
30.125 摄氏度)。

 

上面来布局我的树莓派开发板:

树莓派自己

自然还有树莓派自身的监督。这几个 Open-Falcon 的 agent
就曾经基本消除难题。我们再加两个小脚本来采一下树莓派的 cpu 温度就好了
树莓派的 cpu 温度能够在 /sys/class/thermal/thermal_zone0/temp 那里读到

root@raspberrypi:/opt/falcon-scripts# cat /sys/class/thermal/thermal_zone0/temp
52615

写个脚本推给 Open-Falcon

#!/usr/bin/python
# -*- coding: utf-8 -*-

import requests
import time
import json

def get_Pitemp():
    file = open("/sys/class/thermal/thermal_zone0/temp")
    temp = float(file.read()) / 1000
    file.close()
    return temp

if __name__ == '__main__':
    temp = get_Pitemp()
    ts = int(time.time())
    push_url = "http://127.0.0.1:1988/v1/push"
    payload = [{"endpoint":"raspberrypi","metric":"cpu.temperature","timestamp":ts,"step":60,"value":temp,"counterType":"GAUGE","tags":""}]
    r = requests.post(push_url, data=json.dumps(payload))
~                                                              

澳门金沙国际 17

image.png

   
在运用中本身发觉,假若直接运用DS18B20芯片和树莓派相连,则由于DS18B20和树莓派的CPU过近,往往会使度量得到的温度偏高近10℃。因此小编在某宝购买了1个带有金属外壳和较长连线的DS18B20,价格但是7-8元,但衡量准确度大大进步。其余是因为有较长的连线,4.7K电阻的焊接也变得很简单。完毕的传感器如下图3所示。

连接继电器

一 、 取两根跳线,把当中一根总是到树莓派上的 GPIO24(18
号引脚),另一根总是 GND 引脚。你可以参考下边这张图。

② 、 将来将跳线的另一端连接受继电器板。GND 连接到继电器上的 GND,GPIO
输出线连接到继电器的大道引脚号,那有赖于你正选择的继电器型号。记住,将树莓派上的
GND 与继电器上的 GND 连接连接起来,树莓派上的 GPIO
输出连接继电器上的输入引脚。

澳门金沙国际 18

Headers

专注!将继电器连接树莓派的时候小心一些,因为它恐怕会造成都电子通讯工程高校流回流,那会导致堵塞。

③ 、 未来将电源连接继电器,能够运用 12V 的电源适配器,也能够将 VCC
引脚连接到什么破上的 3.3V 或 5.5V 引脚。

 

下载XShell工具(直接百度搜索安装就足以了(接纳常见安装))

以上

 澳门金沙国际 19

采纳 PHP 控制继电器

让大家先写一个借助 WiringPi 软件用来决定 Paspberry Pi 上 GPIO 引脚的
PHP 脚本。

壹 、在 Apache
服务器的网站根目录下成立1个文本,使用上面发号施令切换成该目录:

  1. cd/var/www/html

② 、 新建三个叫 Home 的文件夹:

  1. sudomkdirHome

三 、 新建二个叫 on.php的脚本

  1. sudonano on.php

肆 、 在剧本中参与上边包车型大巴代码:

  1. <?php
  2. system("gpio-g mode 24 out");
  3. system("gpio-g write 24 1");
  4. ?>

5、 使用 CTRL+O 保存文件,CTRL+X 退出。

上边包车型客车代码中,你在首先行使用命令将 24 号 GPIO引脚设置为 output 格局:

  1. system("gpio-g mode 24 out");

在第三行,你利用 1 将 24 号引脚 GPIO
打开,在二进制中”1″表示打开,”0″表示关闭。

六 、 为了关闭继电器,能够创造别的八个 off.php 文件,并用 0 替换 1

  1. <?php
  2. system(" gpio-g mode 24 out ");
  3. system(" gpio-g write 24 1 ");
  4. ?>

七 、 假如你已经将继电器连接了树莓派,能够在浏览器中输入你的乔木丛派的 IP
地址,并在前面加上目录名和文件名来开展走访:

  1. http://{IPADDRESS}/home/on.php

那将会打开继电器。

捌 、 要关张它,能够访问叫 off.php 的文件:

  1. http://{IPADDRESS}/home/off.php

明天你供给能够在1个独立的页面来决定这两样事情,而不用单独的基础代谢只怕访问那五个页面。你能够采取AJAX 来成功。

九 、 新建三个 HTML 文件,并在里头参预下边代码:

  1. <html>
  2. <scriptsrc="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
  3. <scripttype="text/javascript">// <![CDATA[
  4. $(document).ready(function(){
  5. $('#on').click(function(){
  6. var a=newXMLHttpRequest();
  7. a.open("GET","on.php"); a.onreadystatechange=function(){
  8. if(a.readyState==4){if(a.status ==200){
  9. }else alert ("http error");}}
  10. a.send();
  11. });
  12. });
  13. $(document).ready(function()
  14. {$('#Off').click(function(){
  15. var a=newXMLHttpRequest();
  16. a.open("GET","off.php");
  17. a.onreadystatechange=function(){
  18. if(a.readyState==4){
  19. if(a.status ==200){
  20. }else alert ("http error");}}
  21. a.send();
  22. });
  23. });
  24. </script>
  25. <button id="on" type="button"``Switch Lights On </button>
  26. <button id="off" type="button"``Switch Lights Off </button>

⑩ 、 保存文件,进入你的 web
浏览器目录,然后打开那多少个网页。你会看到七个按钮,它们能够打开和关闭灯泡。基于相同的想法,你还是能运用
bootstrap 和 CSS 来创建二个更是出彩的 web 界面。

 

安装完事后如下所示:

参照文书档案

Falcon+
Falcon-Dashboard
Raspbian 杰西 的 GPIO
串口配置
Raspberry Pi 读取攀藤G3
PM2.5
PM2.5传感器PMS3003,同时能测PM1.0 PM2.5
PM10
Install and Configure SNMP on the Asus RT-AC66U
Router
DD-WRT leading two separate networks (Asus
RT-AC68)

图3 完毕后的DS18B20探头

在这一个网页上观看比赛温度

一 、 新建一个 temperature.php 的文件:

  1. sudonano temperature.php

二 、 在文书中加入上面包车型地铁代码,用你协调的设施 ID 替换 10-000802292522

  1. <?php
  2. //File to read
  3. $file ='/sys/devices/w1_bus_master1/10-000802292522/w1_slave';
  4. //Read the file line by line
  5. $lines =file($file);
  6. //Get the temp from second line
  7. $temp = explode('=', $lines[1]);
  8. //Setup some nice formatting (i.e., 21,3)
  9. $temp = number_format($temp[1]/1000,1,',','');
  10. //And echo that temp
  11. echo $temp ." °C";
  12. ?>

叁 、 打开你刚刚创立的 HTML 文件,并创办2个新的蕴藏 id 为 “screen” 的
<div>标签

  1. <divid="screen"></div>

肆 、 在那几个标签后只怕那个文书档案的尾巴下边包车型地铁代码:

  1. <script>
  2. $(document).ready(function(){
  3. setInterval(function(){
  4. $("#screen").load('temperature.php')
  5. },1000);
  6. });
  7. </script>

其中,#screen 是标签 <div>id ,你想在它里面突显温度。它会每隔
一千 皮秒加载三次 temperature.php 文件。

本人动用了 bootstrap
框架来创建五个理想的面板来呈现温度,你还足以投入四个图标和图表让网页更有吸重力。

那只是一个决定继电器板并彰显温度的根基的体系,你能够透过创建基于定时和从恒温器读数等依据事件触发来更为地对系统实行支付。

( 题图:opensource.com)


笔者简介:

Abdul Hannan Mustajab: 笔者 17虚岁,生活在印度。小编正在追求科学,数学和处理器科学方面包车型大巴启蒙。作者在
spunkytechnology.com
上登载关于自己的品种的博客。笔者一向在对运用分裂的微控制器和电路板的基于物联网的
AI 进行商讨。


via:

作者:Abdul Hannan
Mustajab
译者:zhousiyu325
校对:wxy

本文由 LCTT
原创编写翻译,Linux中国 荣誉推出

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-06/144743.htm

澳门金沙国际 20

澳门金沙国际 21

转发授权

CC
BY-SA

二 、用Python读取并保存温度值

然后选用新建(如下所示):

     
编写八个总结的Python程序,每分钟读取二个热度值,并将其依据固定格式保存在文件中,方便查看和剖析。具体代码如下所示,其基本思路是每5秒查看一回系统时间,假若达到1分钟就读取并保存三遍数据。

钻探选用SSH,端口为暗许端口,名称本身取名字,不一致其余的SSH链路就足以了,主飞机地方置填写本身树莓派的主机的IP地址,小编是使用路由器的LAN口和乔木丛派进行链接的,由此小编能够透过翻看路由器的网页管理器来查看接入设备的IP地址和MAC地址等音讯,比如登录192.198.1.1的路由器控制界面,查看连接装置找到Raspberry,那里大家只供给使用的是Raspberry的IP地址信息。输入完IP地址然后我们就可链接了,当然首先次链接大家还亟需输入Raspberry的系统的用户名和密码,那么些在官方的种类中的账户和密码都以–》账户:pi  密码:raspberry。输入完账户密码然后就形成了和树莓派的总是,当然那一个操作都是要等你上电Raspberry并插入代用Sys的SD
Card之后的操作。(别的的一而再方式和查看Raspberry的IP的点子请看Reference的链接!)

澳门金沙国际 22澳门金沙国际 23

澳门金沙国际 24   
 澳门金沙国际 25 LAN扣查看设备的IP地址(地址池一般是从000到255之间的)能够直接在那些地点中进行查看搜索IP

 1 # -*- coding: utf-8 -*-
 2 import time
 3 while True:
 4     time.sleep(5)#休眠5秒再次查看有没有到分钟数字发生改变
 5     year=time.localtime(time.time()).tm_year
 6     mon=time.localtime(time.time()).tm_mon
 7     mday=time.localtime(time.time()).tm_mday
 8     hour=time.localtime(time.time()).tm_hour
 9     min=time.localtime(time.time()).tm_min
10     sec=time.localtime(time.time()).tm_sec
11     if sec <= 5:
12         tp=open("/home/pi/temp_data/temp.csv","a")
13         #用末尾添加的方式在temp.csv文件的末尾添加新的时间和温度数据
14         tp.write(str(year))
15         tp.write("/")
16         tp.write(str(mon))
17         tp.write("/")
18         tp.write(str(mday))
19         tp.write("/")
20         tp.write(str(hour))
21         tp.write("/")
22         tp.write(str(min))
23         tp.write("/")
24         tp.write(str(sec))
25         tp.write(",")#csv文件的分隔符
26        #读取温度传感器
27         tfile=open("/sys/bus/w1/devices/28-000003e6d2d2/w1_slave",'r')
28         lines=tfile.readlines()
29         tfile.close()
30         k=lines[1].find('t=')
31         temp_str = lines[1][k+2:k+7]
32         temperature=float(temp_str)/1000.0
33         print(temperature)
34         tp.write(str(temperature))
35         tp.write("\n")
36         tp.close()
37  

连天形成之后如下图所示:

View Code

澳门金沙国际 26

③ 、将保存温度值配置成系统运维任务

完了连接之后大家就能可心如意的通过Xshell的命令行对树莓派实行操作了!Cheers!

   
由于小车内尚未显示器,也不便利每便开机还要用极端运营上面包车型地铁Python程序。由此有必不可中将以此程序配置为开机就运营的系统任务。

硬件参数以及GPIO控制编制程序:

 
 首先
,安装用于配置和查看运行职责的chkconfig,在终点中更实用如下命令行:sudo
apt-get install chkconfig

如下图所示(那是树莓派的GPIO的引脚图):风扇的装置地方正是引脚4和引脚6,注意深灰蓝线连接的是5V的职分pin4,墨绿的线连接的是pin6。前边觉得风扇声音太大了就没用了,之后打算有时光给风扇上串连叁个滑动变阻器调节风扇的快慢。

   其次,编写运转Python程序的脚本tmp_rec.sh如下所示。

澳门金沙国际 27  那么些正是树莓派的硬件的安装图   
 澳门金沙国际 28 
  风扇的安装,那里自个儿设想接纳raspberry的python编写实时监测CPU温度的剧本,进而运转控制风扇的团团转(后边升级为活动调节风扇的快慢)

#!/bin/bash

上边开头布置利用大家的GPIO引脚:

python3 /home/pi/python_ex/DS18B20/wr_time_temp.py

设置GPIO的操作库:

    为那几个本子扩充可进行权限,并将其拷贝到/etc/init.d/下

1– C语言库包安装
wiringPi.h和编程

mv tmp_rec.sh /etc/init.d/

    1$ sudo apt-get update

chmod +r /etc/init.d/tmp_rec.sh

    2$ sudo apt-get install git-core

   第三,将tmp_rec.sh添加到起步运作的劳务进程中:

    3$ git clone git://git.drogon.net/wiringPi

chkconfig –add tmp_rec.sh

    4$ cd wiringPi

     添加后得以透过以下命令行查看该服务的意况:

    5$ ./build

chkconfig –list tmp_rec.sh

    6$ cd wiringPi/wiringPi

   第四,假设急需关闭该运行运营的劳动则能够执行以下命令行:

    7$ make

chkconfig –del tmp_rec.sh

    8$ make install

④ 、记录温度车内温度变化曲线

达成以上的七个步骤的操作就做到了WiringPi库的设置。注意,作者这里遇到2个题材,找了很久才解决的标题,正是当自己编写翻译作者的main.c文件的时候报出如下的荒谬(gcc
main.c -o main -l wiringPi):

   
将一连了DS18B20的乔木丛派放入车内,选择点烟器车载(An on-board)充电器的USB口供电,即可达成车内温度变化曲线记录功效。

/usr/lib/gcc/arm-linux-gnueabihf/4.9/../../../arm-linux-gnueabihf/crt1.o:在函数‘_start’中:
/build/glibc-H706YU/glibc-2.19/csu/../ports/sysdeps/arm/start.S:119:对‘main’未定义的引用
collect2: error: ld returned 1 exit status

澳门金沙国际 29

报错的化解办法是实践第拾条和第七条指令,make
;make install 那样就创设安装了Dynamic lib和Static Lib的装置。

图4 车内连接树莓派和DS18B20

接下去正是编程啦~~~

   
 使用时值得注意的是,树莓派3没有实时时钟,每便上电供给三番五次互联网获取时间来作为系统时间。而本记录程序在温度的还要还要记下当前光阴。由此唯有你的车停在有WIFI信号的地点,不然供给打开手提式有线电话机热点供树莓派连接网络获得系统时间。

 1 #include <wiringPi.h>
 2 #include <stdio.h>
 3 #include <stdlib.h>
 4 int main(int argc,char* argv[])
 5 {
 6     if (argc < 2)
 7     {
 8         printf("Usage example: ./led 4 \n");
 9         return 1;
10     }
11     int pinNumber = atoi(argv[1]);//字符串转整形函数atoi()函数
12     printf("PinNumber is:%d\n",pinNumber);
13     if (-1 == wiringPiSetup())
14     {
15         printf("Setup wiringPi failed!");
16         return 1;
17     }
18     printf("The Code will begain to Running!\n");
19     pinMode(pinNumber, OUTPUT); // set mode to output 
20     while(1) 
21     {
22         digitalWrite(pinNumber, 1); // output a high level 
23         delay(800);
24         digitalWrite(pinNumber, 0); // output a low level 
25         delay(800);
26     }
27     return 0;
28 }

   
 前边的Python程序在笔录温度数据文件(*.csv)时选拔了ASCII码,因而能够行使Matlab、Excel和Python
matplot等随意流行的绘图工具来绘制车内温度变化曲线。 

2–
Python语言库包安装卡宴Pi.GPIO和编制程序

 澳门金沙国际 30

Python的开支非常顺风,没有蒙受任何编写翻译出错的题材,一路堵塞啊~~~

图5 车内温度曲线

    1$ sudo apt-get install python-dev

   
 由上海体育场合能够着力看出一郁蒸车内温度变化趋势,上午10:00左右放入后数时辰达到最高值29℃左右,随后出于深夜和夜间有雨,从而造成温度慢慢下落。刚初阶阶段的热度骤降,是出于手握DS18B20的原由造成的。别的是因为降水全天温度峰值并不如想象中高,下次能够接纳一个爽朗的小日子再度测试。

    2$ sudo apt-get install python-pip(那是三个python开发包的设置插件)

 

    3$ sudo pip install rpi.gpio

测试安装成功:

澳门金沙国际 31

接下去就能够起来编制程序啦!!!!!(小编用的是BCM
GPIO的17号引脚,就像24号引脚不佳用,大家瞩目一下)

 1 import os
 2 import sys
 3 import RPi.GPIO as GPIO
 4 import time
 5 
 6 led_pin=17
 7 
 8 GPIO.setwarnings(False)
 9 GPIO.setmode(GPIO.BCM)
10 GPIO.setup(led_pin,GPIO.OUT)
11 
12 print 'linker led pin 17 (BCM GPIO)'
13 
14 while True:
15     GPIO.output(led_pin,True)
16     time.sleep(0.2)
17     GPIO.output(led_pin,False)
18     time.sleep(0.2)

笔者就不上效益图了(盗用几张图纸T.T),那几个决定都很简单,想要看看还有这么些好的依照树莓派Raspberry的花色,看一看那里:

澳门金沙国际 32 澳门金沙国际 33 

说到底就是关机的难点了:

在命令行运维:poweroff now即可

等待关机之后,拔掉电源即可,可能自身给USB电源线上边安装贰个开关也足以。

Reference:

http://www.codelast.com/%E5%8E%9F%E5%88%9B%E9%80%9A%E8%BF%87raspberry-pi%E7%9A%84gpio%E6%8E%A5%E5%8F%A3%E6%8E%A7%E5%88%B6%E5%8F%91%E5%85%89%E4%BA%8C%E6%9E%81%E7%AE%A1control-led-through-the-gpio-on-raspberry-pi/(入门C语言控制GPIO+Python控制GPIO)

(没有显示屏如何连接,如何决定)

http://shumeipai.nxez.com/2013/09/07/no-screen-unknow-ip-login-pi.html(没有显示屏且IP未知的图景下登录树莓派)

http://blog.csdn.net/wangkai_123456/article/details/21530963(main函数的五个参数的相关题材和应用方式int
main(int argc,int *argv[]))

相关文章