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
899935e6
Commit
899935e6
authored
Jun 18, 2015
by
vowstar
Browse files
Add DHT Lua Module for interfacing with the DHTxx sensors (xx = 11-21-22-33-44).
parent
515a7bf1
Changes
8
Show whitespace changes
Inline
Side-by-side
app/dhtlib/dht.c
View file @
899935e6
...
@@ -27,6 +27,7 @@
...
@@ -27,6 +27,7 @@
// Released to the public domain
// Released to the public domain
//
//
#include "user_interface.h"
#include "platform.h"
#include "platform.h"
#include "dht.h"
#include "dht.h"
...
@@ -51,6 +52,20 @@ static int dht_readSensor(uint8_t pin, uint8_t wakeupDelay);
...
@@ -51,6 +52,20 @@ static int dht_readSensor(uint8_t pin, uint8_t wakeupDelay);
// PUBLIC
// PUBLIC
//
//
// return values:
// Humidity
double
dht_getHumidity
(
void
)
{
return
dht_humidity
;
}
// return values:
// Temperature
double
dht_getTemperature
(
void
)
{
return
dht_temperature
;
}
// return values:
// return values:
// DHTLIB_OK
// DHTLIB_OK
// DHTLIB_ERROR_CHECKSUM
// DHTLIB_ERROR_CHECKSUM
...
@@ -111,6 +126,42 @@ int dht_read(uint8_t pin)
...
@@ -111,6 +126,42 @@ int dht_read(uint8_t pin)
return
DHTLIB_OK
;
return
DHTLIB_OK
;
}
}
// return values:
// DHTLIB_OK
// DHTLIB_ERROR_CHECKSUM
// DHTLIB_ERROR_TIMEOUT
inline
int
dht_read21
(
uint8_t
pin
)
{
return
dht_read
(
pin
);
}
// return values:
// DHTLIB_OK
// DHTLIB_ERROR_CHECKSUM
// DHTLIB_ERROR_TIMEOUT
inline
int
dht_read22
(
uint8_t
pin
)
{
return
dht_read
(
pin
);
}
// return values:
// DHTLIB_OK
// DHTLIB_ERROR_CHECKSUM
// DHTLIB_ERROR_TIMEOUT
inline
int
dht_read33
(
uint8_t
pin
)
{
return
dht_read
(
pin
);
}
// return values:
// DHTLIB_OK
// DHTLIB_ERROR_CHECKSUM
// DHTLIB_ERROR_TIMEOUT
inline
int
dht_read44
(
uint8_t
pin
)
{
return
dht_read
(
pin
);
}
/////////////////////////////////////////////////////
/////////////////////////////////////////////////////
//
//
// PRIVATE
// PRIVATE
...
@@ -138,6 +189,7 @@ int dht_readSensor(uint8_t pin, uint8_t wakeupDelay)
...
@@ -138,6 +189,7 @@ int dht_readSensor(uint8_t pin, uint8_t wakeupDelay)
// REQUEST SAMPLE
// REQUEST SAMPLE
// pinMode(pin, OUTPUT);
// pinMode(pin, OUTPUT);
platform_gpio_mode
(
pin
,
PLATFORM_GPIO_OUTPUT
,
PLATFORM_GPIO_PULLUP
);
DIRECT_MODE_OUTPUT
(
pin
);
DIRECT_MODE_OUTPUT
(
pin
);
// digitalWrite(pin, LOW); // T-be
// digitalWrite(pin, LOW); // T-be
DIRECT_WRITE_LOW
(
pin
);
DIRECT_WRITE_LOW
(
pin
);
...
...
app/dhtlib/dht.h
View file @
899935e6
...
@@ -52,10 +52,13 @@
...
@@ -52,10 +52,13 @@
int
dht_read11
(
uint8_t
pin
);
int
dht_read11
(
uint8_t
pin
);
int
dht_read
(
uint8_t
pin
);
int
dht_read
(
uint8_t
pin
);
inline
int
dht_read21
(
uint8_t
pin
)
{
return
dht_read
(
pin
);
};
inline
int
dht_read21
(
uint8_t
pin
);
inline
int
dht_read22
(
uint8_t
pin
)
{
return
dht_read
(
pin
);
};
inline
int
dht_read22
(
uint8_t
pin
);
inline
int
dht_read33
(
uint8_t
pin
)
{
return
dht_read
(
pin
);
};
inline
int
dht_read33
(
uint8_t
pin
);
inline
int
dht_read44
(
uint8_t
pin
)
{
return
dht_read
(
pin
);
};
inline
int
dht_read44
(
uint8_t
pin
);
double
dht_getHumidity
(
void
);
double
dht_getTemperature
(
void
);
#endif
#endif
//
//
...
...
app/include/user_modules.h
View file @
899935e6
...
@@ -33,6 +33,7 @@
...
@@ -33,6 +33,7 @@
#define LUA_USE_MODULES_CJSON
#define LUA_USE_MODULES_CJSON
#define LUA_USE_MODULES_CRYPTO
#define LUA_USE_MODULES_CRYPTO
#define LUA_USE_MODULES_RC
#define LUA_USE_MODULES_RC
#define LUA_USE_MODULES_DHT
#endif
/* LUA_USE_MODULES */
#endif
/* LUA_USE_MODULES */
...
...
app/modules/Makefile
View file @
899935e6
...
@@ -48,6 +48,7 @@ INCLUDES += -I ../wofs
...
@@ -48,6 +48,7 @@ INCLUDES += -I ../wofs
INCLUDES
+=
-I
../spiffs
INCLUDES
+=
-I
../spiffs
INCLUDES
+=
-I
../smart
INCLUDES
+=
-I
../smart
INCLUDES
+=
-I
../cjson
INCLUDES
+=
-I
../cjson
INCLUDES
+=
-I
../dhtlib
PDIR
:=
../
$(PDIR)
PDIR
:=
../
$(PDIR)
sinclude
$(PDIR)Makefile
sinclude
$(PDIR)Makefile
app/modules/auxmods.h
View file @
899935e6
...
@@ -82,6 +82,15 @@ LUALIB_API int ( luaopen_ow )( lua_State *L );
...
@@ -82,6 +82,15 @@ LUALIB_API int ( luaopen_ow )( lua_State *L );
#define AUXLIB_CJSON "cjson"
#define AUXLIB_CJSON "cjson"
LUALIB_API
int
(
luaopen_cjson
)(
lua_State
*
L
);
LUALIB_API
int
(
luaopen_cjson
)(
lua_State
*
L
);
#define AUXLIB_CRYPTO "crypto"
LUALIB_API
int
(
luaopen_crypto
)(
lua_State
*
L
);
#define AUXLIB_RC "rc"
LUALIB_API
int
(
luaopen_rc
)(
lua_State
*
L
);
#define AUXLIB_DHT "dht"
LUALIB_API
int
(
luaopen_dht
)(
lua_State
*
L
);
// Helper macros
// Helper macros
#define MOD_CHECK_ID( mod, id )\
#define MOD_CHECK_ID( mod, id )\
if( !platform_ ## mod ## _exists( id ) )\
if( !platform_ ## mod ## _exists( id ) )\
...
...
app/modules/dht.c
0 → 100644
View file @
899935e6
// Module for interfacing with the DHTxx sensors (xx = 11-21-22-33-44).
#include "lualib.h"
#include "lauxlib.h"
#include "auxmods.h"
#include "lrotable.h"
#include "cpu_esp8266.h"
#include "dht.h"
#define NUM_DHT GPIO_PIN_NUM
// ****************************************************************************
// DHT functions
int
platform_dht_exists
(
unsigned
id
)
{
return
((
id
<
NUM_DHT
)
&&
(
id
>
0
));
}
// Lua: result = dht.read( id )
static
int
dht_lapi_read
(
lua_State
*
L
)
{
unsigned
id
=
luaL_checkinteger
(
L
,
1
);
MOD_CHECK_ID
(
dht
,
id
);
lua_pushinteger
(
L
,
dht_read
(
id
)
);
return
1
;
}
// Lua: result = dht.read11( id )
static
int
dht_lapi_read11
(
lua_State
*
L
)
{
unsigned
id
=
luaL_checkinteger
(
L
,
1
);
MOD_CHECK_ID
(
dht
,
id
);
lua_pushinteger
(
L
,
dht_read11
(
id
)
);
return
1
;
}
// Lua: result = dht.humidity()
static
int
dht_lapi_humidity
(
lua_State
*
L
)
{
lua_pushinteger
(
L
,
dht_getHumidity
()
);
return
1
;
}
// Lua: result = dht.temperature()
static
int
dht_lapi_temperature
(
lua_State
*
L
)
{
lua_pushinteger
(
L
,
dht_getTemperature
()
);
return
1
;
}
// Module function map
#define MIN_OPT_LEVEL 2
#include "lrodefs.h"
const
LUA_REG_TYPE
dht_map
[]
=
{
{
LSTRKEY
(
"read"
),
LFUNCVAL
(
dht_lapi_read
)
},
{
LSTRKEY
(
"read11"
),
LFUNCVAL
(
dht_lapi_read11
)
},
{
LSTRKEY
(
"humidity"
),
LFUNCVAL
(
dht_lapi_humidity
)
},
{
LSTRKEY
(
"temperature"
),
LFUNCVAL
(
dht_lapi_temperature
)
},
#if LUA_OPTIMIZE_MEMORY > 0
{
LSTRKEY
(
"OK"
),
LNUMVAL
(
DHTLIB_OK
)
},
{
LSTRKEY
(
"ERROR_CHECKSUM"
),
LNUMVAL
(
DHTLIB_ERROR_CHECKSUM
)
},
{
LSTRKEY
(
"ERROR_TIMEOUT"
),
LNUMVAL
(
DHTLIB_ERROR_TIMEOUT
)
},
#endif
{
LNILKEY
,
LNILVAL
}
};
LUALIB_API
int
luaopen_dht
(
lua_State
*
L
)
{
#if LUA_OPTIMIZE_MEMORY > 0
return
0
;
#else // #if LUA_OPTIMIZE_MEMORY > 0
luaL_register
(
L
,
AUXLIB_DHT
,
dht_map
);
// Add the constants
return
1
;
#endif // #if LUA_OPTIMIZE_MEMORY > 0
}
app/modules/modules.h
View file @
899935e6
...
@@ -160,11 +160,19 @@
...
@@ -160,11 +160,19 @@
#if defined(LUA_USE_MODULES_RC)
#if defined(LUA_USE_MODULES_RC)
#define MODULES_RC "rc"
#define MODULES_RC "rc"
#define ROM_MODULES_RC \
#define ROM_MODULES_RC \
_ROM(MODULES_RC, luaopen_rc, rc_map)
_ROM(MODULES_RC, luaopen_rc, rc_map)
#else
#else
#define ROM_MODULES_RC
#define ROM_MODULES_RC
#endif
#endif
#if defined(LUA_USE_MODULES_DHT)
#define MODULES_DHT "dht"
#define ROM_MODULES_DHT \
_ROM(MODULES_DHT, luaopen_dht, dht_map)
#else
#define ROM_MODULES_DHT
#endif
#define LUA_MODULES_ROM \
#define LUA_MODULES_ROM \
ROM_MODULES_GPIO \
ROM_MODULES_GPIO \
ROM_MODULES_PWM \
ROM_MODULES_PWM \
...
@@ -185,6 +193,7 @@ _ROM(MODULES_RC, luaopen_rc, rc_map)
...
@@ -185,6 +193,7 @@ _ROM(MODULES_RC, luaopen_rc, rc_map)
ROM_MODULES_WS2812 \
ROM_MODULES_WS2812 \
ROM_MODULES_CJSON \
ROM_MODULES_CJSON \
ROM_MODULES_CRYPTO \
ROM_MODULES_CRYPTO \
ROM_MODULES_RC
ROM_MODULES_RC \
ROM_MODULES_DHT
#endif
#endif
app/platform/common.c
View file @
899935e6
...
@@ -75,6 +75,7 @@ int platform_tmr_exists( unsigned id )
...
@@ -75,6 +75,7 @@ int platform_tmr_exists( unsigned id )
return
id
<
NUM_TMR
;
return
id
<
NUM_TMR
;
}
}
// ****************************************************************************
// I2C support
// I2C support
int
platform_i2c_exists
(
unsigned
id
)
int
platform_i2c_exists
(
unsigned
id
)
{
{
...
...
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