#!/usr/bin/python """Waits for the sensor to appear on /dev/ttyUSB5, then reads moisture and temperature from it continuously""" import minimalmodbus import chirp_modbus from time import sleep ADDRESS = 1 #minimalmodbus.TIMEOUT=0.5 while True: try: sensor = chirp_modbus.SoilMoistureSensor(address=ADDRESS, serialport='/dev/ttyUSB5') sensor.sensor.debug = True # sensor.sensor.precalculate_read_size=False #sensor.sensor.precalculate_read_size=False print(" Moisture=" + str(sensor.getMoisture()) + " Temperature=" + str(sensor.getTemperature())) sleep(0.1) except (IOError, ValueError): print("Waiting...") sleep(0.3)
line2.autoactive = config['Line Settings'].getboolean('line2_autoactive') line3.autoactive = config['Line Settings'].getboolean('line3_autoactive') update_mqtt_status("line1") update_mqtt_status("line2") update_mqtt_status("line3") mqttpublishstatus = config['MQTT Settings']['domain'] + "/" + config['MQTT Settings']['hostname'] + "/status" mqttpublishdebug = config['MQTT Settings']['domain'] + "/" + config['MQTT Settings']['hostname'] + "/debug" line1.has_sensor = 'address_sensor_1' in config['RS485 Soil Moisture Sensors'] line2.has_sensor = 'address_sensor_2' in config['RS485 Soil Moisture Sensors'] line3.has_sensor = 'address_sensor_3' in config['RS485 Soil Moisture Sensors'] if (line1.has_sensor): line1.sensor = chirp_modbus.SoilMoistureSensor(address=config['RS485 Soil Moisture Sensors'].getint('address_sensor_1'), serialport=config['RS485 Soil Moisture Sensors']['port']) line1.humoffset = config['RS485 Soil Moisture Sensors'].getint('line1_humidity_offset') line1.tempoffset = config['RS485 Soil Moisture Sensors'].getfloat('line1_temperature_offset') if (line2.has_sensor): line2.sensor = chirp_modbus.SoilMoistureSensor(address=config['RS485 Soil Moisture Sensors'].getint('address_sensor_2'), serialport=config['RS485 Soil Moisture Sensors']['port']) line2.humoffset = config['RS485 Soil Moisture Sensors'].getint('line2_humidity_offset') line2.tempoffset = config['RS485 Soil Moisture Sensors'].getfloat('line2_temperature_offset') if (line3.has_sensor): line3.sensor = chirp_modbus.SoilMoistureSensor(address=config['RS485 Soil Moisture Sensors'].getint('address_sensor_3'), serialport=config['RS485 Soil Moisture Sensors']['port']) line3.humoffset = config['RS485 Soil Moisture Sensors'].getint('line3_humidity_offset') line3.tempoffset = config['RS485 Soil Moisture Sensors'].getfloat('line3_temperature_offset') def log(message): logmessage = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") + ": " + message print (logmessage) #mqttpublishdebug(message)
#!/usr/bin/python3 import schedule from influxdb import InfluxDBClient import logging import chirp_modbus import time SENSOR_NAME = "soil1" SAMPLING_RATE_S = 60 client = InfluxDBClient('localhost', 8086, 'admin', 'aY3V2LvFji', 'soil_sensors') sensor = chirp_modbus.SoilMoistureSensor(address=1, serialport='/dev/ttyUSB0') logging.basicConfig(level=logging.NOTSET, format='%(asctime)s %(levelname)-8s %(message)s', datefmt='%Y-%m-%d %H:%M:%S') logger = logging.getLogger("sensor_hum_temp.py") def insert_into_db(temp, moisture): json_body = [{ "measurement": "temperature", "tags": { "sensor": SENSOR_NAME, }, "fields": { "value": temp } }, { "measurement": "moisture",