Jerry 发表于 2015-2-8 20:19:37

ESP8266无MCU连接传感器18B20上传

本帖最后由 Jerry 于 2015-2-9 09:12 编辑

软件:固件使用NodeMCU   网址:http://www.nodemcu.com
硬件:ESP8266-01+18B20
原理图(文字说明)
18b20 正面引脚顺序为123   功能分别为负信号   正。信号和正之间接5k电阻
ESP8266

IO引脚说明:NodeMCU定义的8266引脚3为GPIO00 ,4为GPIO02,我在程序中设定3为传感器,4为LED

操作方法,按上述说明接好传感器,电源(3.3v),将CH_PD接正极拉高。接好RX/TX/GND到USB-TTL
1、开机前短路GND和 GPIO00
2、下载固件http://bbs.nodemcu.com/uploads/default/93/392ad5358c909350.bin
3、下载固件刷机程序
   32位https://github.com/nodemcu/nodemcu-flasher/blob/master/Win32/Release/ESP8266Flasher.exe
   64位https://github.com/nodemcu/nodemcu-flasher/blob/master/Win64/Release/ESP8266Flasher.exe
4、打开刷机程序,进入刷机程序,选好串口,选择config,点击第一个齿轮标志选择上面的固件,返回第一页点击flash刷入固件
   完成后断开GPIO00的连线
5、下载NodeMcu Studio
http://bbs.nodemcu.com/t/nodemcu-studio-ban-ben-geng-xin-wei-build20150111-update-to-version-build20150111/64

6、打开程序,选择串口进入
7、重新给8266上电,NodeMcu Studio会看到启动信息
8、装入(download)下列几个程序即可运行,记得修改你的wifi名字和密码,还有你的yeelink的API KEY/传感器编号
a、ds18b20.lua    是18b20的支持库    --不需要修改
b、init.lua             是8266的启动文件,类似电脑的启动批处理   --需要修改里面的wifi名字和密码
c、yeelink_POST3.lua   是我写的上传程序      --需要修改里面的传感器ID和APIKEY


传感器地址http://www.yeelink.net/devices/237

Paderboy 发表于 2015-2-8 20:51:47

不错,多谢分享!

126 发表于 2015-2-14 22:16:45

ESP8266可以充当MCU的身份来处理传感器数据吗?

Jerry 发表于 2015-2-15 11:50:45

126 发表于 2015-2-14 22:16 static/image/common/back.gif
ESP8266可以充当MCU的身份来处理传感器数据吗?

我发的就是啊

126 发表于 2015-2-16 00:19:17

感觉好高端啊。。。原来esp不止是一个wifi模块。。。

clumsybird 发表于 2015-6-26 20:59:54

找的就是你,正是我想要的。:lol
请问esp8266-01与esp8266-12有哪些区别?

clumsybird 发表于 2015-6-26 21:08:59

找的就是你,正是我想要的。:lol
请问esp8266-01与esp8266-12有哪些区别?

lulugl 发表于 2015-8-20 09:00:02

大神,可以联系你吗,我想学用你的例子,不知道如何联系您列!

prophet000 发表于 2015-10-15 10:44:05

esp8266做无线传感器还是有点太费电了;P

wetnt 发表于 2015-10-15 14:37:47

谁能改写下,不用lua,直接用arduino的IDE搞呢?

hesg 发表于 2015-11-17 20:32:28

只有esp8266-01,要是有用Arduino+esp8266-01的例程就好了。

shoolang 发表于 2015-12-19 12:07:48

NodeMCU和Yeelink之前都有例子,但是因为久远部分参变量已经改变,直接调试不通,经过TCP调试工具验证,修正代码如下,通过,共享给大家,希望少走弯路,参考前人贴
http://www.geek-workshop.com/thread-12689-1-1.html

修改以下部分:
init.lua
if true then--change to if true
print("set up wifi mode")
wifi.setmode(wifi.STATION)
--please config ssid and password according to settings of your wireless router.
wifi.sta.config("wifi-id","wifi-key")                     --这里设置你的WIFI名字和密码
wifi.sta.connect()
cnt = 0
tmr.alarm(1, 1000, 1, function()
   if (wifi.sta.getip() == nil) and (cnt < 20) then
      print("IP unavaiable, Waiting...")
      cnt = cnt + 1
   else
      tmr.stop(1)
      if (cnt < 20) then print("Config done, IP is "..wifi.sta.getip())
      --dofile("yeelink_POST3.lua")         --这里设置自动执行的程序,去掉减号就可以运行了。建议调试时候屏蔽单独运行
               
      else
                     print("No Wifi Connected.")
                     
      end
   end
end)
else
print("\n")
print("Please edit 'init.lua' first:")
print("Step 1: Modify wifi.sta.config() function in line 5 according settings of your wireless router.")
print("Step 2: Change the 'if false' statement in line 1 to 'if true'.")
end

yeelinkpost.lua
tmr.alarm(0, 30000, 1, function()

conn=net.createConnection(net.TCP, 0)
conn:on("connection", function(conn) topost() end)
conn:on("disconnection", function(conn, pl) print("disconnection") conn:close() end)
conn:on("receive", function(conn, pl) conn:close() print(pl) end )
conn:connect(80,"42.96.164.52")--这个不同于参考贴,目前测试通过2015年12月19日

function topost()
st="{\r\n\"timestamp\":\"2015-12-17T23:46:14\",\r\n\"value\":1\r\n}"
conn:send("POST /v1.0/device/123456/sensor/654321/datapoints HTTP/1.1\r\n"--修改为自己的设备和传感器ID
.."Host: api.yeelink.net\r\n"
.."Accept: */*\r\n"
.."U-ApiKey:d330d8afc49d2863\r\n" --这里的APIkey改成你自己的
.."Content-Length:"..string.len(st).."\r\n\r\n"--the length of json is important
..st.."\r\n")

end

end)

msold5 发表于 2015-12-19 16:50:36

wetnt 发表于 2015-10-15 14:37 static/image/common/back.gif
谁能改写下,不用lua,直接用arduino的IDE搞呢?

直接把8266当UNO使用就可以了,百度一下吧:arduino 8266 ide

super123 发表于 2016-11-19 07:23:51

有些复杂,内存小不支能不能加载这么多代码:)
页: [1]
查看完整版本: ESP8266无MCU连接传感器18B20上传