Pernah ga, ada rasanya penasaran ketika di rumah cuaca pada jam sekian sama jam sekian berapa celcius, kemudian berapa kelembabannya. Nah sekarang daripada bengong mending ikut proyek kecil buat monitoring temperature dan kelembaban rumah.
Alat dan bahan:
- ESP8266 esp01 cukup 1 buah (flash dengan firmware nodeMCU)
- Power bank
- Sensor DHT22
- Otak yang masih segerr
- Kopi kalau ada
Koneksikan DHT22 dengan ESP8266 dengan wiring sebagai berikut:
Kemudian, buat account di thingspeak.com dan bila dibutuhkan authentikasi by email, di authentikasi dulu agar lancar kesananya.
- Di tab Channel, create new channel
- Kemudian masukkan beberapa detail seperti nama chanel misal "Monitor rumah orang"
- Field1, field2 ...etc adalah tempat kita nanti memasukkan data dari node kita (ESP8266 mksdnya)
- centang Field1 dan Field2, kemudian ubah nama Field1 menjadi Temperature dan Field2 menjadi Humidity. Dan save channelnya.
- Setelah itu akan didapatkan API key
- Coba tes menggunakan browser apapun dan ketik di alamatnya: http://api.thingspeak.com/update?key=YOUR_API_KEY&field1=40&field2=70
setelah itu coba masuk ke tab Private/public view, maka akan ada satu titik disana
Kembali ke hardware, berikut adalah source codenya, mudah-mudahan bisa dipahami hehe:
pwd = 1234567890987654321
maka hasilnya akan seperti ini kira-kira:
Alat dan bahan:
- ESP8266 esp01 cukup 1 buah (flash dengan firmware nodeMCU)
- Power bank
- Sensor DHT22
- Otak yang masih segerr
- Kopi kalau ada
Koneksikan DHT22 dengan ESP8266 dengan wiring sebagai berikut:
Kemudian, buat account di thingspeak.com dan bila dibutuhkan authentikasi by email, di authentikasi dulu agar lancar kesananya.
- Di tab Channel, create new channel
- Kemudian masukkan beberapa detail seperti nama chanel misal "Monitor rumah orang"
- Field1, field2 ...etc adalah tempat kita nanti memasukkan data dari node kita (ESP8266 mksdnya)
- centang Field1 dan Field2, kemudian ubah nama Field1 menjadi Temperature dan Field2 menjadi Humidity. Dan save channelnya.
- Setelah itu akan didapatkan API key
- Coba tes menggunakan browser apapun dan ketik di alamatnya: http://api.thingspeak.com/update?key=YOUR_API_KEY&field1=40&field2=70
setelah itu coba masuk ke tab Private/public view, maka akan ada satu titik disana
Kembali ke hardware, berikut adalah source codenya, mudah-mudahan bisa dipahami hehe:
--tes TCP Connection
INPUT_DHT = 3ssid = blabla
pwd = 1234567890987654321
require "dht_lib"CHANNEL_API_KEY = "YOUR_API"
gpio.mode(INPUT_DHT, gpio.INPUT);
wifi.setphymode(wifi.PHYMODE_N);
wifi.setmode(wifi.STATION);
wifi.sta.disconnect();
wifi.sta.config(SSID, PWD);
repeat
print("connecting to AP...\r\n"
wifi.sta.getip());
tmr.delay(1000)
Until wifi.sta.getip()~=nil
local ip, br, gate = wifi.sta.getip()Print('IP Address:',ip,'\r\nBroadcast:',br,'\r\nGateway: ',gate);
function bebeb()soket = net.createConnection(net.TCP,0)status,temp,humi,temp_decimial,humi_decimial = dht.readxx(INPUT_DHT)if( status == dht.OK ) then-- Float firmware using this exampletemperature = string.format("%d.%03d",math.floor(temp),temp_decimial)humidity = string.format("%d.%03d",math.floor(humi),humi_decimial)endrequest = "GET /update?api_key="..CHANNEL_API_KEY.."&field1="..temperature.."&field2="..humidity.." HTTP/1.1\r\n".."Host: api.thingspeak.com\r\n".."Connection: close\r\n".."Accept: */*\r\n".."User-Agent: Mozilla/4.0 (Compatible; NodeMCU)\r\n\r\n"soket:on("connection", function(conn,payload)soket:send(request)end)soket:on("receive", function(conn,payload)--print(payload)end)soket:on("disconnection", function(conn,payload)soket:close()collectgarbage()end)--print(request)soket:connect(80,"api.thingspeak.com")endtmr.alarm(2,15000,1, function() bebeb() end)
maka hasilnya akan seperti ini kira-kira: