Beispiel #1
0
def save_task():
    while True:
        time.sleep(Conf.save_interval) #60 seconds
        #format to ['device_id', 'date', 'time', 'Tmp',  'RH',   'PM2.5','PM10', 'PM1.0','Lux',  'CO2',  'TVOC']
        pairs = datetime.utcnow().strftime("%Y-%m-%d %H:%M:%S").split(" ")
        format_data_list = [Conf.DEVICE_ID,pairs[0],pairs[1],TEMP,HUM,PM25_AE,PM1_AE,PM10_AE,Illuminance,CO2,TVOC]
        try:
            pi.save_data(path,format_data_list) #save to host
            pi.save_to_SD(format_data_list)     #save to SD card
            print("message saved!")
        except:
            print("Fail to save message!")
Beispiel #2
0
def upload_task():
    while True:
        time.sleep(Conf.upload_interval)  #300 seconds
        pairs = datetime.utcnow().strftime("%Y-%m-%d %H:%M:%S").split(" ")
        ##remove GPS if we're not using it
        #if(use_GPS == 1):
        #    msg = "|gps_lat=" + str(Conf.gps_lat) + "|s_t0=" + str(TEMP) + "|app=" + str(Conf.APP_ID) + "|date=" + pairs[0] + "|s_d2=" + str(PM1_AE) + "|s_d0=" + str(PM25_AE) + "|s_d1=" + str(PM10_AE) + "|s_h0=" + str(HUM) + "|device_id=" + Conf.DEVICE_ID +"|s_g8=" + str(CO2) + "|s_gg=" + str(TVOC) + "|gps_lon="+ str(Conf.gps_lon) +"|ver_app=" + str(Conf.ver_app) + "|time=" + pairs[1]
        #else:
        #    msg = "|s_t0=" + str(TEMP) + "|app=" + str(Conf.APP_ID) + "|date=" + pairs[0] + "|s_d2=" + str(PM1_AE) + "|s_d0=" + str(PM25_AE) + "|s_d1=" + str(PM10_AE) + "|s_h0=" + str(HUM) + "|device_id=" + Conf.DEVICE_ID +"|s_g8=" + str(CO2) + "|s_gg=" + str(TVOC) + "|ver_app=" + str(Conf.ver_app) + "|time=" + pairs[1]

        #rewrite message packing
        msg = ""

        if (use_GPS == 1):
            msg = msg + "|gps_lon=" + str(Conf.gps_lon) + "|gps_lat=" + str(
                Conf.gps_lat)
        if (use_CO2 == 1):
            msg = msg + "|s_g8=" + str(CO2)

        msg = msg + "|s_t0=" + str(TEMP) + "|app=" + str(
            Conf.APP_ID) + "|date=" + pairs[0] + "|s_d2=" + str(
                PM1_AE) + "|s_d0=" + str(PM25_AE) + "|s_d1=" + str(
                    PM10_AE) + "|s_h0=" + str(
                        HUM) + "|device_id=" + Conf.DEVICE_ID + "|s_gg=" + str(
                            TVOC) + "|ver_app=" + str(
                                Conf.ver_app) + "|time=" + pairs[1]

        print("message ready")
        restful_str = Conf.Restful_URL + "topic=" + Conf.APP_ID + "&device_id=" + Conf.DEVICE_ID + "&key=" + Conf.SecureKey + "&msg=" + msg
        try:
            r = requests.get(restful_str)
            print("send result")
            print(r)
            print("message sent!")
        except:
            print("internet err!!")
        #save after upload / makesure data will be synchronize
        format_data_list = [
            Conf.DEVICE_ID, pairs[0], pairs[1], TEMP, HUM, PM25_AE, PM1_AE,
            PM10_AE, Illuminance, CO2, TVOC
        ]
        try:
            pi.save_data(path, format_data_list)  #save to host
            pi.save_to_SD(format_data_list)  #save to SD card
            print("send message saved!")
        except:
            print("Fail to save sent message!")
