Training Iot di Jakarta

Posted: 13 Desember 2017 in kegiatan

Training. Seru sekali. Malam2 sudah siap2. Alarm jam 1 2x. Agar gk kelolosan. Eh saya bangun pas pak sopir udah di dpn rumah he he. Belum mandi. Langsung cus mandi dan ke Bandara. Ketemu adek bentar bgt. Dapat doorprize xiaomi band 1 yg keluaran awal. Yg dpt pak bruri dikasikan saya lalu saya kasikan adek. Pesawat delay. Samapai sby jam 10. Plg di purwodadi jalan buka tutup perbaikan jembatan. Sampai setengah 2. Oke gitu kira2.

Iklan

Adek Manis

Posted: 10 Desember 2017 in Uncategorized

Catatan perjalanan 9-10 desember 2017. Saya sama ibu ke probolinggo ke acara nikahannya mas deni. Kurang lebih sama lah kyk acara nikahan biasa. Yg menarik ada adek manis dan cantik ini. Raisa namanya. Kalau gk salah denger, anaknya atasannya istrinya mas deni. Dan imut banget. Diajak foto masang wajah innocent gitu, tapi tetep saja manis. Ibu saya paling seneng sama adek kecil, sudah pengen cucu mungkin. Kalau saya bercandain “Ma nopo kerso putu ingkang meniko ?, nggeh pados estrine kirang lebih mirip niki . ” Ma apa mau cucu seperti ini ? Ya cari istinya kurang lebih mirip ini :-). Ya ya… cantik bgt dan imut…. kalau ibu maunya kayak gini sih cari gen nya nih, mungkin limited edition dan pada udah laku semua he he.

Bagaimanakah kombinasi gen yang diperlukan untuk menghasilkan keturunan secantik ini ? Bahasa mudahnya…. cari istri yang cantik juga biar anaknya cantik seperti ibunya :-). Gen yang sehat, kuat, tidak punya riwayat penyakit yang aneh2 dari ibunya kakek nenek. Gen yang cerdas. Ya saya kan dlu meneliti gen 🙂 sekarang cari gen unggulan itu yuk.

Besoknya kami lihat kebun sengon, ternyata banyak yang mati. Pernah saya posting 2x disini.

Weekend seru di Hutan Kota Malabar

Posted: 26 November 2017 in kegiatan

Malabar

Prasasti peresmian Revitalisasi Hutan Kota Malabar oleh PT Amerta Indah Otsuka 

 

Hutan Kota Malabar

Hutan Kota Malabar

Ini video blognya. seru sekali

 

Assalamu’alaikum Wr. Wb.

Wah saya jarang banget jarang banget weekend olah raga. tapi kali ini pengen jogging2 sehat. Pilihan jatuh kepada Hutan Kota Malabar karena Hutan Ini cocok banget buat jogging track. Dingin karena banyak sekali pohon-pohon disana. Oh ya ada videonya juga. tapi saya mau nulis dikit tentang Hutan Kota Malabar ini. Hutan Kota Malabar ini sebelumnya adalah hutan kota yang tidak terawat, karena beberapa fasilitas seperti jalan dan beberapa bagian rusak. Dulu terakhir saya penah kesini waktu SMP waktu itu serem banget suasananya, kesini lihat bentar lalu ngacir pergi, takut ada setannya he he, suasananya menyeramkan waktu itu saya sih masih belum suka naik gunung, jadi kalau kesini seperti ke “dunia lain”. Apalagi ada hamparan bambu / barongan yang kata anak-anak kampung saya dulu tempatnya genderuwo bersarang. Alhasil saya selalu takut kalau ada barongan / jajaran bambu dan membaca do’a-do’a biar gk diganggu genderuwo. ah kenangan masa kecil.

