Oke teman teman, pada artikel yang berjudul Project IoT Suhu dan Kelembaban ini saya akan sharing lagi tentang salah satu project yang ada kaitan nya dengan internet.
Sebenarnya dulu juga sudah pernah saya upload atau posting tentang project IoT sederhana yang berjudul Project IoT ESP8266 ESP12E
Atau project yang lebih sederhana lagi di youtube dengan judul Membuat IoT Internet of Things Sederhana.
Nah kalau disini saya membuat ulang project tersebut dengan penambahan LCD sebagai display untuk mengetahui nilai suhu dan kelembaban yang terbaca pada sensor.
Alat dan Bahan
Alat dan bahan yang diperlukan dalam pembuatan project ini adalah :
- ATmega328
- 2x Kapasitor 100nF
- 2x Kapasitor 22pF
- Kristal 16MHz
- LCD 16×2
- 2x Resistor 10k
- 1x Resistor 3k3
- Modul GSM SIM800L
- Adaptor Variabel
Gambar Rangkaian
Untuk gambar rangkaian nya kalian bisa lihat pada gambar berikut yang sudah saya gambar menggunakan software EAGLE PCB.
Coding Arduino
Nah sedangkan untuk coding arduino nya kalian bisa langsung aja copy baris coding berikut.
[sociallocker id=2480]#include "SoftwareSerial.h"
#include <DHT11.h>
#include <LiquidCrystal.h>
int pin=6;
float temp, humi;
DHT11 dht11(pin);
LiquidCrystal lcd(19, 18, 17, 16, 15, 14);
int relay=9;
SoftwareSerial mySerial(7, 8);
unsigned long PreviousMillis = 0;
unsigned long intervalTime;
unsigned long CurrentMillis;
unsigned long interval=5*60000;
void setup() {
lcd.begin(16, 2);
pinMode(relay,OUTPUT);
// put your setup code here, to run once:
mySerial.begin(9600);
Serial.begin(9600);
delay(20000);
mySerial.println("AT");
delay(1000);
lcd.setCursor(0,0);
lcd.print("Cek GSM ");
while (mySerial.available()){
lcd.write(mySerial.read());
//Serial.write(mySerial.read());
}
delay(5000);
lcd.clear();
}
void loop() {
int err;
if((err=dht11.read(humi, temp))==0)
{
lcd.setCursor(0,0);
lcd.print("t:");
lcd.print(temp,1);
lcd.print("C ");
lcd.setCursor(9,0);
lcd.print("H:");
lcd.print(humi,0);
lcd.println("% ");
}
// put your main code here, to run repeatedly:
CurrentMillis = millis();
if ( CurrentMillis < PreviousMillis ) // millis reset to zero?
{
intervalTime = CurrentMillis+interval;
}
updatedata();
//kontrol();
}
void kontrol(){
mySerial.println("AT+SAPBR=3,1,\"Contype\",\"GPRS\"");
delay(100);
while (mySerial.available()){
Serial.write(mySerial.read());}
mySerial.println("AT+SAPBR=3,1,\"APN\",\"\"");
delay(100);
while (mySerial.available()){
Serial.write(mySerial.read());}
mySerial.println("AT+SAPBR=1,1");
delay(100);
while (mySerial.available()){
Serial.write(mySerial.read());}
mySerial.println("AT+SAPBR=2,1");
delay(100);
while (mySerial.available()){
Serial.write(mySerial.read());}
mySerial.println("AT+HTTPINIT");
delay(100);
while (mySerial.available()){
Serial.write(mySerial.read());}
mySerial.println("AT+HTTPPARA=\"CID\",1");
delay(100);
while (mySerial.available()){
Serial.write(mySerial.read());}
mySerial.println("AT+HTTPPARA=\"URL\",\"http://abc.xyz/kontrol.php\"");
delay(100);
while (mySerial.available()){
Serial.write(mySerial.read());}
mySerial.println("AT+HTTPACTION=0");
delay(4000);
while (mySerial.available()){
Serial.write(mySerial.read());}
//delay(1000);
mySerial.println("AT+HTTPREAD");
delay(500);
while (mySerial.available()){
char c = mySerial.read();
Serial.write(c);
if (c == '8' ) {
mySerial.println("AT+HTTPTERM");
lcd.setCursor(0,1);
lcd.print("Keran Aktif ");
digitalWrite(relay,HIGH);
}
if (c == '9' ) {
mySerial.println("AT+HTTPTERM");
lcd.setCursor(0,1);
lcd.print("Keran Non Aktif ");
digitalWrite(relay,LOW);
}
}
}
void updatedata(){
if ( CurrentMillis > intervalTime )
{
intervalTime = CurrentMillis + interval;
mySerial.println("AT+SAPBR=3,1,\"Contype\",\"GPRS\"");
delay(1000);
while (mySerial.available()){
Serial.write(mySerial.read());}
mySerial.println("AT+SAPBR=3,1,\"APN\",\"\"");
delay(1000);
while (mySerial.available()){
Serial.write(mySerial.read());}
mySerial.println("AT+SAPBR=1,1");
delay(4000);
while (mySerial.available()){
Serial.write(mySerial.read());}
mySerial.println("AT+SAPBR=2,1");
delay(1000);
while (mySerial.available()){
Serial.write(mySerial.read());}
mySerial.println("AT+HTTPINIT");
delay(1000);
while (mySerial.available()){
Serial.write(mySerial.read());}
mySerial.println("AT+HTTPPARA=\"CID\",1");
delay(1000);
while (mySerial.available()){
Serial.write(mySerial.read());}
mySerial.print("AT+HTTPPARA=\"URL\",\"http://abc.com/tambah.php?t=");
mySerial.print(temp,0);
mySerial.print("&h=");
mySerial.print(humi,0);
mySerial.println("\"");
delay(1000);
while (mySerial.available()){
Serial.write(mySerial.read());}
mySerial.println("AT+HTTPACTION=0");
delay(4000);
while (mySerial.available()){
Serial.write(mySerial.read());}
delay(1000);
mySerial.println("AT+HTTPREAD");
delay(5000);
while (mySerial.available()){
Serial.write(mySerial.read());}
delay(3000);
mySerial.println("AT+HTTPTERM");
delay(2000);
while (mySerial.available()){
Serial.write(mySerial.read());}
}
}
[/sociallocker]
Untuk file web nya bisa kalian download pada link yang sudah saya siapkan di akhir dari artikel ini.
Ingat kamu juga harus menyiapkan database pada hosting dan sesuaikan file web agar bisa terkoneksi dengan database yang sudah dibuat. Tidak tampilnya data pada website bisa jadi dikarenakan database yang belum terkoneksi pada script PHP nya.



