Exemple #1
0
 def _check_refresh(self, min_refresh_rate):
     now = ticks_ms()
     if self.last_measure == 0 or now - self.last_measure > min_refresh_rate:
         try:
             DHT11.measure(self)
         except OSError:
             raise OSError(
                 "Please check if sensor is connected to Port {0}".format(
                     self.port))
     self.last_measure = now
Exemple #2
0
def temp_and_hum():
    data = DHT11(Pin(16))
    data.measure()
    temp = str(data.temperature())
    hum = str(data.humidity())
    print("dht11: %s, %s" % (temp, hum))
    return temp, hum
def run():
    sleep = utime.sleep
    dhtPin = Pin(2, Pin.IN, Pin.PULL_UP)
    sensor = DHT11(dhtPin)
    measure = sensor.measure
    temp = sensor.temperature
    hum = sensor.humidity
    httpget = urequests.get

    wifi = WLAN(STA_IF)

    if not wifi.active():
        wifi.active(True)

    while True:
        if not connect(wifi):
            return

        try:
            measure()
            t = temp() * 1.8 + 32
            h = hum()

            print(t, h)
            httpget(
                THINGSPEAK_REQUEST.format(temperature=t,
                                          humidity=h,
                                          location='livingroom',
                                          api_key=secrets.THINKSPEAK_API_KEY))
        except:
            print('Failed to read sensor')

        sleep(PUBLISH_PERIOD_IN_SEC)
def DHTlog():
    #set up a DHT11 sensor on GPIO pin 4
    d = DHT11(machine.Pin(4))
    d.measure()
    temp = float('{:.1f}'.format(d.temperature() * 1.8 + 32))
    humid = float('{:.1f}'.format(d.humidity()))
    return {'temp': temp, 'humid': humid}
Exemple #5
0
    def __init__(self, internal_sensor_pin, external_sensor_pin):
        self.internal_sensor = DS18X20(OneWire(internal_sensor_pin))

        # scan for devices on the bus
        self.rom = self.internal_sensor.scan()[0]

        self.external_sensor = DHT11(external_sensor_pin)
def dht11_sensor():
    d = DHT11(Pin(14))
    d.measure()  # mesure temp and humidity
    temp = d.temperature()
    hum = d.humidity()
    pins[1] = str(temp) + ' C'
    pins[2] = str(hum) + ' %'
Exemple #7
0
def __init_DHT11():
    global __DHT_OBJ
    if __DHT_OBJ is None:
        from dht import DHT11
        from machine import Pin
        from LogicalPins import get_pin_on_platform_by_key
        __DHT_OBJ = DHT11(Pin(get_pin_on_platform_by_key('simple_1')))
    return __DHT_OBJ
 def __init__(self, pin):
     if not isinstance(pin, int):
         raise TypeError('pin must be integer')
     from dht import DHT11
     self.sensor = DHT11(machine.Pin(pin))
     time.sleep(1)  # some delay to stabilize sensor
     self.t = None
     self.h = None
Exemple #9
0
def temp_humi_reader():
    """ Give the temperature in Celcius and Humidity in % """
    
    temp_humi_sensor = DHT11(Pin(DHT11_PIN))
    temp_humi_sensor.measure()
  
    return {
        "temp" : temp_humi_sensor.temperature(),
        "humi" : temp_humi_sensor.humidity()
    }
Exemple #10
0
 def __init__(self, id="", unit="dht11", pin=2, freq=5):
     self.sensor_id = id
     self.info = dict(id=self.sensor_id,
                      type=unit,
                      label='Humidity',
                      uom='%',
                      freq=freq)
     global dht
     if (not dht):
         dht = DHT11(Pin(pin))
Exemple #11
0
    def initDHT(self):
        self.dhtSensor = DHT11(self.dhtPin)
        self.dhtSensor.measure()


# sample usage
# while not dht.getMeasure():
#     sleep(5)
#     if dht.getMeasure():
#         break

# sleep(1)
Exemple #12
0
def get_data():
    """Return current temp and humidity.
    According to some comments online re. the DHT11,
    to get accurate measurements we need to read
    from the sensor twice, waiting for 1s between
    reads, as some of the data is "cached".
    """
    d = DHT11(PIN)
    d.measure()
    sleep(1)
    d.measure()

    return d.temperature(), d.humidity()