Setelah di Revitalisasi oleh PT Amerta Indah Otsuka  yang memiliki Yayasan Satu Hati Peduli Lingkungan #OtsukaSatuHati, suasananya jauh berbeda dari ingatan masa SMP saya dulu, sekarang selain berfungsi ekologis seperti penghijauan, serapan air, ekosistem burung-burung ( ada banyak suara burung loh di video diatas ), ada beberapa tumbuhan yang menurut saya langka. yaitu bambu kuning, bambu ini dlu waktu saya SD dipercaya sebagai senjata kalau ada ninja. dulu kan ada isu ninja-ninja gitu. ada juga fungsi edukasi dimana ada banyak tagging nama pohon berserta penjelasan fungsinya, jadi kita bisa belajar tentang pohon selain juga sambil jogging. Disana saya gak nemu sampah anorganik karena banyak tong sampah yang membedakan sampah organik – anorganik, tapi kalau sampah daun sih banyak, ada di sekitar pohon, namanya juga hutan… persis… dimana daun-daun jadi kompos alami untuk menyuburkan tanah. Bener-bener kayak di hutan gunung suasananya, terutama suara-suara burung dan hawa dinginnya. fungsi ke 3 adalah kita bisa lari karena ada jogging track di hutan kota malabar, jogging di sini sangat nyaman kita gk kan kepanasan dan udaranya segar sekali karena kita jogging dalam hutan, beda kalau jogging di jalan raya, jogging bentar udah kepanasan.

Peta Hutan Kota Malabar

Peta Hutan Kota Malabar

Tag Jogging track

Tag Jogging track

Kegiatan Sosial Komunitas

Kegiatan Sosial Komunitas

Tagging Pohon

Tagging Pohon

Kolam Resevoir

Kolam Resevoir

Baru tahu ada pohon sogo telik

Baru tahu ada pohon sogo telik

Bambu kuning yang langka

Bambu kuning yang langka

oke kita bahas satu – satu ya. foto diatas peta jogging tracknya. saya mulai lari dari pintu masuk utama, di track ada papan penunnjuk. jadi tahu udah jalan berapa ratus meter. muter-muter 3 kali juga pasti capek he he . Waktu saya kesini ada anak-anak Mahasiwa yang meacam diklat disini. Oh ya karena amplitheter nya agak luas bisa dimanfaatkan untuk kegiatan sosial komunitas, wah jadi banyak sekali ya fungsinya, selain fungsi ekologis, pendidikan, bisa digunakan untuk fungsi sosial. Setelah itu saya jogging – jogging santai. setelah beberapa lama capek juga, tapi enjoy saja. ada suara kumbang nggguuuunnnggg ngguuuunggg kayak di gunung.

Akhirnya setelah lari beberapa ratus meter akhirnya capek juga, lalu saya lanjutin dengan jalan santai lihat-lihat pohon, yang paling saya suka pohon coklat, sayang belum berbuah, kali aja bisa ngemil coklat he he. Saya sebagai warga kota malang ( kabupaten malang sih ) cukup senang dengan adanya hutan kota malabar ini yang telah di Revitalisasi #otsukasatuhati, nanti kalau udah berkeluarga punya anak cucu #ehem…. jalan-jalan kesini saja, gak usah jauh-jauh he he.. nanti bisa tebak-tebakan nama Pohon. hemat biaya #ehh…

Tempatnya bagus, bersih, dan sekarang adalah tanggungjawab bersama warga kota malang untuk tetap menjaga kelestariannya dengan tidak membuang sampah sembarangan di sini, karena sudah disediakan tempat sampah ya. Selamat menikmati week end seru di hutan kota Malabar. Malabar milik kita semua, milik anak cucu. Jaga dan lestarikan ya

Wassa’amu’alaikum Wr. Wb.

 

 


kerja bakti CSR PT Amerta Indah Otsuka bersama warga, koramil, polsek

kerja bakti CSR PT Amerta Indah Otsuka bersama warga, koramil, polsek

hmm lama gk nulis eh, sekarang dengan kemajuan teknologi banyak vlog dan menulis membaca jadi sedikit ditinggalkan karena gk instan. oke lah. biar kekinian setiap tulisan saya kasi vlog deh. kegiatannya bersih2 lingkungan sekitar pabrik, sebenarnya kita rutin ada kegiatan seperti ini kayak ini https://tarecha.wordpress.com/?s=csr. pagi2 cuaca sudah mendung . setelah acara berakhir hujan deras sampai sore. saya kebagian tugas dokumentasi dengan pak angga. pakai gimbal yang baru beli. berat sekali, gk proporsional dengan tubuh saya. pegel juga he he. meski saya sebenarnya gk terlalu ngerti fotografi atau videografi. sukur jepret saja. sebenarnya pengen ikut bersih2 (sombong, kayak kamar sering dibersihkan saja he he ) oke ini vlognya.

