Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
ruanhaishen
Nodemcu Firmware
Commits
fee2cf47
Commit
fee2cf47
authored
Apr 06, 2015
by
funshine
Browse files
Merge branch 'master' into dev
parents
450b79db
263179ea
Changes
3
Hide whitespace changes
Inline
Side-by-side
examples/fragment.lua
View file @
fee2cf47
...
@@ -14,7 +14,7 @@ sk:connect(80,"115.239.210.27")
...
@@ -14,7 +14,7 @@ sk:connect(80,"115.239.210.27")
sk
:
send
(
"GET / HTTP/1.1\r\nHost: 115.239.210.27\r\nConnection: keep-alive\r\nAccept: */*\r\n\r\n"
)
sk
:
send
(
"GET / HTTP/1.1\r\nHost: 115.239.210.27\r\nConnection: keep-alive\r\nAccept: */*\r\n\r\n"
)
sk
:
connect
(
80
,
"192.168.0.66"
)
sk
:
connect
(
80
,
"192.168.0.66"
)
sk
:
send
(
"GET / HTTP/1.1\r\nHost:
1
192.168.0.66\r\nConnection: keep-alive\r\nAccept: */*\r\n\r\n"
)
sk
:
send
(
"GET / HTTP/1.1\r\nHost: 192.168.0.66\r\nConnection: keep-alive\r\nAccept: */*\r\n\r\n"
)
i2c
.
setup
(
0
,
1
,
0
,
i2c
.
SLOW
)
i2c
.
setup
(
0
,
1
,
0
,
i2c
.
SLOW
)
function
read_bmp
(
addr
)
i2c
.
start
(
0
)
i2c
.
address
(
0
,
119
,
i2c
.
RECEIVER
)
c
=
i2c
.
read
(
0
,
1
)
i2c
.
stop
(
0
)
print
(
string.byte
(
c
))
end
function
read_bmp
(
addr
)
i2c
.
start
(
0
)
i2c
.
address
(
0
,
119
,
i2c
.
RECEIVER
)
c
=
i2c
.
read
(
0
,
1
)
i2c
.
stop
(
0
)
print
(
string.byte
(
c
))
end
...
...
lua_modules/dht22/README.md
View file @
fee2cf47
# DHT
22
module
# DHT
xx
module
This module is compatible with DHT22 and DHT21.
This module is compatible with DHT11, DHT21 and DHT22.
Supports nodemcu with or without floating point.
No need to use a resistor to connect the pin data of DHT22 to ESP8266.
No need to use a resistor to connect the pin data of DHT22 to ESP8266.
## Example
##Integer Verison[When using DHT11, Float version is useless...]
### Example
```
lua
```
lua
PIN
=
4
-- data pin, GPIO2
PIN
=
4
-- data pin, GPIO2
dht22
=
require
(
"dht22"
)
DHT
=
require
(
"dht_lib"
)
dht22
.
read
(
PIN
)
t
=
dht22
.
getTemperature
()
--dht.read11(PIN)
h
=
dht22
.
getHumidity
()
DHT
.
read22
(
PIN
)
t
=
DHT
.
getTemperature
()
h
=
DHT
.
getHumidity
()
if
h
==
nil
then
if
h
==
nil
then
print
(
"Error reading from DHT22"
)
print
(
"Error reading from DHT
11/
22"
)
else
else
-- temperature in degrees Celsius and Farenheit
-- temperature in degrees Celsius and Farenheit
-- floating point and integer version:
print
(
"Temperature: "
..
((
t
-
(
t
%
10
))
/
10
)
..
"."
..
(
t
%
10
)
..
" deg C"
)
print
(
"Temperature: "
..
((
t
-
(
t
%
10
))
/
10
)
..
"."
..
(
t
%
10
)
..
" deg C"
)
-- only integer version:
print
(
"Temperature: "
..
(
9
*
t
/
50
+
32
)
..
"."
..
(
9
*
t
/
5
%
10
)
..
" deg F"
)
print
(
"Temperature: "
..
(
9
*
t
/
50
+
32
)
..
"."
..
(
9
*
t
/
5
%
10
)
..
" deg F"
)
-- only float point version:
print
(
"Temperature: "
..
(
9
*
t
/
50
+
32
)
..
" deg F"
)
-- humidity
-- humidity
-- floating point and integer version
print
(
"Humidity: "
..
((
h
-
(
h
%
10
))
/
10
)
..
"."
..
(
h
%
10
)
..
"%"
)
print
(
"Humidity: "
..
((
h
-
(
h
%
10
))
/
10
)
..
"."
..
(
h
%
10
)
..
"%"
)
end
end
-- release module
-- release module
dht22
=
nil
DHT
=
nil
package.loaded
[
"dht
22
"
]
=
nil
package.loaded
[
"dht
_lib
"
]
=
nil
```
```
## Functions
##Float Verison
### read
###Example
read(pin)
```
lua
Read humidity and temperature from DHT22.
PIN
=
4
-- data pin, GPIO2
DHT
=
require
(
"dht_lib"
)
--dht.read11(PIN)
DHT
.
read22
(
PIN
)
t
=
DHT
.
getTemperature
()
h
=
DHT
.
getHumidity
()
if
h
==
nil
then
print
(
"Error reading from DHT11/22"
)
else
-- temperature in degrees Celsius and Farenheit
-- floating point and integer version:
print
(
"Temperature: "
..
t
..
" deg C"
)
print
(
"Temperature: "
..
(
9
*
t
/
50
+
32
)
..
" deg F"
)
-- humidity
print
(
"Humidity: "
..
h
..
"%"
)
end
-- release module
DHT
=
nil
package.loaded
[
"dht_lib"
]
=
nil
```
## Functions
### read11
read11(pin)
Read humidity and temperature from DHT11.
###read22
read22(pin)
Read humidity and temperature from DHT22/21.
**Parameters:**
**Parameters:**
*
pin - ESP8266 pin connect to data pin
in DHT22
*
pin - ESP8266 pin connect to data pin
### getHumidity
### getHumidity
getHumidity()
getHumidity()
...
@@ -54,5 +86,6 @@ getTemperature()
...
@@ -54,5 +86,6 @@ getTemperature()
Returns the temperature of the last reading.
Returns the temperature of the last reading.
**Returns:**
**Returns:**
*
last temperature reading in 0.1ºC
*
last temperature reading in(dht22) 0.1ºC (dht11)1ºC
*
lua_modules/dht22/dht
22
.lua
→
lua_modules/dht22/dht
_lib
.lua
View file @
fee2cf47
-- ***************************************************************************
-- ***************************************************************************
-- DHT22 module for ESP8266 with nodeMCU
-- DHT
xx(11,21,
22
)
module for ESP8266 with nodeMCU
--
--
-- Written by Javier Yanez
-- Written by Javier Yanez
mod by Martin
-- but based on a script of Pigs Fly from ESP8266.com forum
-- but based on a script of Pigs Fly from ESP8266.com forum
--
--
-- MIT license, http://opensource.org/licenses/MIT
-- MIT license, http://opensource.org/licenses/MIT
-- ***************************************************************************
-- ***************************************************************************
--Support list:
--DHT11 Tested ->read11
--DHT21 Not Tested->read22
--DHT22 Tested->read22
--==========================Module Part======================
local
moduleName
=
...
local
moduleName
=
...
local
M
=
{}
local
M
=
{}
_G
[
moduleName
]
=
M
_G
[
moduleName
]
=
M
--==========================Local the UMI and TEMP===========
local
humidity
local
humidity
local
temperature
local
temperature
--==========================Local the bitStream==============
local
bitStream
=
{}
function
M
.
read
(
pin
)
---------------------------Read bitStream from DHTXX--------------------------
local
checksum
local
function
read
(
pin
)
local
checksumTest
local
bitlength
=
0
humidity
=
0
humidity
=
0
temperature
=
0
temperature
=
0
checksum
=
0
-- Use Markus Gritsch trick to speed up read/write on GPIO
-- Use Markus Gritsch trick to speed up read/write on GPIO
local
gpio_read
=
gpio
.
read
local
gpio_read
=
gpio
.
read
local
bitStream
=
{}
for
j
=
1
,
40
,
1
do
for
j
=
1
,
40
,
1
do
bitStream
[
j
]
=
0
bitStream
[
j
]
=
0
end
end
local
bitlength
=
0
-- Step 1: send out start signal to DHT22
-- Step 1: send out start signal to DHT22
gpio
.
mode
(
pin
,
gpio
.
OUTPUT
)
gpio
.
mode
(
pin
,
gpio
.
OUTPUT
)
...
@@ -39,7 +48,7 @@ function M.read(pin)
...
@@ -39,7 +48,7 @@ function M.read(pin)
gpio
.
write
(
pin
,
gpio
.
HIGH
)
gpio
.
write
(
pin
,
gpio
.
HIGH
)
gpio
.
mode
(
pin
,
gpio
.
INPUT
)
gpio
.
mode
(
pin
,
gpio
.
INPUT
)
-- Step 2:
DHT22 send response signal
-- Step 2:
Receive bitStream from DHT11/22
-- bus will always let up eventually, don't bother with timeout
-- bus will always let up eventually, don't bother with timeout
while
(
gpio_read
(
pin
)
==
0
)
do
end
while
(
gpio_read
(
pin
)
==
0
)
do
end
local
c
=
0
local
c
=
0
...
@@ -59,8 +68,53 @@ function M.read(pin)
...
@@ -59,8 +68,53 @@ function M.read(pin)
-- bus will always let up eventually, don't bother with timeout
-- bus will always let up eventually, don't bother with timeout
while
(
gpio_read
(
pin
)
==
0
)
do
end
while
(
gpio_read
(
pin
)
==
0
)
do
end
end
end
end
---------------------------Convert the bitStream into Number through DHT11 Ways--------------------------
function
M
.
read11
(
pin
)
--As for DHT11 40Bit is consisit of 5Bytes
--First byte->Humidity Data's Int part
--Sencond byte->Humidity Data's Float Part(Which should be empty)
--Third byte->Temp Data;s Intpart
--Forth byte->Temp Data's Float Part(Which should be empty)
--Fifth byte->SUM Byte, Humi+Temp
read
(
pin
)
local
checksum
=
0
local
checksumTest
--DHT data acquired, process.
--DHT data acquired, process.
for
i
=
1
,
8
,
1
do
-- Byte[0]
if
(
bitStream
[
i
]
>
3
)
then
humidity
=
humidity
+
2
^
(
8
-
i
)
end
end
for
i
=
1
,
8
,
1
do
-- Byte[2]
if
(
bitStream
[
i
+
16
]
>
3
)
then
temperature
=
temperature
+
2
^
(
8
-
i
)
end
end
for
i
=
1
,
8
,
1
do
--Byte[4]
if
(
bitStream
[
i
+
32
]
>
3
)
then
checksum
=
checksum
+
2
^
(
8
-
i
)
end
end
if
(
checksum
~=
humidity
+
temperature
)
then
humidity
=
nil
temperature
=
nil
end
end
---------------------------Convert the bitStream into Number through DHT22 Ways--------------------------
function
M
.
read22
(
pin
)
--As for DHT22 40Bit is consisit of 5Bytes
--First byte->Humidity Data's High Bit
--Sencond byte->Humidity Data's Low Bit(And if over 0x8000, use complement)
--Third byte->Temp Data's High Bit
--Forth byte->Temp Data's Low Bit
--Fifth byte->SUM Byte
read
(
pin
)
local
checksum
=
0
local
checksumTest
--DHT data acquired, process.
for
i
=
1
,
16
,
1
do
for
i
=
1
,
16
,
1
do
if
(
bitStream
[
i
]
>
3
)
then
if
(
bitStream
[
i
]
>
3
)
then
humidity
=
humidity
+
2
^
(
16
-
i
)
humidity
=
humidity
+
2
^
(
16
-
i
)
...
@@ -91,6 +145,7 @@ function M.read(pin)
...
@@ -91,6 +145,7 @@ function M.read(pin)
end
end
end
end
---------------------------Check out the data--------------------------
function
M
.
getTemperature
()
function
M
.
getTemperature
()
return
temperature
return
temperature
end
end
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment