Sabtu, 30 September 2017

TelegramBOT esp8266 #Tutorial

Sebetulnya sudah cukup lama mendengar tentang pembuatan bot telegram, tapi saya pikir sulit, makanya belum mencoba. Pas ada waktu luang, saya googling dan mencoba bikin berdasarkan beberapa informasi yang saya peroleh.
Bikin akun telegram:
Kebetulan sudah lama punya. Paling mudah adalah dengan web disini, ikuti petunjuknya.
Bikin BOT, caranya ngobrol dengan botfather, stelah terkoneksi dengan akun botfather



Klik start, maka akan keluar help instruksi seperti di gambar bawah.



Ketk /newbot, maka akan diminta input nama bot yang kita inginkan, misal kita buat nama testtelegram, kemudian akan diminta untuk membuat user_name dan harus berakhiran kata bot, misal testtelegramBot atau testtelegram_bot, sebaiknya user id adalah nama ditambah bot biar mudah saja.

#jika ditolak karena nama/userID sudah ada yang pakai, ganti dengan yang lain, karena sifatnya unique

Sesudah itu kita akan mendapat balasan dari botfather:

Tulisan warna merah yang saya beri tanda panah adalah TOKEN.

Setelah itu aktifkan bot kita dengan cara: search userID yang tadi berhasil kita buat diawali dengan @, setelah ketemu di klik, dan klik START. Jika semua oke, berarti telegramBot kita sudah aktif, selanjutnya kita buat alat/hardware botnya.

esp8266
Yang sudah saya coba adalah esp8266 V01, V7 dan nodeMCU. Semuanya berjalan dengan baik.

Saya menggunakan Arduino IDE 1.6.5 R5, tapi sepertinya versi lainpun tidak masalah.
Cara install core esp8266 di IDE Arduino bisa dilihat disini
Untuk library telegramBot  bisa di download disini silahkan install seperti biasa.
Setelah semuanya terinstall, dan hardware terpasang, maka tinggal mencoba dengan example yang sudah tersedia.









Hanya perlu mengganti tiga hal saja: SSID + password sesuai dengan akses point kita, dan TOKEN yang sudah kita dapat dari botfather.
Sketch diatas (example) adalah EchoBot, cara mencobanya adalah dengan mengirim kata atau kalimat ke bot tersebut, maka bot akan mengirimkan kembali apa yang kita kirim tadi. Jika itu sudah berhasil, selanjutnya terserah kita mau dibikin apa.

Mungkin agak sulit memahami tulisan saya, mohon maaf karena saya bukan seorang penulis.
Jika ada pertanyaan silahkan PM/inbox ke Facebook Fan Page saya
Atau mention ke twitter @bambangsud atau Instagram @bambangsud

if( mencoba == gagal){
  tanya_saya_di-FB(); 
}
else if( mencoba == sukses){
  facebook.println(" terimakasih");
  instagram@bambangsud.println("terima kasih");
}

Bandung  1 Oktober 2017

Salam










Rabu, 27 September 2017

Kontrol Pompa Air

   
    Seperti yang saya janjikan sebelumnya, akan saya posting untuk membuat sendiri kontrol pompa air yang lebih handal, anti "tek-tok". Kalau sebelumnya saya coba gunakan yang sudah jadi (buatan pabrik) ternyata hanya bertahan sekira satu bulan.

 


Bisa jadi penyebabnya adalah pemasangannya vertikal sehingga mengganggu saklar mekanik yang ada di dalamnya, dan itu perlu dibuktikan.
Berikutnya saya coba bikin dengan memanfaatkan flow sensor + arduino uno dengan tambahan solidstate relay dan beberapa asesories lain.
Agar lebih murah, bisa juga arduino uno diganti dengan arduino pro mini.


Video diatas adalah percobaan untuk on/off beban berdasarkan flow air dalam pipa.


Alat sudah berfungsi sudah lebih dari Sebulan yang lalu.


Koneksi sensor



Untuk men drive pompa, bisa digunakan relay modul semacam ini, trigger untuk modul relay dari PIN D7 Arduino.


Di project ini, saya gunakan solidstate relay yang terdiri dari TRIAC BT138 dan MOC3012

Bagi yang mau mencoba, supaya lebih mudah gunakan arduino uno, untuk shieldnya bisa dibikin sendiri. Gambar PCB nya silahkan di download disini.



Inti dari programnya/sketch adalah seperti dibawah ini:
/************/
volatile int NbTopsFan; //measuring the rising edges of the signal
int Calc;
int hallsensor = 2;    //The pin location of the sensor
#define POMPA 7
int OnOff = 0;
void rpm ()     //This is the function that the interupt calls
{
  NbTopsFan++;  //This function measures the rising and falling edge of th  hall effect sensors signal
}

void setup() //
{
  pinMode(hallsensor, INPUT); //initializes digital pin 2 as an input
  pinMode(POMPA, OUTPUT);

  Serial.begin(9600); //This is the setup function where the serial port is initialised,
  attachInterrupt(0, rpm, RISING); //and the interrupt is attached
}

void loop ()
{
  int treshold = 20;
  if (NbTopsFan > treshold && OnOff == 0) {
    OnOff = 1;
    digitalWrite(POMPA, OnOff);
    Serial.println("Pompa ON");
  }
  else if (OnOff == 1 && NbTopsFan < treshold ) {
    OnOff = 0;
    digitalWrite(POMPA, OnOff );
    Serial.println("Pompa OFF");
  }
  Serial.print("Pulse: ");
  Serial.println(NbTopsFan);
  NbTopsFan = 0;      //Set NbTops to 0 ready for calculations
  sei();            //Enables interrupts
  delay (1000);      //Wait 1 second
  cli();            //Disable interrupts
  Calc = (NbTopsFan * 60 / 7.5); //(Pulse frequency x 60) / 7.5Q, = flow ratein L / hour
  Serial.print (Calc, DEC); //Prints the number calculated above
  Serial.print (" L/hour\r\n"); //Prints "L/hour" and returns a  new line
}
/*********/

Sketch silahkan dirubah sesuai selera dan kebutuhan.
Sengaja saya tidak muat secara lengkap dengan tujuan untuk memancing agar yang akan mencoba tidak copy/paste, tapi mau belajar coding dan membiasakan diri menggunakan logika. Karena dari program diatas masih harus ditambah beberapa trik agar berjalan sempurna. Tapi tidak perlu khawatir, jika ada pertanyaan silahkan PM/inbox, pasti akan saya jawab

Untuk pengembangan alat ini kedepan, saya akan pergunakan esp8266 dan telegramBot, atau WSN (arduino + nRF24L01, atau mungkin low power (& low cost) tranceiver CC1101 supaya bisa terkoneksi dengan smarHome.

Selamat mencoba.

Bandung, 27 September 2017

twitter @bambangsud
IG: @bambangsud
Beberapa posting project sebelumnya ada di wordpress.com
Jika ada pertanyaan atau yang perlu didiskusikan, silahkan PM di FB_messanger

Catatan:
Tulisan ini akan masih terus saya update berdasarkan masukan dan pertanyaan yang saya terima dari teman2.
Jadi sering2 ditengok :)