dokumentasi pribadi

AIO Adventure ke Coban Jahe Malang

Posted: 26 Oktober 2017 in kegiatan

AIO Adventure 21 Oktober 2017

AIO Adventure 21 Oktober 2017

Assalamu’alaikum Wr. Wb.

Wah lama gk nulis. mau nulis kegiatan AIO Adventure, sebelumnya ini bernama Pecinta Alam AIO, namum biar jangkauannya lebih luas dan lebih umum berubah jadi nama AIO Adventure agar pesertanya lebih banyak pesertanya bukan cuman yang suka “Naik Gunung” saja. Jadi ceritanya karena saat 2016 saya sudah jadi pengurus / ketua AIO Adventure. tahun 2017 saya mengajukan regenerasi biar yang pegang bukan saya, capek juga karena di komplain keluarga terutama ibu karena saya jalan2 terus gk ada waktu di rumah,. okelah… tahun 2017 regenerasi dan pengganti saya mas Tam-tam. Setelah 1 sesi mas tam-tam ternyata resign dan pindah ke PLN ( ah gk ajak2 nih he he ). akhirnya gk ada orang lagi yang cocok buat AIO Adventure buat jadi “ketua” / lebih tepatnya fasilitator karena melayani rekan2 yang mau jalan2. ya sebenarnya memang program perusahaan biar karyawan tidak jenuh dengan rutinitas kerja dan membangun kekompakan di luar rutinitas kerja. berikut yang lain https://tarecha.wordpress.com/?s=adventure  . Akhirnya saya lagi yang jadi ketua, ah amanah ya udah lah kerjakan saja. karena keterbatasan yang kira2 bisa menghandle ini. oh ya tinggal 1 kali lagi AIO Adventure untuk Group 2 ( 4 Group 3 Shift ) biar semua kebagian AIO Adventure. untuk kali ini cukup menantang kita ke Coban Jahe dan ada Tubingnya. seru banget.

Setelah proses diskusi panjang alhamdulillah Group 4 setuju dengan arahan saya. alasannya Coban Jahe Dekat, kalau jauh2 ke pantai makan waktu di perjalanan. Eh waktu hari H saya sempat mau gk ikut karena sorenya ada acara, karena kurang enak dengan teman2 seakan2 meninggalkan tanggungjawab ya udah lah ikut tapi dengan batas waktu sampai Jam 3 sore sudah harus pulang, klo teman2 masih mau main2 silahkan tapi saya pulang naik angkot saja. karena malamnya mau ke Jogja, siap2 aja belum he he. Disini Ada Dept Head QC yang ikut, alhamdulillah tidak nambah biaya sewa mobil dan bensin sehingga kita tidak perlu iuran, dana dari pabrik semua cukup ternyata. bahkan buat makan bakso. Coban Jahe ini cukup dekat dan tidak melelahkan, yang bikin seru adalah ada river tubingnya. Alhamdulillah amanah sudah saya tunaikan. Oh ya waktu H-1 saya udah bilang ke teman2 SMK saya biar ikut datang ke lokasi . sekalian tubing bareng2. andika bawa pesawat2 an yang dikasi kamera go pro . sayang sekali hilang kendali dan hancur nabrak batu, untung kameranya tidak ikut hanyut di sungai

ini foto2 nya ya. dan di bagian terakhir ada videonya seru sekali terutama menuruni semacam seluncuran gitu.


Assalamu’alaikum Wr. Wb.

Diagram Sync Data ke server slave

Diagram Sync Data ke server slave

alamat server slave di ralat di http://appscenter.aio.co.id/weatherlogger/

alamat master logger di http://weatherlogger.ap.ngrok.io/