Beispiel #3
0
def upload_task():
    while True:
        time.sleep(Conf.upload_interval)  #300 seconds
        pairs = datetime.utcnow().strftime("%Y-%m-%d %H:%M:%S").split(" ")

        msg = ""

        if ((gps_lat != "") and (gps_lon != "")):
            msg = msg + "|gps_lon=" + gps_lon + "|gps_lat=" + gps_lat
        if (CO2 != 65535):
            msg = msg + "|s_g8=" + str(CO2)

        msg = msg + "|s_t0=" + str(TEMP) + "|app=" + str(
            Conf.APP_ID
        ) + "|date=" + pairs[0] + "|s_d0=" + str(PM25_AE) + "|s_h0=" + str(
            HUM) + "|device_id=" + Conf.DEVICE_ID + "|s_gg=" + str(
                TVOC) + "|ver_app=" + str(Conf.ver_app) + "|time=" + pairs[1]

        if ((Leq != 0) and (Leq != float("inf"))):
            msg = msg + "|s_s0=" + str(Leq_Median) + "|s_s0M=" + str(
                Leq_Max) + "|s_s0m=" + str(Leq_Min) + "|s_s0L=" + str(Leq)

        print("message ready")
        restful_str = Conf.Restful_URL + "topic=" + Conf.APP_ID + "&device_id=" + Conf.DEVICE_ID + "&key=" + Conf.SecureKey + "&msg=" + msg
        try:
            r = requests.get(restful_str)
            print("send result")
            print(r)
            print("message sent!")
        except:
            print("internet err!!")
        #save after upload / makesure data will be synchronize
        format_data_list = [
            Conf.DEVICE_ID, pairs[0], pairs[1], TEMP, HUM, PM25_AE, PM1_AE,
            PM10_AE, Illuminance, CO2, TVOC, Leq, Leq_Max, Leq_Min, Leq_Median,
            gps_lat, gps_lon
        ]
        try:
            pi.save_data(path, format_data_list)  #save to host
            pi.save_to_SD(format_data_list)  #save to SD card
            print("send message saved!")
        except:
            print("Fail to save sent message!")
Beispiel #4
0
def save_task():
    while True:
        time.sleep(Conf.save_interval)  #60 seconds
        #format to ['device_id', 'date', 'time', 'Tmp',  'RH',   'PM2.5','PM10', 'PM1.0','Lux',  'CO2',  'TVOC' ,'Leq','Leq_Max','Leq_Min','Leq_Median','gps_lat','gps_lon']
        pairs = datetime.utcnow().strftime("%Y-%m-%d %H:%M:%S").split(" ")
        #format_data_list = [Conf.DEVICE_ID,pairs[0],pairs[1],TEMP,HUM,PM25_AE,PM1_AE,PM10_AE,Illuminance,CO2,TVOC,Leq,Leq_Max,Leq_Min,Leq_Median,gps_lat,gps_lon]
        #mod for temp/RH plugin
        format_data_list = [
            Conf.DEVICE_ID, pairs[0], pairs[1], TEMP, HUM, PM25_AE, PM1_AE,
            PM10_AE, Illuminance, CO2, TVOC, temp_data, rh_data, gps_lat,
            gps_lon
        ]
        #print("********")
        #print(format_data_list)
        #print("********")
        try:
            pi.save_data(path, format_data_list)  #save to host
            pi.save_to_SD(format_data_list)  #save to SD card
            print("message saved!")
        except:
            print("Fail to save message!(regular save)")
Beispiel #5
0
        print("please update mcu")
    else:
        print("newest version")

    print("------------------------")
    print("SET SENSOR")

    mcu.SET_POLLING_SENSOR(Conf.POLL_TEMP, Conf.POLL_CO2, Conf.POLL_TVOC,
                           Conf.POLL_LIGHT, Conf.POLL_PMS, Conf.POLL_RTC)

    print("CHECK SENSOR")
    print(mcu.GET_INFO_SENSOR_POR())

    print("------------------------")
    print("CHECK STORAGE")
    path = pi.GET_STORAGE_PATH()
    print(path)

    print("CHECK read/write")
    #TODO

    print("------------------------")
    print("set upload")
    #if need to do

    print("------------------------")

    #close the fan
    mcu.SET_PIN_FAN_ALL(0)

    while (do_condition):
Beispiel #6
0
    else:
        print("newest version")

    print("------------------------")
    print("SET SENSOR")

    mcu.SET_POLLING_SENSOR(Conf.POLL_TEMP, Conf.POLL_CO2, Conf.POLL_TVOC,
                           Conf.POLL_LIGHT, Conf.POLL_PMS, Conf.POLL_RTC)

    print("CHECK SENSOR")
    print(mcu.GET_INFO_SENSOR_POR())

    print("------------------------")
    print("CHECK STORAGE")
    #In MPV version, only use "./data"
    path = pi.GET_STORAGE_PATH()
    print(path)

    print("CHECK read/write")
    #TODO

    print("------------------------")
    print("set upload")
    #if need to do
    print("------------------------")
    print("CHECK NB-IOT")

    print("CHECK GPS")
    #check if there is GPS module
    #and if we want to use GPS, set "use_GPS" to 1
