hardware: ESP8266 (ESP-12), DHT22/AM2302, jumpers
firmware: nodemcu-dev096-21-modules-2015-09-20-05-43-31-float (custome f/w) http://frightanic.com/nodemcu-custom-build/
language: Lua
IDE : ESPlorer
WRITEKEY="thingspeak write key" -- set your thingspeak.com key PIN = 2 -- data pin, GPIO2 wifi.setmode(wifi.STATION) wifi.sta.config("ssid","password") wifi.sta.setip({ip="192.168.0.115",netmask="255.255.255.0",gateway="192.168.0.1"}) wifi.sta.connect() tmr.delay(1000000) humi=0 temp=0 -- LED = 1 -- gpio.mode(LED, gpio.OUTPUT) RST = 4 gpio.mode(RST, gpio.OUTPUT) --gpio.write(RST, gpio.LOW) function init_OLED(sda,scl) --Set up the u8glib lib sla = 0x3c i2c.setup(0, sda, scl, i2c.SLOW) disp = u8g.ssd1306_128x64_i2c(sla) disp:setFont(u8g.font_6x10) disp:setFontRefHeightExtendedText() disp:setDefaultForegroundColor() disp:setFontPosTop() end init_OLED(5,6) --Run setting up gpio.write(RST, gpio.HIGH) function display_OLED(humi, temp) disp:firstPage() repeat -- lines = 25 lines = 5 disp:drawFrame(0,0,128,64); disp:drawStr( 5, 5, "Temp & Humi") disp:drawStr( 5, 20, "Humidity : "..humi.."%") disp:drawStr( 5, 31, "Temperature : "..temp.."C") until disp:nextPage() == false end --load DHT module and read sensor function ReadDHT() dht=require("dht") -- dht.read(PIN) status,temp,humi,temp_decimial,humi_decimial = dht.read(PIN) if( status == dht.OK ) then -- gpio.write(LED, gpio.HIGH) -- Integer firmware using this example -- print( -- string.format( -- "\r\nDHT Temperature:%d.%03d\r\nHumidity:%d.%03d\r\n", -- temp, -- temp_decimial, -- humi, -- humi_decimial -- ) -- ) -- Float firmware using this example print("Humidity: "..humi.."%") print("Temperature: "..temp.."C") elseif( status == dht.ERROR_CHECKSUM ) then print( "DHT Checksum error." ); elseif( status == dht.ERROR_TIMEOUT ) then print( "DHT Time out." ); end -- release module dht=nil package.loaded["dht"]=nil end -- send to https://api.thingspeak.com function sendTS(humi,temp) conn = nil conn = net.createConnection(net.TCP, 0) conn:on("receive", function(conn, payload)success = true print(payload)end) conn:on("connection", function(conn, payload) print("Connected") conn:send('GET /update?key='..WRITEKEY..'&field1='..humi..'&field2='..temp..'HTTP/1.1\r\n\ Host: api.thingspeak.com\r\nAccept: */*\r\nUser-Agent: Mozilla/4.0 (compatible; esp8266 Lua; Windows NT 5.1)\r\n\r\n')end) conn:on("disconnection", function(conn, payload) print('Disconnected') end) conn:connect(80,'api.thingspeak.com') -- gpio.write(LED, gpio.LOW) end -- ReadDHT() -- sendTS(humi,temp) tmr.alarm(1,60000,1,function()ReadDHT()display_OLED(humi, temp)sendTS(humi,temp)end)