From 4bb08d9d33c39d1384dd85f9dfd0344ba24b99f1 Mon Sep 17 00:00:00 2001 From: aixiao Date: Sun, 21 Jan 2018 14:36:21 +0800 Subject: [PATCH] 20180121 --- raspberrypi_zero/gpio/info.sh | 95 +++++++++++++++++++++++++++++ raspberrypi_zero/gpio/info_light | Bin 0 -> 8364 bytes raspberrypi_zero/gpio/info_light.c | 31 ++++++++++ raspberrypi_zero/gpio/info_pin | Bin 0 -> 8432 bytes raspberrypi_zero/gpio/info_pin.c | 32 ++++++++++ 5 files changed, 158 insertions(+) create mode 100644 raspberrypi_zero/gpio/info.sh create mode 100644 raspberrypi_zero/gpio/info_light create mode 100644 raspberrypi_zero/gpio/info_light.c create mode 100644 raspberrypi_zero/gpio/info_pin create mode 100644 raspberrypi_zero/gpio/info_pin.c diff --git a/raspberrypi_zero/gpio/info.sh b/raspberrypi_zero/gpio/info.sh new file mode 100644 index 0000000..78c3feb --- /dev/null +++ b/raspberrypi_zero/gpio/info.sh @@ -0,0 +1,95 @@ +#!/bin/bash +# +# reapberry zero w +# GPIO module +# Date: 20180118 +# Time: 17:17 +# +# AUthor: aixiao@aixiao.me. +# + + +function DATE() +{ + y=$(date "+%y"); + m=$(date "+%m"); + d=$(date "+%d"); + H=$(date "+%H"); + M=$(date "+%M"); + S=$(date "+%S"); +} + +function get18b20data() +{ + MODEL="28-04174019f0ff"; + 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}'); + echo $y年$m月$d日$H时$M分$S秒 + echo -ne "当前室内温度: "; + echo -e "\e[1;31m${temperature}℃ \e[0m"; + else + return 1; + fi +} + +function getcpudata() +{ + MHZ=$(cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq | awk '{print $1/1000}'); + temperature=$(cat /sys/class/thermal/thermal_zone0/temp | awk '{print $1/1000}'); + percentage=$(top -b -n 2 | grep ^%Cpu | sed -n "2p" | sed -e 's/^.*://g;s/..,//g;s/st//g' | awk '{print "scale=1; 100-" $4 }' | bc); + echo "Cpu Frequencyi: ${MHZ}MHZ"; + echo -e "\e[1;31mCpu temperature: ${temperature}℃ \e[0m"; + echo "Cpu Percentage: ${percentage}%"; +} + +function lightinfo() +{ + bindir="/root/gpio" + ! test -d ${bindir} && exit 1; + #时间范围 + high="1400"; + low="1430"; + #当前时间 + now=$(date +%H%M); + bcm_lightpin="20"; + wiringpi_lightpin="28"; + + #判断手机是否在线 + phoneip="192.168.137.175"; + phonelogic="$(ping ${phoneip} -c 1 -S 1 &> /dev/null; echo $?)"; + + #读取灯pin值 + lightpinvalue="$(${bindir}/info_pin ${wiringpi_lightpin})"; + lightpinvalue="$(gpio -g read ${bcm_lightpin})"; + + #开灯&关灯 + start_light="${bindir}/info_light ${wiringpi_lightpin} 1"; + stop_light="${bindir}/info_light ${wiringpi_lightpin} 0"; + +} + +DATE; +#getcpudata; +#get18b20data >> ~/temperature.txt; +lightinfo; + +while true; do + if [ "${now}" -ge "${high}" -a "${now}" -le "${low}" ]; then #检测时间段 + if [ "${phonelogic}" == "0" ]; then #检测手机IP + if test "${lightpinvalue}" = "0"; then #检测灯pin值 + ${start_light}; + fi + else + if test "${lightpinvalue}" = "1"; then #如果开着就关闭 + ${stop_light}; + fi + fi + else + if test "${lightpinvalue}" = "1"; then #如果开着就关闭 + ${stop_light}; + fi + fi + lightinfo; #再次获取信息 + sleep 9; #睡眠 +done + diff --git a/raspberrypi_zero/gpio/info_light b/raspberrypi_zero/gpio/info_light new file mode 100644 index 0000000000000000000000000000000000000000..b29f0faf8977ef1e637d9eee4f3fb16bf9ef27cf GIT binary patch literal 8364 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 Nb4aT2-))+7^R>%MV literal 0 HcmV?d00001 diff --git a/raspberrypi_zero/gpio/info_light.c b/raspberrypi_zero/gpio/info_light.c new file mode 100644 index 0000000..a0af61e --- /dev/null +++ b/raspberrypi_zero/gpio/info_light.c @@ -0,0 +1,31 @@ +#include +#include +#include + +/* +void pinMode (int pin, int mode) ; +void pullUpDnControl (int pin, int pud) ; +void digitalWrite (int pin, int value) ; +void pwmWrite (int pin, int value) ; +int digitalRead (int pin) ; +analogRead (int pin) ; +analogWrite (int pin, int value) ; +*/ +int main(int argc, char *argv[]) +{ + if( argc != 3) { + exit(0); + } + + int pin = atol(argv[1]); + wiringPiSetup(); + + pinMode(pin, OUTPUT); + if(atol(argv[2]) == 1) { + digitalWrite(pin, HIGH); + } + if(atol(argv[2]) == 0) { + digitalWrite(pin, LOW); + } + +} diff --git a/raspberrypi_zero/gpio/info_pin b/raspberrypi_zero/gpio/info_pin new file mode 100644 index 0000000000000000000000000000000000000000..bb8e05f26171059e73a03212fbd6986a962a90f0 GIT binary patch literal 8432 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 +#include +#include + +/* +void pinMode (int pin, int mode) ; +void pullUpDnControl (int pin, int pud) ; +void digitalWrite (int pin, int value) ; +void pwmWrite (int pin, int value) ; +int digitalRead (int pin) ; +analogRead (int pin) ; +analogWrite (int pin, int value) ; +*/ +int main(int argc, char *argv[]) +{ + if( argc != 2) { + exit(0); + } + + int pin = atol(argv[1]); + wiringPiSetup(); + pinMode(pin, OUTPUT); + /* + while(1) { + digitalWrite(28, HIGH); + digitalWrite(28, LOW); + } + + return digitalRead(28); + */ + printf("%d\n", digitalRead(pin)); +}