dec2018working
This commit is contained in:
parent
c185c20a79
commit
8891ac2b95
|
@ -0,0 +1,3 @@
|
||||||
|
Salad testing faust-box files for OrangePi WinPlus
|
||||||
|
======
|
||||||
|
![saladtestingbox](https://dev.ussr.win/faust/saladtestingbox/raw/branch/master/saladtestingbox.jpg)
|
|
@ -0,0 +1,99 @@
|
||||||
|
// 8-channel relay on arduino serial control with led blink with DS18B20
|
||||||
|
// v0.1 under dwtwl
|
||||||
|
// ch1 = pin2; ch2 = pin3; ch3 = pin4; ch4 = pin5;
|
||||||
|
// ch5 = pin6; ch6 = pin7; ch7 = pin8; ch8 = pin9; led = pin13;
|
||||||
|
// send: switch on = 21X; switch off = 22X; get status = 23X;
|
||||||
|
// codes: in = init; eX = enabled; dX = disabled; tX = power on; fX = off;
|
||||||
|
#include <Thread.h>
|
||||||
|
#include <OneWire.h> // DS18B20 temp sensor
|
||||||
|
#include <DallasTemperature.h>
|
||||||
|
#define ONE_WIRE_BUS 10
|
||||||
|
OneWire oneWire(ONE_WIRE_BUS);
|
||||||
|
DallasTemperature sensors(&oneWire);
|
||||||
|
Thread ledThread = Thread();
|
||||||
|
|
||||||
|
int incomingNumber = 0;
|
||||||
|
|
||||||
|
void setup() {
|
||||||
|
Serial.begin(9600);
|
||||||
|
pinMode(13, OUTPUT);
|
||||||
|
for(int i=2;i<10;i++){
|
||||||
|
pinMode(i, OUTPUT);
|
||||||
|
digitalWrite(i, HIGH);
|
||||||
|
}
|
||||||
|
Serial.println("in");
|
||||||
|
|
||||||
|
ledThread.onRun(ledBlink);
|
||||||
|
ledThread.setInterval(1000);
|
||||||
|
|
||||||
|
sensors.begin();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void ledBlink() {
|
||||||
|
static bool ledStatus = false;
|
||||||
|
ledStatus = !ledStatus;
|
||||||
|
digitalWrite(13, ledStatus);
|
||||||
|
}
|
||||||
|
|
||||||
|
void loop() {
|
||||||
|
// Thread init:
|
||||||
|
if (ledThread.shouldRun())
|
||||||
|
ledThread.run();
|
||||||
|
|
||||||
|
if (Serial.available() > 0) {
|
||||||
|
int incomingByte = Serial.read()-48;
|
||||||
|
if (incomingByte>=0 && incomingByte<=9) {
|
||||||
|
incomingNumber=incomingNumber*10+incomingByte;
|
||||||
|
} else {
|
||||||
|
if (incomingNumber>=210 && incomingNumber<=219) {
|
||||||
|
delay(500);
|
||||||
|
int currentPin = incomingNumber - 209;
|
||||||
|
char currentChannel[] = "e0";
|
||||||
|
currentChannel[1] = '0' + (currentPin - 1);
|
||||||
|
digitalWrite(currentPin, LOW);
|
||||||
|
Serial.println(currentChannel);
|
||||||
|
delay(500);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (incomingNumber>=220 && incomingNumber<=229) {
|
||||||
|
delay(500);
|
||||||
|
int currentPin = incomingNumber - 219;
|
||||||
|
char currentChannel[] = "d0";
|
||||||
|
currentChannel[1] = '0' + (currentPin - 1);
|
||||||
|
digitalWrite(currentPin, HIGH);
|
||||||
|
Serial.println(currentChannel);
|
||||||
|
delay(500);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (incomingNumber>=230 && incomingNumber<=239) {
|
||||||
|
delay(500);
|
||||||
|
int currentPin = incomingNumber - 229;
|
||||||
|
if (digitalRead(currentPin)==HIGH) {
|
||||||
|
char currentChannel[] = "f0";
|
||||||
|
currentChannel[1] = '0' + (currentPin - 1);
|
||||||
|
Serial.println(currentChannel);
|
||||||
|
} else {
|
||||||
|
char currentChannel[] = "t0";
|
||||||
|
currentChannel[1] = '0' + (currentPin - 1);
|
||||||
|
Serial.println(currentChannel);
|
||||||
|
}
|
||||||
|
delay(500);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (incomingNumber == 99) {
|
||||||
|
int sensorData = readDS18B20();
|
||||||
|
String temperature = "t";
|
||||||
|
String stringToPrint = temperature + sensorData;
|
||||||
|
Serial.println(stringToPrint);
|
||||||
|
}
|
||||||
|
incomingNumber = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// DS18B20 Temperature
|
||||||
|
float readDS18B20() {
|
||||||
|
sensors.requestTemperatures(); // Send the command to get temperature readings
|
||||||
|
return sensors.getTempCByIndex(0);
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
*/2 * * * * sh /salad/checkled2.sh
|
||||||
|
01 02,10,18 * * * sh /salad/screenshot.sh
|
||||||
|
02,05 02,10,18 * * * sh /salad/watering.sh
|
||||||
|
03 01,05,09,13,17,21 * * * sh /salad/compon.sh
|
||||||
|
03 03,07,11,15,19,23 * * * sh /salad/compoff.sh
|
||||||
|
00,15,30,45 * * * * sh /salad/chtemphum.sh
|
|
@ -0,0 +1,11 @@
|
||||||
|
[Unit]
|
||||||
|
Description=Opi Service
|
||||||
|
After=network.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=oneshot
|
||||||
|
User=root
|
||||||
|
ExecStart=/salad/gpioinit.sh
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
|
@ -1,5 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
# files and dirs for backup:
|
|
||||||
SAVEDIR=/salad/screenshots/
|
|
||||||
DATETIME=`date "+%Y-%m-%d-%H-%M-%S"`
|
|
||||||
ffmpeg -rtsp_transport tcp -i 'rtsp://ip.of.web.cam/user=admin&password=&channel=1&stream=0.sdp' -f image2 -vframes 1 -pix_fmt yuvj420p ${SAVEDIR}${DATETIME}.jpeg
|
|
|
@ -1,4 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
# channel 1 off
|
|
||||||
echo 1 >/sys/class/gpio/gpio36/value
|
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
# channel 1 on
|
|
||||||
echo 0 >/sys/class/gpio/gpio36/value
|
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
# channel 2 off
|
|
||||||
echo 1 >/sys/class/gpio/gpio37/value
|
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
# channel 2 on
|
|
||||||
echo 0 >/sys/class/gpio/gpio37/value
|
|
||||||
|
|
|
@ -1,18 +1,19 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
HOUR=`date "+%H"`
|
HOUR=`date "+%H"`
|
||||||
CH1STATUS=`gpio read 21`
|
|
||||||
cd /salad
|
cd /salad
|
||||||
if [ "$HOUR" = "10" ] || [ "$HOUR" = "11" ] || [ "$HOUR" = "12" ] || [ "$HOUR" = "13" ]
|
echo "231" > /dev/ttyUSB0
|
||||||
|
LEDST=`dd if=/dev/ttyUSB0 count=1`
|
||||||
|
CH1STATUS="$(echo "${LEDST}" | tr -d '1')"
|
||||||
|
|
||||||
|
if [ "$HOUR" = "10" ] || [ "$HOUR" = "11" ] || [ "$HOUR" = "12" ] || [ "$HOUR" = "13" ] || [ "$HOUR" = "14" ] || [ "$HOUR" = "15" ] || [ "$HOUR" = "16" ] || [ "$HOUR" = "17" ]
|
||||||
then
|
then
|
||||||
if [ "$CH1STATUS" = "0" ]; then
|
if [ "$CH1STATUS" = "t" ]; then
|
||||||
echo $CH1STATUS
|
echo "221" > /dev/ttyUSB0
|
||||||
sh ch1off.sh
|
echo "led off"
|
||||||
echo off
|
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
if [ "$CH1STATUS" = "1" ]; then
|
if [ "$CH1STATUS" = "f" ]; then
|
||||||
echo $CH1STATUS
|
echo "211" > /dev/ttyUSB0
|
||||||
sh ch1on.sh
|
echo "led on"
|
||||||
echo on
|
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -1,7 +1,62 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
cd /salad
|
cd /salad
|
||||||
DATETIME=`date "+%Y-%m-%d-%H-%M"`
|
DATETIME=`date "+%Y-%m-%d-%H-%M"`
|
||||||
HUM=`dht22 -p 38 -s hum`
|
COUNT=0
|
||||||
sleep 1
|
while (!(echo "$TEMP" | grep -E -q "^-?[0-9]+([.][0-9]+)?$"))
|
||||||
|
do
|
||||||
|
COUNT=`expr $COUNT + 1`
|
||||||
TEMP=`dht22 -p 38 -s temp`
|
TEMP=`dht22 -p 38 -s temp`
|
||||||
echo "$DATETIME HUM = $HUM TEMP = $TEMP" >> SALAD_log.txt
|
sleep 2
|
||||||
|
if [ "$COUNT" -eq 10 ]
|
||||||
|
then
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
COUNT=0
|
||||||
|
while (!(echo "$HUM" | grep -E -q "^-?[0-9]+([.][0-9]+)?$"))
|
||||||
|
do
|
||||||
|
COUNT=`expr $COUNT + 1`
|
||||||
|
HUM=`dht22 -p 38 -s hum`
|
||||||
|
sleep 2
|
||||||
|
if [ "$COUNT" -eq 10 ]
|
||||||
|
then
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "99" > /dev/ttyUSB0
|
||||||
|
WATER=`dd if=/dev/ttyUSB0 count=1`
|
||||||
|
WATERTEMP="$(echo "${WATER}" | tr -d 't')"
|
||||||
|
|
||||||
|
if [ "$COUNT" -eq 10 ]
|
||||||
|
then
|
||||||
|
echo "Couldn't read temp/hum"
|
||||||
|
else
|
||||||
|
echo "$DATETIME HUM = $HUM TEMP = $TEMP WATER = $WATERTEMP" >> SALAD_log.txt
|
||||||
|
fi
|
||||||
|
|
||||||
|
# air heater:
|
||||||
|
TEMPINT=${TEMP%.*}
|
||||||
|
if [ "$TEMPINT" -gt 21 ]
|
||||||
|
then
|
||||||
|
echo "224" > /dev/ttyUSB0
|
||||||
|
echo "ST $DATETIME 224 - AIR HEAT OFF" >> SALAD_log.txt
|
||||||
|
fi
|
||||||
|
if [ "$TEMPINT" -lt 19 ]
|
||||||
|
then
|
||||||
|
echo "214" > /dev/ttyUSB0
|
||||||
|
echo "ST $DATETIME 214 - AIR HEAT ON" >> SALAD_log.txt
|
||||||
|
fi
|
||||||
|
# water heater:
|
||||||
|
if [ "$WATERTEMP" -gt 21 ]
|
||||||
|
then
|
||||||
|
echo "227" > /dev/ttyUSB0
|
||||||
|
echo "ST $DATETIME 227 - WATER HEAT OFF" >> SALAD_log.txt
|
||||||
|
fi
|
||||||
|
if [ "$WATERTEMP" -lt 19 ]
|
||||||
|
then
|
||||||
|
echo "217" > /dev/ttyUSB0
|
||||||
|
echo "ST $DATETIME 217 - WATER HEAT ON" >> SALAD_log.txt
|
||||||
|
fi
|
||||||
|
|
||||||
|
cp /salad/SALAD_log.txt /var/www/html/sys/log.txt
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
#!/bin/sh
|
||||||
|
echo "226" > /dev/ttyUSB0
|
|
@ -0,0 +1,2 @@
|
||||||
|
#!/bin/sh
|
||||||
|
echo "216" > /dev/ttyUSB0
|
|
@ -2,29 +2,11 @@
|
||||||
|
|
||||||
ntpdate -q 0.rhel.pool.ntp.org
|
ntpdate -q 0.rhel.pool.ntp.org
|
||||||
|
|
||||||
echo 361 >/sys/class/gpio/export
|
|
||||||
echo out >/sys/class/gpio/gpio361/direction
|
|
||||||
echo 1 >/sys/class/gpio/gpio361/value
|
|
||||||
|
|
||||||
echo 68 >/sys/class/gpio/export
|
|
||||||
echo out >/sys/class/gpio/gpio68/direction
|
|
||||||
echo 1 >/sys/class/gpio/gpio68/value
|
|
||||||
|
|
||||||
echo 36 >/sys/class/gpio/export
|
echo 36 >/sys/class/gpio/export
|
||||||
echo out >/sys/class/gpio/gpio36/direction
|
echo in >/sys/class/gpio/gpio36/direction
|
||||||
echo 1 >/sys/class/gpio/gpio36/value
|
|
||||||
|
|
||||||
echo 37 >/sys/class/gpio/export
|
echo 37 >/sys/class/gpio/export
|
||||||
echo out >/sys/class/gpio/gpio37/direction
|
echo in >/sys/class/gpio/gpio37/direction
|
||||||
echo 1 >/sys/class/gpio/gpio37/value
|
|
||||||
|
|
||||||
echo 39 >/sys/class/gpio/export
|
|
||||||
echo out >/sys/class/gpio/gpio39/direction
|
|
||||||
echo 1 >/sys/class/gpio/gpio39/value
|
|
||||||
|
|
||||||
echo 101 >/sys/class/gpio/export
|
|
||||||
echo out >/sys/class/gpio/gpio101/direction
|
|
||||||
echo 1 >/sys/class/gpio/gpio101/value
|
|
||||||
|
|
||||||
echo 38 >/sys/class/gpio/export
|
echo 38 >/sys/class/gpio/export
|
||||||
echo in >/sys/class/gpio/gpio38/direction
|
echo in >/sys/class/gpio/gpio38/direction
|
||||||
|
|
|
@ -2,16 +2,20 @@
|
||||||
# 10-15sec for photo
|
# 10-15sec for photo
|
||||||
SAVEDIR=/salad/screenshots/
|
SAVEDIR=/salad/screenshots/
|
||||||
DATETIME=`date "+%Y-%m-%d-%H-%M-%S"`
|
DATETIME=`date "+%Y-%m-%d-%H-%M-%S"`
|
||||||
CH1STATUS=`gpio read 21`
|
echo "231" > /dev/ttyUSB0
|
||||||
|
LEDST=`dd if=/dev/ttyUSB0 count=1`
|
||||||
|
CH1STATUS="$(echo "${LEDST}" | tr -d '1')"
|
||||||
cd /salad
|
cd /salad
|
||||||
./ch2on.sh
|
echo "213" > /dev/ttyUSB0
|
||||||
sleep 0.5
|
sleep 0.5
|
||||||
./ch1off.sh
|
echo "221" > /dev/ttyUSB0
|
||||||
sleep 9
|
sleep 8
|
||||||
ffmpeg -rtsp_transport tcp -i 'rtsp://ip.of.web.cam/user=admin&password=&channel=1&stream=0.sdp' -f image2 -vframes 1 -pix_fmt yuvj420p ${SAVEDIR}${DATETIME}.jpeg
|
ffmpeg -rtsp_transport tcp -i 'rtsp://ip.of.web.cam/user=admin&password=&channel=1&stream=0.sdp' -f image2 -vframes 1 -pix_fmt yuvj420p ${SAVEDIR}${DATETIME}.jpeg
|
||||||
if [ "$CH1STATUS" = 0 ]
|
if [ "$CH1STATUS" = "t" ]
|
||||||
then
|
then
|
||||||
./ch1on.sh
|
echo "211" > /dev/ttyUSB0
|
||||||
fi
|
fi
|
||||||
sleep 0.1
|
sleep 0.1
|
||||||
./ch2off.sh
|
echo "223" > /dev/ttyUSB0
|
||||||
|
# copy
|
||||||
|
cp ${SAVEDIR}${DATETIME}.jpeg /var/www/html/sys/lastimage.jpg
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
#!/bin/sh
|
||||||
|
cd /salad
|
||||||
|
echo "215" > /dev/ttyUSB0
|
||||||
|
sleep 2.5
|
||||||
|
echo "225" > /dev/ttyUSB0
|
Binary file not shown.
Binary file not shown.
After Width: | Height: | Size: 240 KiB |
|
@ -0,0 +1,35 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||||||
|
<meta http-equiv="refresh" content="900" />
|
||||||
|
<title>system page</title>
|
||||||
|
<style type="text/css" media="screen">
|
||||||
|
body { background: #e7e7e7; font-family: Verdana, sans-serif; font-size: 11pt; }
|
||||||
|
#page { background: #ffffff; margin: 50px; border: 2px solid #c0c0c0; padding: 10px; }
|
||||||
|
#header { background: #4b6983; border: 2px solid #7590ae; text-align: center; padding: 10px; color: #ffffff; }
|
||||||
|
#header h1 { color: #ffffff; }
|
||||||
|
#body { padding: 10px; }
|
||||||
|
span.tt { font-family: monospace; }
|
||||||
|
span.bold { font-weight: bold; }
|
||||||
|
a:link { text-decoration: none; font-weight: bold; color: #C00; background: #ffc; }
|
||||||
|
a:visited { text-decoration: none; font-weight: bold; color: #999; background: #ffc; }
|
||||||
|
a:active { text-decoration: none; font-weight: bold; color: #F00; background: #FC0; }
|
||||||
|
a:hover { text-decoration: none; color: #C00; background: #FC0; }
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="page">
|
||||||
|
<div id="header">
|
||||||
|
<p align="center">
|
||||||
|
<img src="lastimage.jpg" width="640">
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div id="body">
|
||||||
|
<p align="center">
|
||||||
|
<iframe src="/sys/log.txt" width="640"></iframe>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
Loading…
Reference in New Issue