From 8891ac2b9557c76863aaf139cc504c815b2f6f70 Mon Sep 17 00:00:00 2001 From: zlaxy Date: Sun, 23 Dec 2018 19:13:13 +0300 Subject: [PATCH] dec2018working --- README.md | 3 + controller.ino | 99 +++++++++++++++++++++++++++++++++ crontab.txt | 6 ++ etc/systemd/system/opi.service | 11 ++++ salad/SCRBLUE.sh | 5 -- salad/ch1off.sh | 4 -- salad/ch1on.sh | 4 -- salad/ch2off.sh | 4 -- salad/ch2on.sh | 4 -- salad/checkled.sh | 21 +++---- salad/chtemphum.sh | 63 +++++++++++++++++++-- salad/compoff.sh | 2 + salad/compon.sh | 2 + salad/gpioinit.sh | 22 +------- salad/screenshot.sh | 18 +++--- salad/watering.sh | 5 ++ saladtestingbox.fzz | Bin 0 -> 689601 bytes saladtestingbox.jpg | Bin 0 -> 245846 bytes var/www/html/sys/index.html | 35 ++++++++++++ 19 files changed, 246 insertions(+), 62 deletions(-) create mode 100644 README.md create mode 100644 controller.ino create mode 100644 crontab.txt create mode 100644 etc/systemd/system/opi.service delete mode 100755 salad/SCRBLUE.sh delete mode 100755 salad/ch1off.sh delete mode 100755 salad/ch1on.sh delete mode 100755 salad/ch2off.sh delete mode 100755 salad/ch2on.sh create mode 100755 salad/compoff.sh create mode 100755 salad/compon.sh create mode 100755 salad/watering.sh create mode 100644 saladtestingbox.fzz create mode 100644 saladtestingbox.jpg create mode 100644 var/www/html/sys/index.html diff --git a/README.md b/README.md new file mode 100644 index 0000000..75ba212 --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +Salad testing faust-box files for OrangePi WinPlus +====== +![saladtestingbox](https://dev.ussr.win/faust/saladtestingbox/raw/branch/master/saladtestingbox.jpg) diff --git a/controller.ino b/controller.ino new file mode 100644 index 0000000..a703920 --- /dev/null +++ b/controller.ino @@ -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 +#include // DS18B20 temp sensor +#include +#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); +} diff --git a/crontab.txt b/crontab.txt new file mode 100644 index 0000000..562c6b3 --- /dev/null +++ b/crontab.txt @@ -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 diff --git a/etc/systemd/system/opi.service b/etc/systemd/system/opi.service new file mode 100644 index 0000000..b441fd8 --- /dev/null +++ b/etc/systemd/system/opi.service @@ -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 diff --git a/salad/SCRBLUE.sh b/salad/SCRBLUE.sh deleted file mode 100755 index 5a1f5a2..0000000 --- a/salad/SCRBLUE.sh +++ /dev/null @@ -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 diff --git a/salad/ch1off.sh b/salad/ch1off.sh deleted file mode 100755 index 7b511bb..0000000 --- a/salad/ch1off.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh -# channel 1 off -echo 1 >/sys/class/gpio/gpio36/value - diff --git a/salad/ch1on.sh b/salad/ch1on.sh deleted file mode 100755 index b6e822c..0000000 --- a/salad/ch1on.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh -# channel 1 on -echo 0 >/sys/class/gpio/gpio36/value - diff --git a/salad/ch2off.sh b/salad/ch2off.sh deleted file mode 100755 index 142fdce..0000000 --- a/salad/ch2off.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh -# channel 2 off -echo 1 >/sys/class/gpio/gpio37/value - diff --git a/salad/ch2on.sh b/salad/ch2on.sh deleted file mode 100755 index 50b55fc..0000000 --- a/salad/ch2on.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh -# channel 2 on -echo 0 >/sys/class/gpio/gpio37/value - diff --git a/salad/checkled.sh b/salad/checkled.sh index e81d934..b537078 100755 --- a/salad/checkled.sh +++ b/salad/checkled.sh @@ -1,18 +1,19 @@ #!/bin/sh HOUR=`date "+%H"` -CH1STATUS=`gpio read 21` 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 - if [ "$CH1STATUS" = "0" ]; then - echo $CH1STATUS - sh ch1off.sh - echo off + if [ "$CH1STATUS" = "t" ]; then + echo "221" > /dev/ttyUSB0 + echo "led off" fi else - if [ "$CH1STATUS" = "1" ]; then - echo $CH1STATUS - sh ch1on.sh - echo on + if [ "$CH1STATUS" = "f" ]; then + echo "211" > /dev/ttyUSB0 + echo "led on" fi fi diff --git a/salad/chtemphum.sh b/salad/chtemphum.sh index 34c4131..629ef5a 100755 --- a/salad/chtemphum.sh +++ b/salad/chtemphum.sh @@ -1,7 +1,62 @@ #!/bin/sh cd /salad DATETIME=`date "+%Y-%m-%d-%H-%M"` -HUM=`dht22 -p 38 -s hum` -sleep 1 -TEMP=`dht22 -p 38 -s temp` -echo "$DATETIME HUM = $HUM TEMP = $TEMP" >> SALAD_log.txt +COUNT=0 +while (!(echo "$TEMP" | grep -E -q "^-?[0-9]+([.][0-9]+)?$")) +do + COUNT=`expr $COUNT + 1` + TEMP=`dht22 -p 38 -s temp` + 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 diff --git a/salad/compoff.sh b/salad/compoff.sh new file mode 100755 index 0000000..dca408a --- /dev/null +++ b/salad/compoff.sh @@ -0,0 +1,2 @@ +#!/bin/sh +echo "226" > /dev/ttyUSB0 diff --git a/salad/compon.sh b/salad/compon.sh new file mode 100755 index 0000000..253272a --- /dev/null +++ b/salad/compon.sh @@ -0,0 +1,2 @@ +#!/bin/sh +echo "216" > /dev/ttyUSB0 diff --git a/salad/gpioinit.sh b/salad/gpioinit.sh index 9559c65..b170eb1 100755 --- a/salad/gpioinit.sh +++ b/salad/gpioinit.sh @@ -2,29 +2,11 @@ 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 out >/sys/class/gpio/gpio36/direction -echo 1 >/sys/class/gpio/gpio36/value +echo in >/sys/class/gpio/gpio36/direction echo 37 >/sys/class/gpio/export -echo out >/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 in >/sys/class/gpio/gpio37/direction echo 38 >/sys/class/gpio/export echo in >/sys/class/gpio/gpio38/direction diff --git a/salad/screenshot.sh b/salad/screenshot.sh index 7262fd3..4c4fad3 100755 --- a/salad/screenshot.sh +++ b/salad/screenshot.sh @@ -2,16 +2,20 @@ # 10-15sec for photo SAVEDIR=/salad/screenshots/ 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 -./ch2on.sh +echo "213" > /dev/ttyUSB0 sleep 0.5 -./ch1off.sh -sleep 9 +echo "221" > /dev/ttyUSB0 +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 -if [ "$CH1STATUS" = 0 ] +if [ "$CH1STATUS" = "t" ] then - ./ch1on.sh + echo "211" > /dev/ttyUSB0 fi sleep 0.1 -./ch2off.sh +echo "223" > /dev/ttyUSB0 +# copy +cp ${SAVEDIR}${DATETIME}.jpeg /var/www/html/sys/lastimage.jpg diff --git a/salad/watering.sh b/salad/watering.sh new file mode 100755 index 0000000..ef6c3a5 --- /dev/null +++ b/salad/watering.sh @@ -0,0 +1,5 @@ +#!/bin/sh +cd /salad +echo "215" > /dev/ttyUSB0 +sleep 2.5 +echo "225" > /dev/ttyUSB0 diff --git a/saladtestingbox.fzz b/saladtestingbox.fzz new file mode 100644 index 0000000000000000000000000000000000000000..76c24bb92ce1acfcbecc32c40b2c26c6e0ff7bbe GIT binary patch literal 689601 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