Exemple #13
0
def main():
    #h = DHT11(machine.Pin(33)) # J8
    h = DHT11(machine.Pin(26))  # J7

    ugfx.set_default_font('IBMPlexMono_Bold24')
    ugfx.clear()
    ugfx.Label(40, 0, 240, 60, text='DHT11/22 Demo')

    ugfx.set_default_font('IBMPlexMono_Regular24')
    l = ugfx.Label(40, 60, 240, 120, text='')

    while True:
        h.measure()
        h.temperature()
        l.text('temperature:{},humidity:{}'.format(h.temperature(),
                                                   h.humidity()))
        time.sleep(1)
Exemple #14
0
def Grab_DATA_Devices_Send():
    from dht import DHT11
    from hcsr04 import HCSR04
    import MQ2
    global Devices_Data, Mqtt_User, MQTT_Client
    while True:
        sleep(5)

        #dht:[pin,[],[]]
        for i in Devices["DHT"]:
            DHT = DHT11(Pin(i, Pin.IN, Pin.PULL_UP))
            DHT.measure()
            Devices_Data["DHT"].append([i, DHT.temperature, DHT.humidity])

        # for i in Devices["GSense"]:
        #         GS = MQ2(pinData = i, baseVoltage = 5)
        #         GS.calibrate()
        #         Devices_Data["GSense"].append([i,GS.readSmoke(), GS.readLPG(), GS.readMethane(), readHydrogen()])
        #         #checking smoke (recheck the values online!!!)
        #         if Devices_Data["GSense"][j][0]>500 or Devices_Data["GSense"][j][1]>500:
        #                 Alarm = True
        #                 Fire_Gas_Alarm()

        j = 0
        for i in Devices["Ultrason"]:
            US = HCSR04(trigger_pin=i[0], echo_pin=i[1])
            if US.distance_cm() > 3.0:
                #Door id and the second value is bool either open or not
                Devices_Data["Ultrason"][j] = [i[0], {"value": True}]
            else:
                Devices_Data["Ultrason"][j] = [i[0], {"value": False}]
            j += 1

        try:
            MQTT_Client.publish(
                bytes(Mqtt_User + "/Values", "UTF-8"),
                bytes(
                    "{'data':" + str(Devices_Data) + ",'clientid':" +
                    MQTT_ClientID + "}", "UTF-8"))
        except OSError as e:
            restart_and_reconnect()
    def __init__(self, **kwargs):
        super().__init__(**kwargs)
        self.temperature_id = None
        self.humidity_id = None

        self.add_id(self.sensor, kwargs.get('_id'))

        self._last_measure = None

        sensor_value = getattr(HumidityTemperatureSensor, self.pattern)

        if sensor_value == 0:
            from dht import DHT11
            self.sensor = DHT11(Pin(self.pins[0], Pin.PULL_UP))
        elif sensor_value == 1:
            from dht import DHT22
            self.sensor = DHT22(Pin(self.pins[0], Pin.PULL_UP))
        else:
            raise Exception('sensor not available')
        self._last_temperature = None
        self._last_humidity = None
Exemple #16
0
def main():
    """Measure and talk to MQTT broker."""
    d = DHT11(machine.Pin(0))
    SERVER = '192.168.1.8'
    CLIENT_ID = ubinascii.hexlify(machine.unique_id())
    TOPIC_HUMIDITY = b'kgrund/fukt'
    TOPIC_TEMPERATURE = b'kgrund/temp'
    c = MQTTClient(CLIENT_ID, SERVER)
    c.connect()
    print('Connected to {}'.format(SERVER))
    while True:
        """Measure and then publish values to the broker every 20 seconds."""
        try:
            d.measure()
            humidity = bytes(str(d.humidity()), 'ascii')
            temperature = bytes(str(d.temperature()), 'ascii')
            c.publish(TOPIC_HUMIDITY, humidity)
            c.publish(TOPIC_TEMPERATURE, temperature)
        except Exception:
            print('Cant find DHT, will try again')
        time.sleep(20)
Exemple #17
0
def main():
    try:
        while True:
            d = DHT11(Pin(DHT_PIN))
            d.measure()

            temperature = d.temperature()
            humidity = d.humidity()
            # print(self.payload)
            print("Temp: {:.1f} *C \t Humidity: {}%".format(temperature, humidity))
            # sensor.Sensor.json()
            sensor_data['temperature'] = temperature
            sensor_data['humidity'] = humidity
            client.publish('sensor', json.dumps(sensor_data))

            next_reading = time.time()
            next_reading += INTERVAL
            sleep_time = next_reading - time.time()
            if sleep_time > 0:
                time.sleep(sleep_time)
    except KeyboardInterrupt:
        pass

    client.disconnect()
Exemple #18
0
from machine import Pin
import utime

from dht import DHT11, InvalidChecksum


# Wait 1 second to let the sensor power up
utime.sleep(1)