Beispiel #7
0
def upload_task():
    while True:
        time.sleep(Conf.upload_interval)  #300 seconds
        pairs = datetime.utcnow().strftime("%Y-%m-%d %H:%M:%S").split(" ")

        msg = ""
        #mqtt_msg = ""

        if ((gps_lat != "") and (gps_lon != "")):
            msg = msg + "|gps_lon=" + gps_lon + "|gps_lat=" + gps_lat
            #mqtt_msg = mqtt_msg + "\",\"gps_lon\":\"" + gps_lon + "\",\"gps_lat\":\"" + gps_lat
        if (CO2 != 65535):
            msg = msg + "|s_g8=" + str(CO2)
            #mqtt_msg = mqtt_msg + "\",\"s_g8\":\"" + str(CO2)

        msg = msg + "|s_t0=" + str(TEMP) + "|app=" + str(
            Conf.APP_ID
        ) + "|date=" + pairs[0] + "|s_d0=" + str(PM25_AE) + "|s_h0=" + str(
            HUM) + "|device_id=" + Conf.DEVICE_ID + "|s_gg=" + str(
                TVOC) + "|ver_app=" + str(Conf.ver_app) + "|time=" + pairs[1]
        #mqtt_msg = mqtt_msg + "\",\"s_t0\":\"" + str(TEMP) + "\",\"app\":\"" + str(Conf.APP_ID) + "\",\"date\":\"" + pairs[0] + "\",\"s_d0\":\"" + str(PM25_AE) + "\",\"s_h0\":\"" + str(HUM) + "\",\"device_id\":\"" + Conf.DEVICE_ID + "\",\"s_gg\":\"" + str(TVOC) + "\",\"ver_app\":\"" + str(Conf.ver_app) + "\",\"time\":\"" + pairs[1]

        #if(Leq != 0):
        #    msg = msg + "|s_s0=" + str(Leq_Median) + "|s_s0M=" + str(Leq_Max) + "|s_s0m=" + str(Leq_Min) + "|s_s0L=" + str(Leq)
        if (temp_data != 0):
            msg = msg + "|add_temp=" + str(temp_data) + "|add_RH=" + str(
                rh_data)
            #mqtt_msg = mqtt_msg + "\",\"add_temp\":\"" + str(temp_data) + "\",\"add_RH\":\"" + str(rh_data)

        #use mosquitto_pub to publish data
        print("message ready!!")
        #mqtt_msg = "{" + mqtt_msg + "\"}"  # json format
        #mqtt_msg = mqtt_msg.replace(",", "", 1)
        #mqtt_msg = mqtt_msg.replace("\"", "", 1)
        #p = subprocess.Popen("mosquitto_pub -h " + os.environ.get('BROKER_IP') + " -m " + mqtt_msg + " -t test/sensor1 -q 0 -i \"" + Conf.DEVICE_ID + "\" -d \
        #--tls-version tlsv1.3 --cafile /home/MAPS6_MVP/certs/CA.crt --cert /home/MAPS6_MVP/certs/publisher.crt --key /home/MAPS6_MVP/certs/publisher.key", shell=True)
        #p.wait()
        #print("message sent!!")

        restful_str = Conf.Restful_URL + "topic=" + Conf.APP_ID + "&device_id=" + Conf.DEVICE_ID + "&key=" + Conf.SecureKey + "&msg=" + msg
        try:
            r = requests.get(restful_str)
            print("send result")
            print(r)
            print("message sent!")
        except:
            print("internet err!!")
        #save after upload / makesure data will be synchronize
        #format_data_list = [Conf.DEVICE_ID,pairs[0],pairs[1],TEMP,HUM,PM25_AE,PM1_AE,PM10_AE,Illuminance,CO2,TVOC,Leq,Leq_Max,Leq_Min,Leq_Median,gps_lat,gps_lon]
        #mod for temp/RH plugin
        format_data_list = [
            Conf.DEVICE_ID, pairs[0], pairs[1], TEMP, HUM, PM25_AE, PM1_AE,
            PM10_AE, Illuminance, CO2, TVOC, temp_data, rh_data, gps_lat,
            gps_lon
        ]
        try:
            pi.save_data(path, format_data_list)  #save to host
            pi.save_to_SD(format_data_list)  #save to SD card
            print("send message saved!")
        except:
            print("Fail to save sent message!(upload)")
            traceback.print_exc()