#!/usr/sbin/blassic '/home/graham/i2c/solar/solar_display.bas 'press # key to close program ' press 2 to send solar water to main tank, 1 for feeder minute = 1 SHELL "/home/graham/i2c/solar/print_word.bas GO 1 1 1 1" 'clear the screen tank_relay$ = "OFF" ' relay defaults to off and the main tank gets the solar water SHELL "/home/graham/i2c/solar/print_word.bas MAIN_TANK 1 11 0 1" LABEL StartAgain oldminute = minute 'read the LM75 thermometers on the panel and tanks shell "echo -n `LM75-Deb-slug 72`>/var/www/ramdisk/T72.txt" shell "echo -n `LM75-Deb-slug 74`>/var/www/ramdisk/T74.txt" shell "echo -n `LM75-Deb-slug 75`>/var/www/ramdisk/T75.txt" shell "echo -n `LM75-Deb-slug 76`>/var/www/ramdisk/T76.txt" shell "echo -n `LM75-Deb-slug 77`>/var/www/ramdisk/T77.txt" 'shell "echo -n '10'>/var/www/ramdisk/bee_count.dat" shell "/home/graham/i2c/solar/wget_bee_count.sh" 'bee_count.dat is now in the ramdisk ' bring the temperature values into blassic as strings OPEN "/var/www/ramdisk/T72.txt" FOR INPUT AS #1 : INPUT #1,T72$ : CLOSE #1 OPEN "/var/www/ramdisk/T74.txt" FOR INPUT AS #1 : INPUT #1,T74$ : CLOSE #1 OPEN "/var/www/ramdisk/T75.txt" FOR INPUT AS #1 : INPUT #1,T75$ : CLOSE #1 OPEN "/var/www/ramdisk/T76.txt" FOR INPUT AS #1 : INPUT #1,T76$ : CLOSE #1 OPEN "/var/www/ramdisk/T77.txt" FOR INPUT AS #1 : INPUT #1,T77$ : CLOSE #1 OPEN "/var/www/ramdisk/bee_count.dat" FOR INPUT AS #1 : INPUT #1,bee_count$ : CLOSE #1 PRINT "bee_count$",bee_count$ T72$ = STR$(2+VAL(T72$)) 'correct for difference in readings ' show the temperatures on the green 4x20 display 'print_word.bas <1=clear/0-noclear> SHELL "/home/graham/i2c/solar/print_word.bas "+T72$+" 1 1 0 1" SHELL "/home/graham/i2c/solar/print_word.bas "+T77$+" 2 1 0 1" SHELL "/home/graham/i2c/solar/print_word.bas "+T75$+" 3 1 0 1" SHELL "/home/graham/i2c/solar/print_word.bas "+T76$+" 2 6 0 1" SHELL "/home/graham/i2c/solar/print_word.bas "+T74$+" 3 6 0 1" ' check the keyboard for commands SHELL "/home/graham/i2c/solar/LCD03_keyboard_get_key_once.bas" OPEN "/var/www/ramdisk/key_pressed.txt" FOR INPUT AS #1 : INPUT #1,key_pressed$ : CLOSE #1 PRINT "key_pressed$", key_pressed$, "VAL (key_pressed$)", VAL (key_pressed$) IF VAL (key_pressed$) = 11 THEN PRINT "you pressed # - solar_display.bas closing" :SHELL "espeak -s 140 'gud bye' > /dev/null 2>&1": SYSTEM IF VAL (key_pressed$) = 1 THEN tank_relay$ = "ON":SHELL "/home/graham/i2c/solar/print_word.bas FEED_TANK 1 11 0 1":SHELL "espeak -s 140 'feed tank' > /dev/null 2>&1" IF VAL (key_pressed$) = 2 THEN tank_relay$ = "OFF":SHELL "/home/graham/i2c/solar/print_word.bas MAIN_TANK 1 11 0 1":SHELL "espeak -s 140 'main tank' > /dev/null 2>&1" ' make the relay switch and read the immersion heater and solar pump status and light level SHELL "/home/graham/i2c/solar/solar-set_tank-read_pump_heater_lightlevel.bas "+tank_relay$ 'immersion heater OPEN "/var/www/ramdisk/port_6_status.txt" FOR INPUT AS #1 : INPUT #1,port_6_status$ : CLOSE #1 ' solar pump OPEN "/var/www/ramdisk/port_5_status.txt" FOR INPUT AS #1 : INPUT #1,port_5_status$ : CLOSE #1 ' light level OPEN "/var/www/ramdisk/solar_byte.txt" FOR INPUT AS #1 : INPUT #1,solar$ : CLOSE #1 ' OPEN "/var/www/ramdisk/T355_byte.txt" FOR INPUT AS #1 : INPUT #1,T335_byte$ : CLOSE #1 IF port_5_status$ = "410" THEN pump$ = "PUMP____ON" IF port_5_status$ = "420" THEN pump$ = "PUMP___OFF" IF port_6_status$ = "430" THEN heater$ = "HEATER__ON" IF port_6_status$ = "440" THEN heater$ = "HEATER_OFF" ' temperature$ = STR$((5*(VAL(T335_byte$))/255 - 2.73) * 100) ' print these on the display SHELL "/home/graham/i2c/solar/print_word.bas "+pump$+" 2 11 0 1" 'red SHELL "/home/graham/i2c/solar/print_word.bas "+heater$+" 3 11 0 1" 'yellow SHELL "/home/graham/i2c/solar/print_word.bas LIGHT 4 1 0 1" SHELL "/home/graham/i2c/solar/print_word.bas "+solar$+" 4 7 0 1" 'light level ' SHELL "/home/graham/i2c/solar/print_word.bas ROOF 4 11 0 1" PRINT "355 thermometer = ",temperature$ my_time$ = TIME$ hour$ = LEFT$(my_time$,2) : hour = VAL(hour$) : minute$ = MID$(my_time$,4,2) : minute = VAL(minute$) IF minute = oldminute THEN GOTO StartAgain total_minutes = hour * 60 + minute total_minutes = total_minutes/2 'match the (720pixels = 24 hours) plot routine total_minutes$ = STR$(total_minutes) PRINT "TIME$ ", TIME$, " hour " ,hour, " minute " ,minute, "total_minutes$",total_minutes$ 'DATE$ is mm-dd-yyyy mydate$ = DATE$ month$ = LEFT$(mydate$, 2): day$ = MID$(mydate$, 4, 2): year$ = RIGHT$(mydate$, 4) datafile$ = year$+month$+day$+"solar" TestEven = minute MOD 2 IF TestEven = 0 THEN GOTO SaveData 'only save for web plot every 2 minutes GOTO StartAgain LABEL SaveData T72$ = STR$ (400 - (5 * VAL(T72$))) T74$ = STR$ (400 - (5 * VAL(T74$))) T75$ = STR$ (400 - (5 * VAL(T75$))) T76$ = STR$ (400 - (5 * VAL(T76$))) T77$ = STR$ (400 - (5 * VAL(T77$))) solar$ = STR$ (400 - (VAL(solar$))) data_save$ = total_minutes$+CHR$(44)+port_5_status$+CHR$(44)+port_6_status$+CHR$(44)+solar$+CHR$(44)+T72$+CHR$(44)+T74$+CHR$(44)+T75$+CHR$(44)+T76$+CHR$(44)+T77$+CHR$(44)+bee_count$ SHELL "echo "+data_save$+" >>/var/www/solar_data/"+datafile$ PRINT PRINT PRINT "creating web page from data stored at ", datafile$ IF total_minutes > 718 THEN GOTO StartAgain ' do not make any more pages till after midnight IF total_minutes < 2 THEN GOTO StartAgain 'create a webpage of the data so far - run make_page.bas SHELL "/home/graham/i2c/solar/print_word.bas creating 4 11 0 1" SHELL "/var/www/solar_webpage_builder/make_page.bas" SHELL "/home/graham/i2c/solar/print_word.bas GO 1 1 1 1" 'clear the screen PAUSE 1000 GOTO StartAgain SYSTEM