20180210
This commit is contained in:
parent
9254fb43b9
commit
25688c3437
BIN
raspberrypi_zero/gpio/.tar.bz2
Normal file
BIN
raspberrypi_zero/gpio/.tar.bz2
Normal file
Binary file not shown.
1
raspberrypi_zero/gpio/data/infrared.data
Normal file
1
raspberrypi_zero/gpio/data/infrared.data
Normal file
@ -0,0 +1 @@
|
|||||||
|
1
|
1
raspberrypi_zero/gpio/data/sound.data
Normal file
1
raspberrypi_zero/gpio/data/sound.data
Normal file
@ -0,0 +1 @@
|
|||||||
|
0
|
@ -26,14 +26,16 @@ function SLEEP()
|
|||||||
function get18b20data()
|
function get18b20data()
|
||||||
{
|
{
|
||||||
MODEL="28-04174019f0ff";
|
MODEL="28-04174019f0ff";
|
||||||
|
while true; do
|
||||||
if test -d "/sys/devices/w1_bus_master1/${MODEL}"; then
|
if test -d "/sys/devices/w1_bus_master1/${MODEL}"; then
|
||||||
temperature=$(cat /sys/devices/w1_bus_master1/28-04174019f0ff/w1_slave | grep 't=' | sed 's/^.*t=//g' | awk '{print $1/1000}');
|
temperature=$(cat /sys/devices/w1_bus_master1/28-04174019f0ff/w1_slave | grep 't=' | sed 's/^.*t=//g' | awk '{print $1/1000}');
|
||||||
#echo $y年$m月$d日$H时$M分$S秒
|
#echo $y年$m月$d日$H时$M分$S秒
|
||||||
echo -ne "当前室内温度: ";
|
#echo -ne "当前室内温度: ";
|
||||||
echo -e "\e[1;31m${temperature}℃ \e[0m";
|
#echo -e "\e[1;31m${temperature}℃ \e[0m";
|
||||||
else
|
echo "${temperature}℃ " >> data/temperature.data;
|
||||||
return 1;
|
|
||||||
fi
|
fi
|
||||||
|
SLEEP 60;
|
||||||
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
function getcpudata()
|
function getcpudata()
|
||||||
@ -46,9 +48,10 @@ function getcpudata()
|
|||||||
echo "Cpu Percentage: ${percentage}%";
|
echo "Cpu Percentage: ${percentage}%";
|
||||||
}
|
}
|
||||||
|
|
||||||
function lightinfo()
|
function INIT()
|
||||||
{
|
{
|
||||||
bindir="/root/gpio"
|
null="/dev/null";
|
||||||
|
bindir="/root/gpio";
|
||||||
! test -d ${bindir} && exit 1;
|
! test -d ${bindir} && exit 1;
|
||||||
#时间范围
|
#时间范围
|
||||||
high="1500";
|
high="1500";
|
||||||
@ -67,7 +70,11 @@ function lightinfo()
|
|||||||
|
|
||||||
#判断人体红外线传感器
|
#判断人体红外线传感器
|
||||||
#infrared=$(${bindir}/info_infrared ${wiringpi_infrared});
|
#infrared=$(${bindir}/info_infrared ${wiringpi_infrared});
|
||||||
infrared=$(cat ${bindir}/infrared.log 2> /dev/null);
|
infrared=$(cat ${bindir}/data/infrared.data 2> /dev/null);
|
||||||
|
|
||||||
|
#声音传感器
|
||||||
|
wiringpi_sound=25;
|
||||||
|
sound=$(cat ${bindir}/data/sound.data 2> /dev/null);
|
||||||
|
|
||||||
#距离传感器
|
#距离传感器
|
||||||
l="60";
|
l="60";
|
||||||
@ -86,21 +93,15 @@ function lightinfo()
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#DATE;
|
|
||||||
#getcpudata;
|
|
||||||
#get18b20data >> ~/temperature.txt;
|
|
||||||
lightinfo;
|
|
||||||
|
|
||||||
|
|
||||||
function WHILE()
|
function WHILE()
|
||||||
{
|
{
|
||||||
while true; do
|
while true; do
|
||||||
${bindir}/info_infrared ${wiringpi_infrared} > infrared.log
|
${bindir}/info_infrared ${wiringpi_infrared} > data/infrared.data;
|
||||||
SLEEP 1
|
SLEEP 1;
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
function main_()
|
function light()
|
||||||
{
|
{
|
||||||
while true; do
|
while true; do
|
||||||
if [ "${now}" -ge "${high}" -a "${now}" -le "${low}" ]; then #检测时间段
|
if [ "${now}" -ge "${high}" -a "${now}" -le "${low}" ]; then #检测时间段
|
||||||
@ -122,14 +123,37 @@ while true; do
|
|||||||
${stop_light};
|
${stop_light};
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
lightinfo; #再次获取信息
|
INIT; #再次获取信息
|
||||||
SLEEP 1; #睡眠
|
SLEEP 1; #睡眠
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
while getopts :ds: pi
|
function light_daemon()
|
||||||
|
{
|
||||||
|
while true; do
|
||||||
|
${bindir}/info_infrared ${wiringpi_infrared} > data/infrared.data;
|
||||||
|
SLEEP 1;
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
function sound_daemon()
|
||||||
|
{
|
||||||
|
while :; do
|
||||||
|
${bindir}/info_sound ${wiringpi_sound} > data/sound.data
|
||||||
|
SLEEP 0.3;
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
function sound()
|
||||||
|
{
|
||||||
|
:
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
INIT;
|
||||||
|
while getopts :ds:x ai
|
||||||
do
|
do
|
||||||
case ${pi} in
|
case ${ai} in
|
||||||
d)
|
d)
|
||||||
daemon='&';
|
daemon='&';
|
||||||
;;
|
;;
|
||||||
@ -138,7 +162,8 @@ case ${pi} in
|
|||||||
"stop")
|
"stop")
|
||||||
array=$(ls ${bindir}/log/)
|
array=$(ls ${bindir}/log/)
|
||||||
for arr in ${array[@]}; do
|
for arr in ${array[@]}; do
|
||||||
kill $(cat ${bindir}/log/${arr})
|
kill $(cat ${bindir}/log/${arr}) &> ${null}
|
||||||
|
rm ${bindir}/log/${arr} 2> ${null}
|
||||||
done
|
done
|
||||||
exit 0
|
exit 0
|
||||||
;;
|
;;
|
||||||
@ -148,12 +173,19 @@ case ${pi} in
|
|||||||
esac
|
esac
|
||||||
exit 0
|
exit 0
|
||||||
;;
|
;;
|
||||||
|
x)
|
||||||
|
set -x
|
||||||
|
;;
|
||||||
h|?)
|
h|?)
|
||||||
echo "
|
echo -ne "
|
||||||
raspberrypi zero w 智能灯控
|
\e[1;31mraspberrypi zero w 智能家居\e[0m
|
||||||
$0 Usage: $0 [-?|h] [-d] [-s]
|
$0 Usage: $0 [-?|h] [-d] [-s] [-x] [light|temperature]
|
||||||
-d Daemon.
|
-d : Daemon.
|
||||||
-s kill Daemon, signal: stop.
|
-s : kill Daemon, signal: stop.
|
||||||
|
-x : Print commands and their arguments as they are executed.
|
||||||
|
|
||||||
|
light : light Modular.
|
||||||
|
temperature : temperature Modular.
|
||||||
|
|
||||||
by aixiao.
|
by aixiao.
|
||||||
"
|
"
|
||||||
@ -162,8 +194,26 @@ exit 0
|
|||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
WHILE &
|
shift $((OPTIND-1))
|
||||||
WHILEID="$(echo $!)"
|
case ${1} in
|
||||||
echo ${WHILEID} > log/infrared.pid 2> /dev/null
|
light)
|
||||||
eval main_ ${daemon}
|
light_daemon &
|
||||||
echo $! > log/main.pid 2> /dev/null
|
light_daemon_id="$(echo $!)"
|
||||||
|
echo ${light_daemon_id} > log/infrared.pid 2> ${null}
|
||||||
|
eval light ${daemon}
|
||||||
|
echo $! > log/light.pid 2> ${null}
|
||||||
|
;;
|
||||||
|
temperature)
|
||||||
|
#get18b20data &
|
||||||
|
#echo $! > log/temperature.pid 2> ${null}
|
||||||
|
:
|
||||||
|
;;
|
||||||
|
sound)
|
||||||
|
sound_daemon &
|
||||||
|
echo $! > log/sound.pid 2> ${null};
|
||||||
|
eval sound ${daemon};
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
exit 1;
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
@ -10,27 +10,13 @@ int main(int argc, char *argv[])
|
|||||||
}
|
}
|
||||||
int pin = atol(argv[1]);
|
int pin = atol(argv[1]);
|
||||||
int status = 0;
|
int status = 0;
|
||||||
|
|
||||||
wiringPiSetup();
|
wiringPiSetup();
|
||||||
|
|
||||||
//设置为输入模式
|
|
||||||
pinMode(pin, INPUT);
|
pinMode(pin, INPUT);
|
||||||
|
|
||||||
//很重要。控制默认情况下此PIN处于下拉低电平状态
|
|
||||||
pullUpDnControl(pin, PUD_DOWN);
|
pullUpDnControl(pin, PUD_DOWN);
|
||||||
|
|
||||||
/*
|
|
||||||
while(true)
|
|
||||||
{
|
|
||||||
delay(1000);
|
|
||||||
//读取当前pin的输入状态
|
|
||||||
if(digitalRead(pin) == 1) {
|
|
||||||
printf("There is somebody here\n");
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
printf("There is no one here\n");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
status = digitalRead(pin);
|
status = digitalRead(pin);
|
||||||
printf("%d\n", status);
|
printf("%d\n", status);
|
||||||
|
|
||||||
|
@ -20,13 +20,5 @@ int main(int argc, char *argv[])
|
|||||||
int pin = atol(argv[1]);
|
int pin = atol(argv[1]);
|
||||||
wiringPiSetup();
|
wiringPiSetup();
|
||||||
pinMode(pin, OUTPUT);
|
pinMode(pin, OUTPUT);
|
||||||
/*
|
|
||||||
while(1) {
|
|
||||||
digitalWrite(28, HIGH);
|
|
||||||
digitalWrite(28, LOW);
|
|
||||||
}
|
|
||||||
|
|
||||||
return digitalRead(28);
|
|
||||||
*/
|
|
||||||
printf("%d\n", digitalRead(pin));
|
printf("%d\n", digitalRead(pin));
|
||||||
}
|
}
|
||||||
|
BIN
raspberrypi_zero/gpio/info_sound
Normal file
BIN
raspberrypi_zero/gpio/info_sound
Normal file
Binary file not shown.
23
raspberrypi_zero/gpio/info_sound.c
Normal file
23
raspberrypi_zero/gpio/info_sound.c
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
#include <wiringPi.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <stdbool.h>
|
||||||
|
|
||||||
|
int main(int argc, char *argv[])
|
||||||
|
{
|
||||||
|
if(argc != 2) {
|
||||||
|
exit(0);
|
||||||
|
}
|
||||||
|
int pin = atol(argv[1]);
|
||||||
|
int status = 0;
|
||||||
|
|
||||||
|
wiringPiSetup();
|
||||||
|
|
||||||
|
pinMode(pin, INPUT);
|
||||||
|
|
||||||
|
pullUpDnControl(pin, PUD_DOWN);
|
||||||
|
|
||||||
|
status = digitalRead(pin);
|
||||||
|
printf("%d\n", status);
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user