Bli misal pake wifi aja g usa pake gprs apanya yg diubah ya?
itu di artikel yang sudah di link di post sudah ada yang pakai wifi. kasikan modul wifi
https://duwiarsana.com/project-iot-esp8266-esp12e/
Bli kalau pakai wifi itu kan ga pakai lcd, terus cara nambahin lcd apanya yang diubah & letakjalurnya ditaruh dimana bli
di artikel yang sudah di link di post sudah ada yang pakai wifi. kasikan modul wifi
https://duwiarsana.com/project-iot-esp8266-esp12e/
Bli kalau Project ini cara nambahin lcd buat ngontrol suhu & kelembaban udara, apa yang dirubah bli..
bli mau tanyakalau error “Warning: mysqli::__construct(): (HY000/1045): Access denied for user ‘u4’@’localhost’ (using password: YES) in D:\xampp\htdocs\fileweb\index.php on line 8
Connection failed: Access denied for user ‘u4’@’localhost’ (using password: YES)”
bagaimaba ya bli solusinya?
permisi bli mau tanya Warning: mysqli::__construct(): (HY000/1045): Access denied for user ‘u4’@’localhost’ (using password: YES) in D:\xampp\htdocs\fileweb\index.php on line 8
Connection failed: Access denied for user ‘u4’@’localhost’ (using password: YES)
utk erroor seperti ini bagai mna solusinya?
keren bli, terimakasih ilmunya ๐๐
boleh tanya mas,, skematic dg EAGLE yg spt itu bisa dicetak di CNC engga mas?? kemudian saya terbaca dr blog mas juga; untuk pembuatan skematic dg DIPTRACE, tapi situsnya udah mati ya mas??…. masih punya kah mas software Diptrace-nya Unlimited itu, boleh saya memiliki dg cara apa? makasih informasinya mas….
skematic Eaglenya bisa dicetak pd mesin cnc ya mas?… dan kalau boleh tanya apa masih punya Diptrace Unlimited mas? sebab yg saya dpt di free tersedia yg kecil
diptrace unlimited uda ga punya mas. kalau layout pcb memang bisa dicetak cnc tergantung mesin nya.
bisa dibuat mirror linknya mas?
kalau mau beli komponen2 ini bisa bli, sya mau coba rakit sendiri.
Bang lo bikin termostat sana hygrostat buat netesinntelur gemana ni,..
Pencerahanya,..
file database sql nya mana mas?
bang kalau pemberitahuanya lewat notifikasi android bagaimana ya, tidak di web lagi
Bli saya coba buka lewat xampp kok username/password beda2 ya bli, yang digunakan yang mana bli ? Udah saya coba satu per satu tetep error di username/password. Padahal sudah saya ganti semua
maaf mas agung, file webnya boleh diupload ulang? makasih sblm nya
Maaf mas, Bisa kirim filenya mas
Tipsnya kalau keran mau di ganti dengan atap yang di buka dan tutup otomatis apa bang?
punten mas keempat link ini apa boleh di download lagi ?
tidak bisa di download lagi, butuh banget mas sebagai referensi ta ๐
Mohon upload ulang bli. Soalnya sayang banget kalau filenya gaada buat webnya. Terimakasih banyak ya bli.
bli bisa ditambah dgn sensor hujan gak?
mas linknya web mati tolong butuh L:(