コード例 #1
0
ファイル: helper.py プロジェクト: anurak-kg/Automatic_Water
def time_in_range(start, end):
    current_time = datetime.datetime.today().time()
    database = RedisDatabase()

    # current_time = parser.parse(database.get("current_time")).time()
    # print current_time
    if start <= end:
        return start <= current_time <= end
    else:
        return start <= current_time or current_time <= end
コード例 #2
0
    def __init__(self, trigger, echo, number_of_sample=100):

        self.database = RedisDatabase()
        self.config = configparser.ConfigParser()
        self.config.read("config.ini")

        self.number_of_sample = number_of_sample
        self.GPIO_ECHO = echo
        self.GPIO_TRIGGER = trigger
        GPIO.setmode(GPIO.BCM)

        GPIO.setup(self.GPIO_TRIGGER, GPIO.OUT)  # Trigger
        GPIO.setup(self.GPIO_ECHO, GPIO.IN)  # Echo
        GPIO.output(self.GPIO_TRIGGER, False)
コード例 #3
0
class Statistic:
    current_status = {}

    def __init__(self):
        self.redis_database = RedisDatabase()
        self.mongo_client = MongoClient()
        self.mongo_database = self.mongo_client["smart_aqua"]
        self.stat = self.mongo_database.statistic

    def update_data(self):
        # Water Level
        self.current_status[
            RedisDatabase.WATER_LEVEL] = self.redis_database.get_water_level()

        # Screen Mode
        if self.redis_database.get_screen_mode() is not None:
            self.current_status[
                RedisDatabase.
                SCREEN_MODE] = self.redis_database.get_screen_mode()
        else:
            self.current_status[
                RedisDatabase.
                SCREEN_MODE] = self.redis_database.get_screen_mode()

        # Date
        self.current_status["date"] = datetime.datetime.utcnow()

        # TEMPERATURE and HUMIDITY
        self.current_status[RedisDatabase.HUMIDITY] = float(
            self.redis_database.get(RedisDatabase.HUMIDITY))
        self.current_status[RedisDatabase.TEMPERATURE] = float(
            self.redis_database.get(RedisDatabase.TEMPERATURE))

        # CPU

        self.current_status[RedisDatabase.CPU_USAGE] = psutil.cpu_percent()

    def save(self):
        self.stat.insert_one(self.current_status)
        self.current_status = {}

    def update_and_save(self):
        self.update_data()
        self.save()
コード例 #4
0
 def get(self):
     redis = RedisDatabase()
     type_data = self.get_argument("type", "None")
     if type_data in "real":
         self.write(demjson.encode({"water_level": redis.get_water_level()}))
コード例 #5
0
 def get(self):
     redis = RedisDatabase()
     type_data = self.get_argument("type", "None")
     if type_data in "real":
         self.write(demjson.encode({"water_level":
                                    redis.get_water_level()}))
コード例 #6
0
from Class.Log import Log
from Class.RedisDatabase import RedisDatabase
from MainApplication import MainApplication
from Module.Relay import Relay

if __name__ == "__main__":
    database = RedisDatabase()
    database.set_app_running(True)


    def exit_application():
        database.set_app_running(False)
        Log.new(Log.DEBUG, "###  Exit application! ###")
        Relay.clear_relay()

        print("Exiting....")
        print("Current App Status = " + str(database.get_app_running()))
        print("##########################")
        print("####### Clear relay ######")
        print("##########################")
        print("#######  Goodbye !!#######")
        print("##########################")


    try:
        MainApplication()

    except Exception, e:
        exit_application()
        print(e)
        raise
コード例 #7
0
 def __init__(self):
     self.redis_database = RedisDatabase()
     self.mongo_client = MongoClient()
     self.mongo_database = self.mongo_client["smart_aqua"]
     self.stat = self.mongo_database.statistic
コード例 #8
0
ファイル: rpi_test.py プロジェクト: anurak-kg/Automatic_Water
from Class.RedisDatabase import RedisDatabase
from lib_tft24T import TFT24T

GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)

DC = 22
RST = 18
LED = 23

TFT = TFT24T(spidev.SpiDev(), GPIO, landscape=True)

TFT.initLCD(DC, RST, LED, ce=1)
draw = TFT.draw()
TFT.clear((255, 255, 255))
database = RedisDatabase()
database.test_connect()
#  # Image of calculator !!!
font = ImageFont.truetype('THSarabunNew.ttf', 22)
i = 1
while True:
    TFT.load_wallpaper("bg.jpg")
    text = u'ระดับน้ำ : 2 '

    text1 = u'อุณหภูมิ :'
    draw.text((10, 80), text1, fill=(32, 32, 32), font=font)
    draw.text((10, 100), text, fill=(32, 32, 32), font=font)
    draw.text((10, 120), str(i), fill=(32, 32, 32), font=font)
    draw.textwrapped((10, 140), str(i), 38, 10, font, fill=(32, 32, 32))
    TFT.display()
    i += 1
コード例 #9
0
from Class.Log import Log
from Class.RedisDatabase import RedisDatabase
from MainApplication import MainApplication
from Module.Relay import Relay

if __name__ == "__main__":
    database = RedisDatabase()
    database.set_app_running(True)

    def exit_application():
        database.set_app_running(False)
        Log.new(Log.DEBUG, "###  Exit application! ###")
        Relay.clear_relay()

        print("Exiting....")
        print("Current App Status = " + str(database.get_app_running()))
        print("##########################")
        print("####### Clear relay ######")
        print("##########################")
        print("#######  Goodbye !!#######")
        print("##########################")

    try:
        MainApplication()

    except Exception, e:
        exit_application()
        print(e)
        raise
    finally:
        print("final")
コード例 #10
0
import configparser

from Class.RedisDatabase import RedisDatabase
from Class.Timer import Timer
from Module.Relay import Relay

config = configparser.ConfigParser()
config.read("config.ini")
database = RedisDatabase()
Relay.insert_new_relay()
#timer = Timer(config=config, redis_database=database)
#timer.start()