From ca0029ecb0d9ee1acd9a19b4eb69815e48049a44 Mon Sep 17 00:00:00 2001 From: Christian Zufferey Date: Sun, 15 Dec 2019 22:42:26 +0100 Subject: [PATCH] =?UTF-8?q?Incroyable=20apr=C3=A8s=20deux=20jours=20non=20?= =?UTF-8?q?stop=20pas=20moyen=20de=20faire=20fonctionner=20le=20module=20H?= =?UTF-8?q?TU21D=20de=20mesure=20d'humidit=C3=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Mesures/humidity/bolo/0_get_data.lua | 42 ++++++++++++++++------- Mesures/humidity/bolo/a.lua | 50 +++++++++++++++++++++++++++- 2 files changed, 79 insertions(+), 13 deletions(-) diff --git a/Mesures/humidity/bolo/0_get_data.lua b/Mesures/humidity/bolo/0_get_data.lua index fbcb5ba..d6056bc 100644 --- a/Mesures/humidity/bolo/0_get_data.lua +++ b/Mesures/humidity/bolo/0_get_data.lua @@ -1,11 +1,12 @@ -- Lit le capteur I2C HTU21D de mesure d'humidité et de température -print("\n 0_get_data.lua zf191215.1758 \n") +print("\n 0_get_data.lua zf191215.2057 \n") -- https://cdn-shop.adafruit.com/datasheets/1899_HTU21D.pdf -- Comparaison DHT22, AM2302, AM2320, AM2321, SHT71, HTU21D, Si7021, BME280 -- http://www.kandrsmith.org/RJS/Misc/Hygrometers/calib_many.html -- Il est compatible avec le capteur SI7021 mais pas avec la lib SI7021 du NodeMCU Lua :-( +-- http://electromag1.wifeo.com/capteurs-de-temperature-et-humidite-gy-21-et-si7021.php -- source: https://github.com/famzah/nodemcu/tree/master/HTU21D-TLS -- source2: https://github.com/tebben/NodeMCU -- source3: https://github.com/codywon/NodeMCU-2 @@ -15,7 +16,7 @@ id = 0 sda = 1 scl = 2 addr = 0x40 -HUMIDITY = 0xE3 +HUMIDITY = 0xE5 TEMPERATURE = 0xE3 SOFTRESET = 0xFE @@ -23,23 +24,40 @@ trig = 4 gpio.mode(trig, gpio.OUTPUT) gpio.write(trig, gpio.HIGH) -i2c.setup(id, sda, scl, i2c.FAST) +i2c.setup(id, sda, scl, i2c.SLOW) i2c.start(id) +tmr.delay(1*1000) + +i2c.address(id, addr, i2c.TRANSMITTER) +i2c.write(id, SOFTRESET) +tmr.delay(20*1000) + + i2c.address(id, addr, i2c.TRANSMITTER) i2c.write(id, HUMIDITY) ---print("ack: ",zerr) - - i2c.address(id, addr, i2c.RECEIVER) +tmr.delay(50*1000) + +gpio.write(trig, gpio.LOW) +tmr.delay(0.1*1000) +gpio.write(trig, gpio.HIGH) + +r = i2c.read(id,3) +print(string.byte(r)) +print(string.byte(r,2)) +print(string.byte(r,3)) + + + +--i2c.address(id, addr, i2c.RECEIVER) + +--[[ i2c.stop(id) tmr.delay(17*1000) -gpio.write(trig, gpio.LOW) -tmr.delay(1*1000) -gpio.write(trig, gpio.HIGH) i2c.start(id) r = i2c.read(id,3) @@ -48,7 +66,7 @@ i2c.stop(id) print(string.byte(r)) print(string.byte(r,2)) print(string.byte(r,3)) +]] - - - +tmr.delay(1*1000) +i2c.stop(id) diff --git a/Mesures/humidity/bolo/a.lua b/Mesures/humidity/bolo/a.lua index e4a6450..b4bdd59 100644 --- a/Mesures/humidity/bolo/a.lua +++ b/Mesures/humidity/bolo/a.lua @@ -1,3 +1,51 @@ +print("\n a.lua zf191215.2112 \n") + +t2 = 1234 + trig = 4 gpio.mode(trig, gpio.OUTPUT) -gpio.write(trig, gpio.LOW) +gpio.write(trig, gpio.HIGH) + + +id = 0 +sda = 1 +scl = 2 +addr = 0x40 + +r = "" +HUMIDITY = 0xE5 +TEMPERATURE = 0xE3 + + +function readHumi() + i2c.start(id) + i2c.address(id, addr, i2c.TRANSMITTER) + i2c.write(id, HUMIDITY) + i2c.stop(id) + i2c.start(id) + i2c.address(id, addr, i2c.RECEIVER) + tmr.delay(20000) + + gpio.write(trig, gpio.LOW) + tmr.delay(10) + gpio.write(trig, gpio.HIGH) + + r = i2c.read(id,3) + i2c.stop(id) + print(r) + return (bit.band((bit.lshift(string.byte(r,1),8)+string.byte(r,2)),0xfffc)*12500)/65536-600 +end + + +function getHumidity() + return tonumber(string.format("%.1f", tostring(readHumi()/100))) +end + +tmr.delay(15000) +i2c.setup(id, sda, scl, i2c.SLOW) +tmr.delay(15000) + +t2 = getHumidity() +print("Humidity: "..t2.." %") + +