pin = Pin(15, Pin.OUT, Pin.PULL_DOWN)
sensor = DHT11(pin)

while True:
    utime.sleep(1)
    try:
        print("Temperature: {}".format(sensor.temperature))
        print("Humidity: {}".format(sensor.humidity))
    except InvalidChecksum:
        print("Checksum from the sensor was invalid")
from machine import Pin, ADC, deepsleep
from dht import DHT11
import time

print("Seedling Environment Monitor by Aidan Taylor")
print("v1.5 2018. Fab-Cre8\n")

import myNet

# Hardware object setup:
led = Pin(22, Pin.OUT)  # on board LED on pin 22
ks = Pin(2, Pin.IN, Pin.PULL_UP)  # killswitch pin, tie to gnd to stop loop
# Todo - try different resistor value for LDR, between 47k and 75k, maybe trim?
ldr = ADC(Pin(35))
dhtEn = Pin(0, Pin.OUT)  # EXPERIMENTAL power the DHT11 from a GPIO pin
dSens = DHT11(Pin(17))

print("setup complete, starting loop...\n\n\n")

configMode = ks.value()

# note internal LED will stay on when in configMode

while configMode:
    configMode = ks.value()

    if not myNet.station.isconnected():
        myNet.WiFiConnect()

    # EXPERIMENTAL activate the DHT11
    dhtEn.value(1)
Exemple #20
0
import dht
import urequests
import connectWifi

from machine import Pin
from dht import DHT11

# Connect to WIFI
connectWifi.connect()

url = "YOUR URL"

#Set-up led
led = machine.Pin(5, machine.Pin.OUT)

# Set-up temperature sensor.
d = DHT11(Pin(4))
d.measure()

#Proccess transmission.
while True:
    led.on()
    temperature = d.temperature()
    response = urequests.post(url,
                              json={
                                  'temperature': temperature,
                                  'location': 'Sensor 2'
                              })
    response.close()
    led.off()
    time.sleep(30)
Exemple #21
0
import network
from time import sleep
from umqtt.simple import MQTTClient
from machine import Pin
from dht import DHT11


led = Pin(2, Pin.OUT)
sensor = DHT11(Pin(15, Pin.IN, Pin.PULL_UP))

station = network.WLAN(network.STA_IF)
station.active(True)
station.connect("ssid","passwd")
while station.isconnected() == False:
  pass
print('Connection successful')
print(station.ifconfig())

#flash once 
led.value(1)
sleep(0.1)
led.value(0)
sleep(1)

#SERVER = '192.168.1.61' #MQTT Server address
SERVER = "test.mosquitto.org"
CLIENT_ID = 'ESP32_DHT22_Sensor'
TOPIC = b'temp_humidity'

client = MQTTClient(CLIENT_ID, SERVER)
client.connect()
Exemple #22
0
def dht_value():
    dht11 = DHT11(Pin(16))
    dht11.measure()
    return ('Temperature = ', dht11.temperature(), ' Humidity = ',
            dht11.humidity())
from time import sleep
from umqtt.simple import MQTTClient
from machine import Pin
from dht import DHT11

SERVER = '192.168.43.251'
CLIENT_ID = 'ESP32_DHT11_Sensor'
TOPIC = b'temp_humidity'

cleint = MQTTClient(CLIENT_ID, SERVER)
client.connect()

sensor = DHT11(Pin(23))

while True:
    try:
        sensor.measure()
        t = sensor.temperature()
        h = sensor.humidity()
        if isinstance(t, float) and isinstance(h, float):
            msg = (b'{0:3.1f},{1:3.1f}'.format(t, h))
            client.publish(TOPIC, msg)
            print(msg)
        else:
            print('Invalid sensor readings.')
    except OSError:
        print('Failed to read sensor.')
    sleep(4)

Exemple #24
0
    c.set_callback(sub_cb)
    c.connect()
    c.subscribe(topic)
    #print("Connected to %s, subscribed to %s topic" % (server, topic))
    try:
        c.wait_msg()
    finally:
        c.disconnect()


#---End MQTT Sending---

#---DHT22---
from dht import DHT11

ds = DHT11(Pin(16))  #DHT11 connected to GPIO16


def medirTemHum():
    try:
        ds.measure()
        tem = ds.temperature()
        hum = ds.humidity()
        #ed.value(1)
        return (tem, hum)
    except Exception as e:
        #led.value(0)
        return (-1, -1)


#---End DHT22---
            )
            utime.sleep(3)


def inetConnect():
    """Connect to the internet using the SPI to Eth interface chip, w5500"""
    """sck, mosi, miso are pins (machine.Pin)"""


