Example #1
0
def index():
    """
    metoda tworząca stronę główną webowej aplikacji 
    
    Args:
    temp -> zmienna przetrzymująca temperaturę dla pierwszego uruchomienia strony
    hum -> zmienna przetrzymująca wilgotność dla pierwszego uruchomienia strony
    move -> zmienna przetrzymująca stan czujnika ruchu dla pierwszego uruchomienia strony
    """
    temp = temp_get("temperatura_zew")
    hum = temp_get("wilgotnosc_zew")
    move = "brak"  #temp_get("kontaktron_brama")
    co2 = temp_get("co2_zew")
    """ if request.method == 'POST':

        if request.form['submit_button'] == 'Do Something':
            print("włącz termostat", file=sys.stderr) 
            pass
    # do something
    
        elif request.form['submit_button'] == 'Do Something Else':
            print("wyłącz termostat", file=sys.stderr)
            pass# do something else
    
        else:
            pass # unknown
    """
    return render_template('index.html',
                           temp=temp,
                           hum=hum,
                           move=move,
                           co2=co2)
Example #2
0
def background_process():
    """
    Metoda używana do ciągłej aktualizacji informacji na stronie 
    
    jsonify(nazwa zmiennej na stronie= wartość,....)
    """
    #if temp_get("kontaktron_brama",nb_rows=1)==1:
    return jsonify(temperature=temp_get("temperatura_zew"),
                   humidity=temp_get("wilgotnosc_zew"),
                   movement="wykryto aktywność",
                   co2=temp_get("co2_zew", nb_rows=1))
    """elif temp_get("kontaktron_brama",nb_rows=1)==0:
Example #3
0
def edge_detect(pin, collection):
    new = temp_get(collection)

    token = "iDP2biz4a0erZXDaMpuJaSLvbhc3mcon"
    #http://34.123.208.229:8080/iDP2biz4a0erZXDaMpuJaSLvbhc3mcon/get/V
    request = "http://34.123.208.229:8080/" + str(token) + "/get/V" + str(pin)
    old = requests.get(request)
    oldF = float(old.json()[0])
    #print(round(np.mean(oldF),1))
    #print(new!=oldF)
    if new != oldF:
        blynk.virtual_write(pin, '{:.2f}'.format(new))
 def test_set_temp(self):
     cfg_sym=src.Configs.config_symulacja
     generate_data(cfg_sym.collections["temperature_in"], 24.0, mongodb=mongo)
     thr = StoppableThread(mongo2,"schedule_test",config=cfg_sym)
     thr.start()
     
     Symuluj(cfg_sym.collections["temperature_in"], thr.state ,init_temp=24.5,mongod=mongo)
     
     thr.join()
     score=temp_get(cfg_sym.collections["temperature_in"],150,mongodb=mongo)
     print(math.ceil(score))
     print(round(score))
     self.assertEqual(round(score),25.0)
def Symuluj(coll_name, state, dt=0.1, num_steps=150, init_temp=28.0, mongod=mongo):
    """
    Metoda generująca prosty symulator w celu przeprowadzenia testu na wątkach i termostacie
    
    Args:
        t_change:  zmienna odpowiedzialna za zmianę temperatury
        current:   temperatura początkowa
        num_steps: zmienna określająca ile razy odbędzie się zmiana temperatury
    """
    
    
    
    
    current=temp_get(coll_name, nb_rows=2, mongodb=mongod)
    for i in range(num_steps):
        if state.state==True:
            current+=dt
        else:
            current+=-dt
        time.sleep(0.5)
        mongod.log_data(coll_name, current, "test_temp", is_payloade=False)
        print("last state: ",state.state)
        print("temp: ", current)
Example #6
0
def displayTemp():
    """
    metoda przygotowująca dane do przesłania na aplikację mobilną
    
    structure:
        blynk.virtual_write(nr pinu,'format'.format(zmienna z danymi))
    """
    while True:
        time.sleep(1)
        """
        Przypisanie pinów:
        pin |     czujnik
        ----+--------------------------
        V0  |     TEMPERATURA WEWNATRZ
        V1  |     WILGOTNOŚĆ  WEWNĄTRZ
        V2  |     TEMPERATURA ZEWNĄTRZ
        V3  |     WILGOTNOŚĆ  ZEWNĄTRZ
        V4  |     Co2         WEWNĄTRZ
        V5  |     Co2         ZEWNĄTRZ
        V6  |     PIR         DRZWI
        V7  |     PIR         SALON
        V8  |     PIR         GARAŻ
        V9  |     KONTAKTRON  BRAMA
        V10 |     KONTAKTRON  FURTKA
        V11 |     KONTAKTRON  DRZWI
        V12 |     MAGNETOMETR
        V13 |     TRANSOPTOR
        V14 |     ULTRADŹWIĘKOWY
        V15 |     FOTODIODA
        V16 |     RFID
        V17 |     
        V18 |     
        V19 |     
        V20 |     BRAMA
        V21 |     ALARM
        V22 |     GRZAŁKA
        V23 |     WENTYLATOR
        
        """

        #temp = temp_get("temperatura_wew")
        edge_detect(0, "temperatura_wew")
        edge_detect(1, "wilgotnosc_wew")
        edge_detect(2, "temperatura_zew")
        edge_detect(3, "wilgotnosc_zew")
        edge_detect(4, "co2_wew")
        edge_detect(5, "co2_zew")

        pir_drzwi = temp_get("pir_drzwi", nb_rows=1)
        if pir_drzwi == 1:
            icon_change(6, 1, BLYNK_AUTH)
        elif pir_drzwi == 0:
            icon_change(6, 2, BLYNK_AUTH)

        pir_salon = temp_get("pir_salon", nb_rows=1)
        if pir_salon == 1:
            icon_change(7, 1, BLYNK_AUTH)
        elif pir_salon == 0:
            icon_change(7, 2, BLYNK_AUTH)

        pir_garaz = temp_get("pir_garaz", nb_rows=1)
        if pir_garaz == 1:
            icon_change(8, 1, BLYNK_AUTH)
        elif pir_garaz == 0:
            icon_change(8, 2, BLYNK_AUTH)

        kontaktron_brama = temp_get("kontaktron_brama", nb_rows=1)
        if kontaktron_brama == 1:
            icon_change(9, 1, BLYNK_AUTH)
        elif kontaktron_brama == 0:
            icon_change(9, 2, BLYNK_AUTH)
        elif kontaktron_brama != 1 and kontaktron_brama != 0:
            icon_change(9, 3, BLYNK_AUTH)

        kontr_bramka = temp_get("kontaktron_bramka", nb_rows=1)
        if kontr_bramka == 1:
            icon_change(10, 1, BLYNK_AUTH)
        elif kontr_bramka == 0:
            icon_change(10, 2, BLYNK_AUTH)

        kontr_drzwi = temp_get("kontaktron_drzwi", nb_rows=1)
        if kontr_drzwi == 1:
            icon_change(11, 1, BLYNK_AUTH)
        elif kontr_drzwi == 0:
            icon_change(11, 2, BLYNK_AUTH)

        edge_detect(13, "wiatr_sila")
        edge_detect(14, "poziom")
        edge_detect(15, "swiatlo_zew")
        #edge_detect(16,"RFID")
        blynk.virtual_write(19, "ostatni tag:")
        blynk.virtual_write(18, temp_get("RFID", nb_rows=1))
        """
Example #7
0
 def test_zx(self):
     """test z plikiem posiadającym mniej rekordów niż wymagana liczba podana w żądaniu"""
     avg_temp = temp_get("test_temp_coll_5", nb_rows=2, mongodb=mongo)
     self.assertEqual(avg_temp, 30.0)
Example #8
0
 def test_z(self):
     """test z plikiem posiadającym wartości nan"""
     avg_temp = temp_get("test_temp_coll_4", nb_rows=10, mongodb=mongo)
     self.assertEqual(avg_temp, 30.0)
Example #9
0
 def test_y(self):
     """ test sprawdzający poprawność działania funkcji odczytu metody """
     avg_temp = temp_get("test_temp_coll_1", nb_rows=3, mongodb=mongo)
     print("list db:", mongo.my_client.list_database_names())
     self.assertEqual(avg_temp, 28.5)