def setup(): global Network, lora global sleep_time, STOP, myId global dust, meteo, thisGPS, useGPS display("MySense V %s" % __version__[:6], (0,0), clear=True) display("s/n " + myID) display("PM : " + Dust[dust]) display("meteo: " + Meteo[meteo]) if useGPS: display('G:%.4f/%.4f' % (thisGPS[LAT],thisGPS[LON])) sleep(15) if Network == 'TTN': # Connect to LoRaWAN display("Try LoRaWan", (0,0), clear=True) display("LoRa App EUI:") display(str(app_eui)) lora = LORA() if lora.connect(dev_eui,app_eui,app_key, ports=2, callback=CallBack): display("Joined LoRaWan") SendInfo() else: display("NOT joined LoRa!") lora = None Network = 'None' sleep(10) if Network == 'None': display("No network!", (0,0), clear=True) LED.blink(10,0.3,0xff00ff,True) # raise OSError("No connectivity") display("Setup done")
def setup(): global n, sensor_davis, sensor_bme280, sleep_time # Initial sleep time sleep_time = 30 # Connect to LoRaWAN n = LORA() n.connect(dev_eui, app_eui, app_key) # Connect Sensors try: i2c = I2C(0) sensor_bme280 = BME280(i2c=i2c) sensor_davis = DAVIS7911() except Exception as e: print("Error: ", e) print("Setup... done")
def setup(): global n, sensor_davis, sensor_temp, packet, sleep_time, state # Initial state and sleeptime state = 7 sleep_time = 10 # Init packet object packet = Packet() # Connect to LoRaWAN n = LORA() n.connect(dev_eui, app_eui, app_key) # Connect Sensors try: sensor_temp = SI7021() sensor_davis = DAVIS7911() except Exception as e: print('Error: ', e)
sta_if.ifconfig( ['192.168.0.13', '255.255.255.0', '192.168.0.254', '192.168.0.254']) #sta_if.ifconfig() def on_receive(lora, payload): lora.blink() payload_string = payload.decode() rssi = lora.rssi() snr = lora.snr() print("*** Received message ***\n{}".format(payload_string)) print("RSSI={}, SNR={}\n".format(rssi, snr)) lora = LORA() # init LoRa subsystem lora.setFrequency(433000, 000) # kHz, Hz lora.setTxPower( 13, True) # power +13dBm (RFO pin if False or PA_BOOST pin if True) #lora.setHighPower(False) # add +3 dB (up to +20 dBm power on PA_BOOST pin) lora.setSignalBandwidth(125e3) # BW [7.8e3...500e3] Hz lora.setSpreadingFactor(10) # SF 6...12 lora.setLDR(False) # Low Datarate Optimize lora.setCodingRate(5) # 5..8 lora.setPreambleLength(8) # 6..65000 (8 by default) lora.setSyncWord(0x12) # allways 0x12 lora.enableCRC(False) # CRC off lora.collect() if 0: # reseiver
from lora import LORA from config import dev_eui, app_eui, app_key from time import sleep from pysense import Pysense from machine import ADC # Formula is calculated using calibration fluids def magicFormula(val): return 20.2489 - (0.00452489 * val) try: adc = ADC() pin = adc.channel(pin='P13', attn=ADC.ATTN_11DB) except Exception: pass # Connect to LoRaWAN n = LORA() n.connect(dev_eui, app_eui, app_key) # Send value val = pin() tmp = "%.2f" % magicFormula(val) n.send(tmp) py = Pysense() py.setup_sleep(1200) # 20 min py.go_to_sleep()
# Turn off hearbeat LED import pycom pycom.heartbeat(False) info = None n = None def SendInfo(port,data): print("info requested") if not data: return if (not info) or (not n): return print("Sent info") sleep(30) n.send(info,port=3) n = LORA() if not n.connect(dev_eui, app_eui, app_key,ports=2): print("Failed to connect to LoRaWan TTN") sys.exit(0) # send first some info # dust (None,Shiney,Nova,Plantower, ...) 4 low bits # meteo (None,DHT11,DHT22,BME280,BME680, ...) 4 high bits # GPS (longitude,latitude, altitude) float # send 17 bytes Dust = ['unknown','PPD42NS','SDS011','PMS7003'] Meteo = ['unknown','DHT11','DHT22','BME280','BME680'] try: from Config import meteo except:
# # found oled, try it and blow RGB led wissle ##################### LoRa if not wokeUp: Network = '' from Config import Network if Network != 'TTN': raise ValueError("%s not supported" % Network) initLoRa = not wokeUp if MyConfig.getConfig('LoRa') in ['ABP', 'OTAA']: print("Using %s LoRa info from flash" % MyConfig.getConfig('LoRa')) initLoRa = False from lora import LORA myLoRa = LORA() # myLoRa.cleanup will clear LoRa nvram info = None method = {} if initLoRa: # OTAA keys try: from Config import dev_eui, app_eui, app_key method['OTAA'] = (dev_eui, app_eui, app_key) MyConfig.dump('LoRa', 'OTAA') except: pass # ABP keys try: from Config import dev_addr, nwk_swkey, app_swkey