Esempio n. 1
0
    def process_fertilizer(cls, veget):
        ConnectDB.get_values("light", veget['veget_id'])
        ec = ConnectDB.get_values("ec",
                                  veget['veget_id']) + 0.1  #ec ที่วัดได้ 0.7
        ph = ConnectDB.get_values("ph", veget['veget_id'])  #pH ที่วัดได้
        valueveget = ConnectDB.get_valueveget(
            veget['veget_id'])  #ค่า ที่ต้องการ 1
        fertilizerintense = ConnectDB.get_fertilizer(
            veget['fertilizer_id'])  #ความเข้มข้นปุ๋ย 0.1 100ml/1000
        level = ConnectDB.get_values("level", veget['veget_id'])  #ระดับน้ำ
        mixer = ConnectDB.get_status(6, 0)  #สถานะถังน้ำ
        pump1 = ConnectDB.get_status(1, 0)  #สถานะถังน้ำ
        print('ค่า', ec)
        print('ค่าที่ต้องการ', valueveget['ec'])
        if (ec <= (valueveget['ec'] - 0.1)):
            fertilizersum = (valueveget['ec'] - ec) * (
                100000)  #คำนวนหาจำนวนที่ต้องใช้ปุ๋ย
            fertilizerpre = (fertilizersum + 3000) / 2
            print('ปุ๋ยที่ต้องเติม', fertilizersum)
            # client.publish("@msg/fertilizer/fertilizer1/control",fertilizerpre)#เติมปุ๋ยที่ยังไม่ผสม
            # client.publish("@msg/pump/pump2","on")

            print("น้ำที่ผสม", fertilizerpre)
            client.publish("@msg/fertilizer/water/control",
                           10000)  #เติมน้ำเพื่อผสม
            client.publish("@msg/pump/pump2", "on")
            sleep(100)
            # client.publish("@msg/htdroponic/htdroponic2","on")
            # client.publish("@msg/pump/flow2",fertilizerml)#เติมปุ๋ยที่ผสมแล้ว
            # sleep(20)
            # client.publish("@msg/pump/flow2",5000)#เติมน้ำล้างท่อ
            # client.publish("@msg/htdroponic/htdroponic2","off")
            return True

        elif (ec >= (valueveget['ec'] + 0.1)):
            water = ec - valueveget['ec']  #คำนวนปริมาณเพื่อเจือจาง
            print("เติมน้ำ", water)
            # client.publish("@msg/htdroponic/htdroponic2","on")
            # client.publish("@msg/greenHouse/water","on")
            # client.publish("@msg/pump/flow2",water)#เติมน้ำเพื่อนเจือจาง
            # client.publish("@msg/pump/pump1","on")
            # client.publish("@msg/htdroponic/htdroponic2","off")
            return True
        return False
Esempio n. 2
0
    def process_fertilizer(cls, veget):
        ConnectDB.get_values("light", veget['veget_id'])
        ec = ConnectDB.get_values("ec",
                                  veget['veget_id']) + 0.1  #ec ที่วัดได้ 0.7
        ph = ConnectDB.get_values("ph", veget['veget_id'])  #pH ที่วัดได้
        valueveget = ConnectDB.get_valueveget(
            veget['veget_id'])  #ค่า ที่ต้องการ 1
        fertilizerintense = ConnectDB.get_fertilizer(
            veget['fertilizer_id'])  #ความเข้มข้นปุ๋ย 0.1 100ml/1000
        level = ConnectDB.get_values("level", veget['veget_id'])  #ระดับน้ำ
        mixer = ConnectDB.get_status(6, 0)  #สถานะถังน้ำ
        pump1 = ConnectDB.get_status(1, 0)  #สถานะถังน้ำ
        print('ค่า', ec)
        print('ค่าที่ต้องการ', valueveget['ec'])
        if (ec <= (valueveget['ec'] - 0.1)):
            client = mqtt.Client("P1")
            client.username_pw_set("smartfarm", "123456788")
            client.connect("192.168.31.41")
            #fertilizersum = (valueveget['ec']-ec)*(100000) #คำนวนหาจำนวนที่ต้องใช้ปุ๋ย
            fertilizersum = 10000
            fertilizerpre = (fertilizersum + 2000) / 2
            print('ปุ๋ยที่ต้องเติม', fertilizersum)
            client.publish("@msg/fertilizer/fertilizer2/control",
                           fertilizerpre)  #เติมปุ๋ยที่ยังไม่ผสม
            client.publish("@msg/pump/pump2", "on")
            print("้เวลาเติมปุ๋ย", 9 * (fertilizerpre / 1000))
            sleep(9 * (fertilizerpre / 1000))
            client = mqtt.Client("P1")
            client.username_pw_set("smartfarm", "123456788")
            client.connect("192.168.31.41")
            client.publish("@msg/fertilizer/fertilizer2/control", 'off')
            client.publish("@msg/fertilizer/water/control",
                           fertilizerpre)  #เติมน้ำเพื่อผสม
            client.publish("@msg/pump/pump2", "on")
            print("เวลาเติมน้ำ", 9 * (fertilizerpre / 1000))
            sleep(9 * (fertilizerpre / 1000))
            client = mqtt.Client("P1")
            client.username_pw_set("smartfarm", "123456788")
            client.connect("192.168.31.41")
            print("น้ำที่ผสม", fertilizerpre)
            client.publish("@msg/pump/pump2", "off")
            print("เติมน้ำเสร็จ")
            client.publish("@msg/fertilizer", "on")
            sleep(1)
            client.publish("@msg/hydroponic/hydroponic2", "on")
            sleep(1)
            client.publish("@msg/pump/flow2", 1000)  #เติมปุ๋ยที่ผสมแล้ว
            sleep(1)
            client.publish("@msg/pump/pump1", "on")
            print("เวลาเติมน้ำที่ผสม", 3 + (1.5 * (fertilizerpre / 1000)))
            sleep(3 + (2 * (fertilizerpre / 1000)))
            client = mqtt.Client("P1")
            client.username_pw_set("smartfarm", "123456788")
            client.connect("192.168.31.41")
            client.publish("@msg/pump/pump1", "off")
            client.publish("@msg/fertilizer", "off")
            client.publish("@msg/hydroponic/hydroponic2", "off")
            return True

        elif (ec >= (valueveget['ec'] + 0.1)):
            water = ec - valueveget['ec']  #คำนวนปริมาณเพื่อเจือจาง
            print("เติมน้ำ", water)
            # client.publish("@msg/htdroponic/htdroponic2","on")
            # client.publish("@msg/greenHouse/water","on")
            # client.publish("@msg/pump/flow2",water)#เติมน้ำเพื่อนเจือจาง
            # client.publish("@msg/pump/pump1","on")
            # client.publish("@msg/htdroponic/htdroponic2","off")
            return True
        return False