Oke saya lanjutkan. remind lagi ini adalah seri berantai dari posting berikut ya

  1. https://tarecha.wordpress.com/2015/10/26/project-raspberry-pi/
  2. https://tarecha.wordpress.com/2017/06/05/project-weather-logger-part-1/
  3. https://tarecha.wordpress.com/2017/06/26/project-weather-logger-part-2-tambahan-sensor-tekanan-udara/
  4. https://tarecha.wordpress.com/2017/07/01/project-weather-logger-part-3-komunikasi-udp/
  5. https://tarecha.wordpress.com/2017/07/15/project-weather-logger-part-4-simpan-di-server-mysql/
  6. https://tarecha.wordpress.com/2017/07/24/project-weather-logger-part-5-view-data-dan-export/
  7. https://tarecha.wordpress.com/2017/07/25/project-weather-logger-part-6-plot-graphic/
  8. https://tarecha.wordpress.com/2017/07/29/project-weather-logger-part-7-ngrok-http-tunneling/
  9. https://tarecha.wordpress.com/2017/08/27/project-weather-logger-part-8-ganti-sensor-bme280/

 

sepertinya ini part terahir ya. selanjutnya cman tambahan2 fitur saja mungkin, seperti mbandingkan suhu malang sama pasuruan atau membandingkan suhu dalam 3 hari terakhir. cman improvement di PHP nya saja.

Big Picture System

Big Picture System

tentu masih ingat gambar ini kan di part sebelumnya. ya tujuan ada synconize data adalah mengatasi ketebatasan koneksi internet yang baru bisa jalan saat tehtering internet melalui smartphone dilakukan. dan ketika master logger raspberry pi tidak konek internet sehingga tidak bisa diakses langsung menggunakan ngrok http tunelling. user bisa akses ke slave server. tentu kombinasinya itu multi site, jadi berapapun master logger raspberry pi / windows yang ada bisa di sync datanya ke slave server. slave server ini pun bisa lebih dari 1, bisa 2, bisa 3. tapi sih cukup 1 saja saya rasa sudah lebih dari cukup

Jika Anda kritis dengan skema yang saya buat kira2 akan menanyakan hal seperti ini

  1. Mengapa menggunakan port 80 baik pada socket untuk komunikasi dengan node mcu maupun save datanya menggunakan php yang juga jalan di port 80 ?
  2. mengapa simpan datanya tidak langsung pakai mysql yang nembak langsung ke database, lebih efisien daripada masih harus bikin program php nya

Ok saya akan coba jawab

  1. Port 80 adalah port open yang sangat jarang sekali oleh administrator jaringan di blok ( klo di blok gk bisa buka kompas youtube ataupun gmail ) jadi karena “port yang pasti dibuka” maka saya gunakan port 80 untuk komunikasi nya. meski agak aneh kirim data UDP ke node mcu pakai port 80.
  2. Jarang sekali ada web hosting yang membuka port 3306 untuk akses MySQL secara langsung, saya berfikir kedepan gimana kalau saya taruh di webhosting yang murah atau bahkan webhosting gratisan ? setahu saya mereka gk buka port 3306 nya. Jadi saya pakai program PHP untuk save datanya karena dia jalan di port 80 yang pasti open dan bisa ditaruh di webhosting shared biasa. contohnya slave server http://appscenter.aio.co.id/weatherlogger/ s    ini hanya diopen port 80 nya saja karena ini adalah webserver yang bisa diakses dari luar :-). soal keamanan juga. sebenarnya saya numpang ke server saya sendiri he he . tapi insyaAllah aman kok.

 

kode lengkapnya saya upload di https://github.com/tarecha/weatherlogger karena saya gk bisa pakai git, biasanya pakai svn tortoise, ah ribet jadi diupload biasa pakai file .zip

file sync.py

import socket
import sys
import datetime
import time
import urllib2
import urllib

 

