Exemplo n.º 1
0
#!/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)
Exemplo n.º 2
0
    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)
Exemplo n.º 3
0
#!/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",