#Generic Init
print("Initializing...")
rtc = machine.RTC()
#sta_if = network.WLAN(network.STA_IF)
eth_if = inetConnect()

dhtSensor = DHT11(machine.Pin(4))  # D2 pin on NodeMCU board. DHT signal pin
pirSig = machine.Pin(5, machine.Pin.IN)  # D1 pin on NodeMCU. PIR signal pin
pirSig.irq(handler=lambda p: pin_interrupt(), trigger=machine.Pin.IRQ_RISING)

#Init SPI
#MISO is GPIO12(D6), MOSI is GPIO13(D7), and SCK is GPIO14(D5)
###hspi = machine.SPI(1, baudrate=40000000, polarity=0, phase=0)

#Carbon Monoxide sensor
#Init ADC
adc = machine.ADC(0)
#Threshold pin
gasD0 = machine.Pin(1)

#MQTT configs
if not DEBUG:
Exemple #26
0
 def initDHT(self):
     self.dhtSensor = DHT11(self.dhtPin)
     self.dhtSensor.measure()
Exemple #27
0
from machine import Pin
from dht import DHT11
import urequests
import time

PHANT_HOST = "192.168.43.217:8080"
PUBLIC_KEY = "4YkYvXgMBPFlE1DZZPKJhdVm9W4"
PRIVATE_KEY = "qOaO3mXpgZUl372VVqpRhxaLmBe"

d = DHT11(Pin(14))


def read_sensor():
    d.measure()
    return {"temperature": d.temperature(), "humidity": d.humidity()}


def get_query(data):
    return "&".join(["%s=%.1f" % (k, v) for k, v in data.items()])


def phant_log(data):
    url = "http://%s/input/%s?%s" % (PHANT_HOST, PUBLIC_KEY, get_query(data))
    headers = {"Phant-Private-Key": PRIVATE_KEY}
    response = urequests.post(url, headers=headers)
    print(url, response.status_code, response.reason)
    response.close()


def run():
    while True:
from time import sleep_ms, ticks_ms
from machine import I2C, Pin
from esp8266_i2c_lcd import I2cLcd
from dht import DHT11

DEFAULT_I2C_ADDR = 0x27

i2c = I2C(scl=Pin(5), sda=Pin(4), freq=400000)
lcd = I2cLcd(i2c, DEFAULT_I2C_ADDR, 2, 16)
dht11 = DHT11(Pin(2))

lcd.clear()
lcd.move_to(0, 0)
lcd.putstr('booting.')
count = 6
while count > 0:

    sleep_ms(500)
    lcd.putstr('.')
    count = count - 1


def dump_dht11():
    dht11.measure()
    text = "T:%d oC\nH:%d /100 RH" % (dht11.temperature(), dht11.humidity())
    lcd.clear()
    lcd.move_to(0, 0)
    lcd.putstr(text)


while True:
Exemple #29
0
import network
import socket
import sys
from time import sleep
from machine import Pin
from dht import DHT11

print("libray importted")
sensor = DHT11(Pin(21, Pin.IN, Pin.PULL_UP))
print("sensor set")

IP = "192.168.2.115"
PORT = 2431


def do_connect():
    sta_if = network.WLAN(network.STA_IF)
    if not sta_if.isconnected():
        sta_if.active(True)
        sta_if.connect('<wifi SSID>>', '<wifi password>')
        while not sta_if.isconnected():
            pass


do_connect()
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
client.connect((IP, PORT))
client.setblocking(False)

while True:
Exemple #30
0
from machine import Pin, SPI
from dht import DHT11
from ssd1306 import SSD1306_SPI
from time import sleep, sleep_ms
import onewire, ds18x20
import network
import urequests

HTTP_SERVER = "http://136.167.58.213:1880" # The IP address of the raspberry pi
HTTP_NODE = "/sensor"
RATE = 10  # How often do you want the update to be

dat = Pin(2)
d = DHT11(Pin(16))
ds = ds18x20.DS18X20(onewire.OneWire(dat))
roms = ds.scan()
ip = network.WLAN(network.STA_IF).ifconfig()[0]

spi = SPI(1, baudrate=8000000, polarity=0, phase=0)
oled = SSD1306_SPI(128,64, spi, res=Pin(4), dc=Pin(5), cs=Pin(15))


while True:
    oled.fill(0)
    oled.text(ip, 0, 0)
    d.measure()
    temp = 1.8*d.temperature()+32
    hum = d.humidity()
    oled.text("Temp: {} F".format(temp), 0, 20)
    oled.text("Hum: {}%".format(hum), 0, 30)
    ds.convert_temp()