urlsourcegetsync = "http://localhost/getsync.php"
urlsourceupdatestatus = "http://localhost/updatestatussync.php"
urldestinationinsertdata = "http://isikan alamat slave server/insertdata.php"
key = "12345"
updateflag = 'sync1'
limit = '20'
sleeptime = 1
sleeptimeerror = 5
i=0
while 1:
         
        try :
                print '# '+str(i)
                datagetupdate={}
                datagetupdate['k']= key
                datagetupdate['sync'] = updateflag
                datagetupdate['limit'] = limit
                dataformaturl = urllib.urlencode(datagetupdate)                    
                requesttoserver = urllib2.urlopen(urlsourcegetsync,dataformaturl,timeout=5)
                datarowall=requesttoserver.read()
                             
                if(datarowall[0]!='i'): #jika kembalian ada i nya maka gagal kalau tidak maka lanjut
                        datarow = datarowall.split("#")
                        datarow.pop() #hapus last row karena isinya kosong (/r/n/r/n) new line                        
                        print 'ada data baru'
                        #print datarowall
                        #print datarowall
                        #print datarow
                        for valuetosync in datarow:
                                
                                datasync={}
                                datasync=valuetosync.split(",")
                                data={}
                                data['k']= key
                                data['iddata'] = datasync[0]
                                data['idnode'] = datasync[1]
                                data['hum'] = datasync[2]
                                data['temp'] = datasync[3]
                                data['press'] =  datasync[4]                                
                                data['waktu'] = datasync[5]                                
                                if updateflag=='sync1':
                                        data['sync1'] = '1'
                                else:
                                        data['sync1'] = '0'
                                if updateflag=='sync2':
                                        data['sync2'] = '1'
                                else:
                                        data['sync2'] = '0'
                                #print data
                                dataformaturl = urllib.urlencode(data)                                
                                requesttoserver = urllib2.urlopen(urldestinationinsertdata,dataformaturl,timeout=5)               
                                
                                infosavephp = requesttoserver.read().split("#")
                                time.sleep(sleeptime) 
                                
                                #print '=========================================================================='  
                                if(infosavephp[0]=='i')and(infosavephp[1]=='Berhasil Insert'):
                                        print 'Informasi : Sync ke Slave Server : ID '+infosavephp[2]
                                        #updatestatus
                                        dataupdatestatus={}
                                        dataupdatestatus['k']=key
                                        dataupdatestatus['iddata']=infosavephp[2]
                                        dataupdatestatus['sync']=updateflag
                                        dataformaturl = urllib.urlencode(dataupdatestatus)
                                        requesttoserver = urllib2.urlopen(urlsourceupdatestatus,dataformaturl,timeout=5)
                                        infosavephp = requesttoserver.read().split("#")                                       
                                        print 'Informasi : '+infosavephp[1]+ ' ke master logger'
                                else:
                                        print 'update status sync gagal '
                                        print infosavephp
                                
                                
                                     
                                        
                else: #kembalian getsync.php
                        print 'tidak ada data baru'
                        
                time.sleep(sleeptime)                        
                 
        except urllib2.HTTPError:
                print 'Tidak konek server untuk sync'
                sleep(sleeptimeerror) 
        except urllib2.URLError:
                print 'Tidak konek server untuk sync'
                time.sleep(sleeptimeerror) 
                
        except socket.error:
                print 'Tidak konek node'
                #tidak pernah exit karena kalau tidak konek dilewati dan ngulang
                #5 detik kemudian
                #sys.exit()
                time.sleep(sleeptimeerror) 
        except Exception as e:
                print 'Error Message '+ str(e)
                print('Error on line {}'.format(sys.exc_info()[-1].tb_lineno), type(e).__name__, e)
                print "General Error Unexpected error:", sys.exc_info()[0]
                time.sleep(sleeptimeerror) 
        i+=1
        
       


Sync Data

Sync Data

 

ini dari cara kerjanya adalah .

selama koneksi ada maka dia akan sync data, ketika tidak ada ya tetep jalan cman gk sync data karena gk konek. ketika ada koneksi maka list data yang belum di sync kana disync secara berurutan.

sekian kira2.

nanti akan saya buatkan resume dalam bahasa inggris sekalian di ikutkan dalam project hackster.io.

 

Terima Kasih

Wassalamu’alikum Wr. Wb.


