Commencé à travailler sur le capteur d'humidité HTU21D pour Bolo. Ne marche pas du tout encore :-(
This commit is contained in:
@@ -1,62 +1,28 @@
|
||||
-- Lit le convertisseur ADC connecté sur le transformateur de courant
|
||||
-- pour mesurer le courant électrique de l'installation PV
|
||||
print("\n 0_get_data.lua zf191024.1037 \n")
|
||||
-- Lit le capteur I2C HTU21D de mesure d'humidité et de température
|
||||
print("\n 0_get_data.lua zf191214.1337 \n")
|
||||
|
||||
-- Astuce de mesure:
|
||||
-- On converti le courant en tension avec la résistance de charge du
|
||||
-- transformateur de courant 1/800 et le mesure avec l'ADC
|
||||
-- Au lieu de découper la sinusoïde en 100 parties, c'est à dire toutes
|
||||
-- les 0.2ms (5'000x /s), pour en faire l'intégrale. On lit l'adc toutes
|
||||
-- les 11ms (91x /s) donc beaucoup plus lentement.
|
||||
-- Comme la sinusoïde fait 20ms et est répétitive, on balaye (par décalage)
|
||||
-- statistiquement la sinusoïde.
|
||||
-- On redresse l'alternance par rapport à la masse fictive (env 0.5),
|
||||
-- ce qui nous permet d'estimer une valeur RMS du courant
|
||||
-- quelque soit sa forme et on le somme sur 2.1 secondes
|
||||
-- Les mesures min et max ne sont là juste pour vérifier que nous sommes
|
||||
-- bien dans la plage de mesure avec le choix de la résistance de conversion
|
||||
-- la conversion courant/tension/puissance est faite avec une simple régle de 3
|
||||
-- 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 :-(
|
||||
|
||||
-- source: https://github.com/famzah/nodemcu/tree/master/HTU21D-TLS
|
||||
-- source2: https://github.com/tebben/NodeMCU
|
||||
-- source3: https://github.com/codywon/NodeMCU-2
|
||||
|
||||
|
||||
zpow_cal=401 --puissance mesurée de la charge étalon
|
||||
zadc_cal=189 --valeur de l'adc pour zpow_cal
|
||||
zadc_offset=548
|
||||
|
||||
zadc_sum=0 zadc_offset_sum=0 znb_mes=0
|
||||
zadc_min=zadc_offset zadc_max=zadc_offset
|
||||
|
||||
if adc.force_init_mode(adc.INIT_ADC)
|
||||
then
|
||||
node.restart()
|
||||
return
|
||||
function read_mesure()
|
||||
|
||||
local sda, scl = 6, 5
|
||||
i2c.setup(0, sda, scl, i2c.SLOW) -- call i2c.setup() only once
|
||||
si7021.setup()
|
||||
|
||||
fwrev = si7021.firmware()
|
||||
print(string.format("FW: %X\r\n", fwrev))
|
||||
|
||||
end
|
||||
|
||||
tmr_read_adc=tmr.create()
|
||||
tmr_read_adc:alarm(11, tmr.ALARM_AUTO, function()
|
||||
read_adc()
|
||||
end)
|
||||
|
||||
tmr_calc_rms=tmr.create()
|
||||
tmr_calc_rms:alarm(2.1*1000, tmr.ALARM_AUTO, function()
|
||||
calc_rms()
|
||||
end)
|
||||
|
||||
function read_adc()
|
||||
zadc=adc.read(0)
|
||||
if zadc<=zadc_min then zadc_min=zadc end
|
||||
if zadc>=zadc_max then zadc_max=zadc end
|
||||
zadc_offset_sum=zadc_offset_sum+zadc
|
||||
zadc=zadc-zadc_offset if zadc<=0 then zadc=zadc*-1 end
|
||||
zadc_sum=zadc_sum+zadc znb_mes=znb_mes+1
|
||||
end
|
||||
|
||||
function calc_rms()
|
||||
zadc_rms=math.floor(zadc_sum/znb_mes)
|
||||
if zadc_rms<=8 then zadc_rms=0 end
|
||||
zadc_offset=math.floor(zadc_offset_sum/znb_mes)
|
||||
zpower=math.floor(zadc_rms*zpow_cal/zadc_cal)
|
||||
if verbose then print(zadc_min,zadc_max,zadc_max-zadc_min,zadc_offset,zadc_rms,zpower.."W") end
|
||||
zadc_min=zadc_offset zadc_max=zadc_offset
|
||||
zadc_sum=0 zadc_offset_sum=0 znb_mes=0
|
||||
zadc_min=zadc_offset zadc_max=zadc_offset
|
||||
end
|
||||
read_mesure()
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# Quelques commandes remote (luatool) à envoyer avec le plugin Atom-IDE-terminal de l'éditeur Atom
|
||||
# zf191201.2334
|
||||
# zf191214.1235
|
||||
|
||||
# si luatool ne marche pas sur le MAC, il faut lire ceci:
|
||||
# https://docs.google.com/document/d/1q64uK3IMOgEDdKaIAttbYuFt4GuLQ06k3FLeyfCsWLg/edit#heading=h.bmefcu67uwj0
|
||||
@@ -12,11 +12,12 @@
|
||||
# définitions à faire AVANT !
|
||||
cd /Users/zuzu/Desktop/NodeMCU/NodeMCU_Lua/WIFI_sniffer/cret_project
|
||||
export luatool_tty="/dev/cu.wchusbserial1410"
|
||||
export zIP="192.168.0.200"
|
||||
export zIP="192.168.0.113"
|
||||
#export zIP="192.168.0.137"
|
||||
export zport="23"
|
||||
|
||||
cd '/Users/zuzu/Google Drive/FamilleZ Share/FamilleZ/Papa/LUA/NodeMCU ESP8266/NodeMCU_Lua/WIFI_sniffer/cret_project'
|
||||
cd '/Users/zuzu/Google Drive/FamilleZ Share/FamilleZ/Papa/LUA/NodeMCU ESP8266/NodeMCU_Lua/Mesures/humidity/bolo
|
||||
'
|
||||
export zIP="localhost"
|
||||
export zport="2323"
|
||||
ATTENTION: voir les tunnels tout à la fin !
|
||||
@@ -33,7 +34,6 @@ for k,v in pairs(_G) do print(k,v) end
|
||||
|
||||
# commandes lua pour ce projet
|
||||
telnet -rN $zIP $zport
|
||||
wifi.eventmon.unregister(wifi.eventmon.AP_PROBEREQRECVED)
|
||||
dofile("dir2.lua")
|
||||
filec('dir2.lua')
|
||||
dirc()
|
||||
|
||||
BIN
Mesures/humidity/bolo/docu/1899_HTU21D.pdf
Normal file
BIN
Mesures/humidity/bolo/docu/1899_HTU21D.pdf
Normal file
Binary file not shown.
@@ -13,6 +13,8 @@
|
||||
cd /Users/zuzu/Desktop/NodeMCU/NodeMCU_Lua/WIFI_sniffer/cret_project
|
||||
export luatool_tty="/dev/cu.wchusbserial1410"
|
||||
export zIP="192.168.0.200"
|
||||
export zIP="192.168.1.122"
|
||||
|
||||
#export zIP="192.168.0.137"
|
||||
export zport="23"
|
||||
|
||||
@@ -32,14 +34,40 @@ for k,v in pairs(_G) do print(k,v) end
|
||||
|
||||
|
||||
# commandes lua pour ce projet
|
||||
~.
|
||||
export zIP="192.168.1.122"
|
||||
./luatool.py --ip $zIP:$zport -f boot2.lua
|
||||
export zIP="192.168.1.123"
|
||||
./luatool.py --ip $zIP:$zport -f boot2.lua
|
||||
export zIP="192.168.1.124"
|
||||
./luatool.py --ip $zIP:$zport -f boot2.lua
|
||||
|
||||
|
||||
|
||||
|
||||
telnet -rN $zIP $zport
|
||||
node.restart()
|
||||
|
||||
|
||||
telnet -rN $zIP $zport
|
||||
wifi.eventmon.unregister(wifi.eventmon.AP_PROBEREQRECVED)
|
||||
dofile("dir2.lua")
|
||||
filec('dir2.lua')
|
||||
filec('a1.lua')
|
||||
dirc()
|
||||
~.
|
||||
|
||||
|
||||
zLED=0
|
||||
gpio.mode(zLED, gpio.OUTPUT)
|
||||
gpio.write(zLED, gpio.HIGH)
|
||||
gpio.write(zLED, gpio.LOW)
|
||||
|
||||
|
||||
print(3*4)
|
||||
a=4
|
||||
b=5
|
||||
print(a*b)
|
||||
print(a+b)
|
||||
|
||||
verbose=true
|
||||
verbose=false
|
||||
|
||||
18
Mesures/temp/mario/b.lua
Normal file
18
Mesures/temp/mario/b.lua
Normal file
@@ -0,0 +1,18 @@
|
||||
-- Scripts pour tester du code lua
|
||||
--[[
|
||||
|
||||
Commandes à envoyer via un terminal:
|
||||
~.
|
||||
./luatool.py --ip $zIP:$zport -f b.lua
|
||||
telnet -rN $zIP $zport
|
||||
dofile("b.lua")
|
||||
]]
|
||||
|
||||
print("\n b.lua zf191203.2206 \n")
|
||||
|
||||
print(3*4)
|
||||
a=44
|
||||
b=555
|
||||
print(a*b)
|
||||
print(a+b)
|
||||
print("toto")
|
||||
@@ -1,6 +1,6 @@
|
||||
-- Scripts à charger après le boot pour démarrer son projet
|
||||
|
||||
print("\n boot2.lua zf191124.1922 \n")
|
||||
print("\n boot2.lua zf191203.2214 \n")
|
||||
|
||||
function boot2()
|
||||
second_chance=nil initz=nil boot=nil
|
||||
@@ -29,6 +29,7 @@ function boot2()
|
||||
collectgarbage()
|
||||
--- f= "b.lua" if file.exists(f) then dofile(f) end
|
||||
f= "web_srv2.lua" if file.exists(f) then dofile(f) end
|
||||
f= "web_ide2.lua" if file.exists(f) then dofile(f) end
|
||||
|
||||
f=nil
|
||||
|
||||
|
||||
Reference in New Issue
Block a user