diff --git a/modules/ds18b20.EN.md b/modules/ds18b20.EN.md
new file mode 100644
index 00000000..4861cc85
--- /dev/null
+++ b/modules/ds18b20.EN.md
@@ -0,0 +1,139 @@
+#DS18B20 Module
+##Require
+
+ds18b20 = require("ds18b20")
+
+##Constant
+C, F, K
+
+
+##setup()
+####Description
+Setting the pin of DS18B20.
+
+####Syntax
+setup(pin)
+
+####Parameters
+pin: 1~10, IO index. If parameter is nil, it will use pin 9(GPIO2) automatically.
+
+####Returns
+nil
+
+####Example
+```lua
+ds18b20 = require("ds18b20")
+ds18b20.setup(9)
+```
+
+####See also
+**-** []()
+
+
+
+## addrs()
+####Description
+Return all of the addresses table of DS18B20 on one-wire. 如果没有执行过setup(pin),则会自动对引脚9(GPIO2)进行单总线模式初始化。
+
+####Syntax
+addrs()
+
+####Parameters
+nil
+####Returns
+addrs: 返回包含单总线上所有DS18B20器件的地址列表(table)。其中地址是字符串类型(String)。如果失败则返回nil.
+
+####Example
+```lua
+ds18b20 = require("ds18b20")
+ds18b20.setup(9)
+addrs = ds18b20.addrs()
+if (addrs ~= nil) then
+ print("Total DS18B20 sensors: "..table.getn(addrs))
+end
+```
+
+####See also
+**-** []()
+
+
+
+## readNumber()
+####Description
+读取温度数值。如果没有执行过setup(pin),则会自动对引脚9(GPIO2)进行单总线模式初始化。
+
+####Syntax
+readNumber(addr, unit)
+
+####Parameters
+addr: 字符串, DS18B20地址。 如果该Parameters为nil,会自动选择第一个发现的地址。
+unit: 单位转换,只接受常量C(摄氏度),F(华氏度), K(开氏度)。如果该Parameters为nil,会自动选择常量C(摄氏度) 。
+
+####Returns
+t1: 数值,温度的整数部分。如果读取失败返回nil.
+t2: 数值,温度的小数部分。如果读取失败返回nil.
+
+####Example
+```lua
+t=require("ds18b20")
+t.setup(9)
+addrs=t.addrs()
+-- Total DS18B20 numbers, assume it is 2
+print(table.getn(addrs))
+-- The first DS18B20
+print(t.readNumber(addrs[1],t.C))
+print(t.readNumber(addrs[1],t.F))
+print(t.readNumber(addrs[1],t.K))
+-- The second DS18B20
+print(t.readNumber(addrs[2],t.C))
+print(t.readNumber(addrs[2],t.F))
+print(t.readNumber(addrs[2],t.K))
+-- Just read
+print(t.readNumber())
+-- Just read as fahrenheit
+print(t.readNumber(nil,t.F))
+-- Read as values
+t1, t2 = t.readNumber()
+```
+####See also
+**-** []()
+
+
+## read()
+####Description
+读取温度字符串。如果没有执行过setup(pin),则会自动对引脚9(GPIO2)进行单总线模式初始化。
+
+####Syntax
+read(addr, unit)
+
+####Parameters
+addr: 字符串, DS18B20地址。 如果该Parameters为nil,会自动选择第一个发现的地址。
+unit: 单位转换,只接受常量C(摄氏度),F(华氏度), K(开氏度)。如果该Parameters为nil,会自动选择常量C(摄氏度) 。
+
+####Returns
+t: 字符串,表示成字符串形式的温度。如果读取失败返回nil.
+
+####Example
+```lua
+t=require("ds18b20")
+t.setup(9)
+addrs=t.addrs()
+-- Total DS18B20 numbers, assume it is 2
+print(table.getn(addrs))
+-- The first DS18B20
+print(t.read(addrs[1],t.C))
+print(t.read(addrs[1],t.F))
+print(t.read(addrs[1],t.K))
+-- The second DS18B20
+print(t.read(addrs[2],t.C))
+print(t.read(addrs[2],t.F))
+print(t.read(addrs[2],t.K))
+-- Just read
+print(t.read())
+-- Just read as centigrade
+print(t.read(nil,t.C))
+
+```
+####See also
+**-** []()
+