Assalamu’alaikum Wr. Wb.

Oke saya lanjutkan. remind lagi ini adalah seri berantai dari posting berikut ya

  1. https://tarecha.wordpress.com/2015/10/26/project-raspberry-pi/
  2. https://tarecha.wordpress.com/2017/06/05/project-weather-logger-part-1/
  3. https://tarecha.wordpress.com/2017/06/26/project-weather-logger-part-2-tambahan-sensor-tekanan-udara/
  4. https://tarecha.wordpress.com/2017/07/01/project-weather-logger-part-3-komunikasi-udp/
  5. https://tarecha.wordpress.com/2017/07/15/project-weather-logger-part-4-simpan-di-server-mysql/
  6. https://tarecha.wordpress.com/2017/07/24/project-weather-logger-part-5-view-data-dan-export/
  7. https://tarecha.wordpress.com/2017/07/25/project-weather-logger-part-6-plot-graphic/
  8. https://tarecha.wordpress.com/2017/07/29/project-weather-logger-part-7-ngrok-http-tunneling/

2017-08-27 11_34_15-untitled - Paint

setelah beberapa saat humidity dari sensor DHT drop menjadi 1.4 %. lalu saya perbaiki dengan di solder lagi, mungkin karena sensornya kena panas jadi dia kembali normal lagi. setelah beberapa saat drop lagi. saya yakin ini bukan soal softwarenya, dan setelah cari-cari memang sensor DHT22 ini sensor murah, jadi ya gak bisa perform lama.salah satu keterangan di forum berikut . https://arduino.stackexchange.com/questions/17237/humidity-values-returned-by-dht22-sensors-failing-after-some-time

jadi saya beli lagi sensor BME280 dan node mcu 1 unit lagi. dan mengganti seluruh codingnya jadi 3 data saja, humidity, temperature, dan pressure. tinggal edit2 sedikit sih.

bme 280

kurang lebih mirip sensor bmp 280, alamatnya juga diganti, dibrary dari adafruit librarynya bisa didownload dari sini https://learn.adafruit.com/adafruit-bme280-humidity-barometric-pressure-temperature-sensor-breakout/wiring-and-test 2017-08-27 11_42_50-D__arduino-1.8.2-windows_arduino-1.8.2-windows_arduino-1.8.2_libraries_Adafruit_

#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h>
#include <ESP8266WiFi.h>
#include <WiFiUdp.h>

Adafruit_BME280 bme; // I2C

WiFiUDP Udp;
byte localUdpPort = 80;  // local port to listen on
char incomingPacket[255];  // buffer for incoming packets
char  replyPacket[255];

//untuk server
const char* ssid = "tarecha";
const byte buzzerPin = D8;
const char* password = "12345678a";
const String aHostname = "N1";
String dataSensor;
String infoNode;
unsigned long delayKirimDataSensor = 0;

void setup()
{
  pinMode(LED_BUILTIN, OUTPUT);
  pinMode(buzzerPin, OUTPUT);
  Serial.begin(9600);

  Wire.begin(D2, D1); //Sensor bme
  WiFi.begin(ssid, password);
  if (!bme.begin()) {
    Serial.println(F("Could not find a valid bme280 sensor, check wiring!"));
    while (1);
  }
  //bagian setup wifi
  Serial.printf("Connecting to %s ", ssid);
  WiFi.mode(WIFI_STA);
  WiFi.hostname(aHostname);
  while (WiFi.status() != WL_CONNECTED)
  {
    delay(500);
    Serial.print(".");

  }
  Serial.println(" connected");
  Udp.begin(localUdpPort);
  infoNode = (String)"Restart reason : " + ESP.getResetReason().c_str() + "\n MAC : " + WiFi.macAddress().c_str() + "\n Hostname : " + WiFi.hostname().c_str() + "\n Signal Stringth : " + WiFi.RSSI() +
             "\n Local IP : " + WiFi.localIP().toString().c_str() + "\n Port : " + localUdpPort + "\n CPU Freq : " + String(ESP.getCpuFreqMHz()) + " MHz\n Sketch Size : " + ESP.getSketchSize()
             + "\n Free Space Sketch Size : " + ESP.getFreeSketchSpace();

  Serial.println(infoNode);

  buzzerlampu();
}

void buzzerlampu()
{
  digitalWrite(LED_BUILTIN, LOW);
  digitalWrite(buzzerPin, HIGH);
  delay(500);
  digitalWrite(LED_BUILTIN, HIGH);
  digitalWrite(buzzerPin, LOW);
  delay(500);
  digitalWrite(LED_BUILTIN, LOW);
  digitalWrite(buzzerPin, HIGH);
  delay(500);
  digitalWrite(LED_BUILTIN, HIGH);
  digitalWrite(buzzerPin, LOW);
  delay(500);

}

void lampu()
{
   digitalWrite(LED_BUILTIN, LOW);
   delay(500);
   digitalWrite(LED_BUILTIN, HIGH);
   delay(5); 

}

void loop()
{

  if (delayKirimDataSensor > 200000)
  {
    UpdateSensor();
    Serial.println(dataSensor);
    delayKirimDataSensor = 0;
  }
  delayKirimDataSensor++;
  requestHandler();

}

void UpdateSensor()
{

  dataSensor = (String)aHostname + "," + bme.readHumidity()+ "," + bme.readTemperature() + "," + bme.readPressure()/100.0F;
}

void requestHandler()
{
  int packetSize = Udp.parsePacket();

  if (packetSize)
  {
    // receive incoming UDP packets
    Serial.printf("Received %d bytes from %s, port %d\n", packetSize, Udp.remoteIP().toString().c_str(), Udp.remotePort());
    int len = Udp.read(incomingPacket, 255);
    if (len > 0)
    {
       incomingPacket[len] = 0;
    }
    Serial.printf("UDP packet contents: %s\n", incomingPacket);
    if (incomingPacket[0] == 'd') //get data
    {
      dataSensor.toCharArray(replyPacket, 255);
    }
    else if (incomingPacket[0] == 'i') //get info sensor
    {
      infoNode.toCharArray(replyPacket, 255);
    }
    else if (incomingPacket[0] == 'r') //perintah restart
    {
      String perintah = (String)"Terima udp perintah restart dari "+ Udp.remoteIP().toString().c_str();
      perintah.toCharArray(replyPacket, 255);
      Serial.println(perintah);
      Udp.beginPacket(Udp.remoteIP(), Udp.remotePort());
      Udp.write(replyPacket);
      Udp.endPacket();
      digitalWrite(buzzerPin, HIGH);
      digitalWrite(LED_BUILTIN, LOW);
      delay(10000);
      ESP.restart();
    }
    else
    {
      String lain = "masuk else";
      lain.toCharArray(replyPacket, 255);
    }

    Udp.beginPacket(Udp.remoteIP(), Udp.remotePort());
    Udp.write(replyPacket);
    Udp.endPacket();
    Serial.printf("isi reply packet %s\n", replyPacket);
    lampu(); //nyalakan lampu biru setiap kirim data

  }

}

kode lainnya tinggal penyesuaian saja dihilangkan temperature dht nya karena gk pakai sensor tersebut.

hasilnya sebagai berikut. nanti code terakhirnya saya svn kan saja, saya gk bisa pakai git he he.

dan jadinya seperti ini jadi 3 data saja. schematiknya tetap sama. saya gk jadi pakai yang baru. yang node sudah jadi lama saya upload ulang dan ganti sensor bme 280 saja. sedangkan node satunya mau saya pakai remote reboot saja untuk ikut kompetisi di hackster.io

2017-08-27 11_48_51-VNC Viewer

 

oh ya soal sync data ke slave server saya belum bisa. masih gagal ketika koneksi putus dan ada lagi langsung  lanjutkan sync data. jadi nanti saja saya posting kalau sudah berhasil. tinggal sync data doank sih. klo udah ya selesai. klo mau ya bisa ditambahkan perbandingan suhu di kota A dan di kota B dalam bentuk grafik. biar tahu perbandingannya.

oke udah ya

Wassabamu’alaikum Wr. Wb.