Bagaimana mendapatkan website gratis

Sebenarnya banyak sekali situs di internet yang menawarkan website hosting gratis. Salah satunya adalah cambs.net. Untuk mendapatkan website di layanan cambs.net tersebut, Anda hanya perlu mengikuti sebuah forum tertentu, salah satunya adalah forum amicus18. Untuk lebih jelasnya, Anda dapat mengikuti langkah berikut:
  • Buka situs forum amicus18 di http://www.myamicus.co.uk/forum.php.
  • Daftarkan diri atau Register untuk mendapatkan akses masuk di forum ini.
  • Buka forum, dan pilih post pada kolom "Admin Announcements" yang bertuliskan FREE web site hosting for all.
  • Di dalam tulisan pada post tersebut, klik tulisan request a website , maka muncul sebuah form Request yang dialamatkan di http://www.cambs.net/Request-Free-Site.php
  • Isi form tersebut dan klik Send.  Tunggu hingga ada balasan yang dikirim ke email yang Anda telah daftarkan sebelumnya.

Jika Anda beruntung, Anda akan mendapat website hosting yang "oke". Selamat mencoba.

5. Aktifkan trigger peringatan ke email dan sms HP melalui Twitter

Setelah Anda berhasil mengirimkan data dari Processing ke Lokasi Feed di Pachube, maka langkah selanjutnya, mengambil data dari Pachube untuk men-trigger peringatan ke email kita atau ke HP kita melalui Twitter. Sekalipun sebenarnya ada fasilitas Output Pachube berupa "SMS Alert", namun fasilitas ini masih terbatas karena belum didukung sepenuhnya oleh layanan telepon seluler di Indonesia.

Untuk melihat Input dan Output apa saja yang disediakan oleh Pachube, Anda bisa melihatnya dengan meng-klik pachube.apps yang berada di bagian pojok kiri atas pada halaman Feed. Input berarti mengirimkan data ke Feed Pachube, sedangkan Output berarti menggunakan data dari Feed Pachube untuk aplikasi yang lain.

Untuk mengaktifkan trigger peringatan, berikut langkah-langkahnya (Catatan: untuk informasi yang lebih lengkap mengenai pembuatan trigger ini, Anda bisa melihatnya di alamat ini: http://community.pachube.com/triggers

  1. Pilih datastream yang nilainya akan dgunakan sebagai trigger. Sebagai contoh saya memilih datastream Dayalistrik.
  2. Klik pada tulisan embed, history, trggers, etc di bawah grafik datastream tersebut, maka sebuah kotak panel di bawah grafik akan terbuka, seperti terlihat pada gambar berikut:
   
  1. Salin kode PHP kirimemail berikut ini ke Notpead, dan simpan dengan nama kirimemail.php. Jangan lupa untuk mengganti tulisan ALAMAT EMAIL ANDA dengan alamat email yang Anda ingin kirim peringatan.
<?php
$trigger = stripslashes($_POST["body"]);
$json = json_decode($trigger);
$environment_id = $json->{'environment'}->{'id'};
$datastream_id = $json->{'triggering_datastream'}->{'id'};
$value = $json->{'triggering_datastream'}->{'value'}->{'value'};
$timestamp = $json->{'timestamp'};
// Pesan kita
$message = "Pemakaian daya listrik = $value Watt/milidetik, ";
$message .= " pada waktu $timestamp.\n";
$message .= "Ingat hemat listrik, kurangi pemakaian! kwhmeterku";
$message = wordwrap($message, 70);
// kirim email
if ( mail("ALAMAT EMAIL ANDA", "Listrikku", $message) )
{
echo("email terkirim. \n\n $message");
}
else
{
echo("ada masalah pengiriman. \n\n $message");
}   
?>

  1. Ulangi untuk kode PHP kirimtweet berikut ini, dan simpan dengan nama kirimtweet.php. Jangan lupa untuk mengganti tulisan NAMA AKUN TWITTER ANDA dan PASSWORD AKUN TWITTER ANDA. Untuk bisa menggantinya, Anda harus sudah punya akun Twitter. Apabila belum punya, Anda bisa membuatnya di alamat: http://twitter.com/
<?php 
$twitterName = 'NAMA AKUN TWITTER ANDA';
$twitterPassword = 'PASSWORD AKUN TWITTER ANDA';
$trigger = stripslashes($_POST["body"]);
$json = json_decode($trigger);
$environment_id = $json->{'environment'}->{'id'};
$datastream_id = $json->{'triggering_datastream'}->{'id'};
$value = $json->{'triggering_datastream'}->{'value'}->{'value'};
$timestamp = $json->{'timestamp'};
// Pesan kita
$message = "Pemakaian daya listrik = $value Watt/milidetik,";
$message .= " pada waktu $timestamp.\n";
$message .= "Ingat hemat listrik, kurangi pemakaian!";
$message = wordwrap($message, 70);
// Update data
$ch=curl_init();
curl_setopt($ch, CURLOPT_URL,"http://api.supertweet.net/1/statuses/update.xml");
curl_setopt($ch, CURLOPT_USERPWD, "$twitterName:$twitterPassword"); 
curl_setopt($ch, CURLOPT_POSTFIELDS, "status=$message");
curl_setopt($ch, CURLOPT_POST, 1);
$result = curl_exec($ch);
curl_close ($ch);
if ($result)
            {
            echo "twitter di-update";
            }
else
            {
            echo "tidak ada respon dari twitter";
            }
?>

  1. Buat webhosting, salah satu caranya, klik di sini.
  2. Upload atau taruh file kirimemail.php dan kirimtweet.php di folder public_html pada webhosting yang telah dibuat.Gunakan fasilitas WebDisk yang disediakan oleh layanan webhosting tersebut, sehingga proses upload semudah memindahkan file-file di Windows Explorer.

  1. Isi kotak panel pada kolom URL di bawah Add Trigger tulisan: http://webhostingyangAndabuat/kirimemail.php dengan kondisi semisal is>5000. Kemudian klik create.Maka Anda sudah berhasil mengaktifkan trigger peringatan ke email Anda.
  2. Ulangi langkah di atas,  isi kotak panel pada kolom URL di bawah Add Trigger tulisan: http://webhostingyangAndabuat/kirimtweet.php dengan kondisi semisal is>5000. Kemudian klik create.Maka Anda sudah berhasil mengaktifkan trigger peringatan ke  Twitter Anda.

 Catatan:
-         Untuk menguji apakah trigger di atas benar-benar dapat mengirimkan email dan men-tweet, klik tombol debug. Kemudian buka email dan akun Twitter Anda dan amati apakah ada pesan yang dikirim dari Pachube atau tidak.

-         Untuk email, Pachube menggunakan akun email nobody@buff.boxsecured.com. Apabila tidak terlihat di folder Inbox pada email Anda, cobalah buka di folder Spam.

-         Untuk Twitter, berhubung sejak Agustus 2010 ini, otentikasinya berubah dari Basic Auth menjadi Oauth, maka kode program pada pengiriman Twitter, tidak ditujukan langsung ke Twitter, tetapi melalui Supertweet, yang membantu mengubah kode program Basic Auth kita menjadi Oauth, dan meneruskannya ke Twitter. Untuk menggunakan fasilitas Supertweet ini, hanya dibutuhkan 2 langkah saja, yaitu:
1.      Daftarkan atau Sign Up akun twitter Anda ke www.supertweet.net: Klik Sign in with Twitter, dan masukkan username dan password akun twitter Anda, dan kemudian klik Allow.
2.      Maka akan terbuka form Access Credential seperti gambar berikut:


Klik Activate, maka akan muncul form permintaan password untuk Basic Auth. Isi password tersebut, maka sekarang Supertweet siap bekerja meneruskan trigger peringatan ke akun Twitter Anda.

-                  Untuk mengaktifkan layanan sms Twitter, ikuti 5 langkah berikut ini:
1.      Buat akun Twitter lagi yang baru.
2.      Di akun Twitter yang baru, Follow akun Twitter Anda yang pertama.
3.      Aktifkan seting Text Messaging atau Mobile Phone pada akun Twitter yang baru
4.      Klik pada halaman Following, klik nama akun Twitter Anda yang pertama hingga terbuka profil dari akun tersebut, kemudian klik icon phone hingga berwarna hijau, seperti terlihat pada gambar berikut:


5.      Terakhir adalah seting pada hp.
§         Untuk kartu Telkomsel, klik disini.
§         Untuk kartu Indosat, klik disini.
§         Untuk kartu Axis, klik disini.
§         Untuk kartu 3, klik disini.
§         Untuk kartu Esia, klik disini
§         Untuk kartu XL, klik disini

4. Kirim datanya ke Pachube dengan bantuan Processing

Setelah Anda mendapatkan Lokasi Feed dan API-key dari Pachube, maka langkah berikutnya, kirim data sensor menggunakan Processing. Jangan lupa untuk menghubungkan Arduino ke komputer sebelum menjalankan Processing.

Berikut program Processing untuk mengirimkan data ke Lokasi Feed di Pachube:
import processing.serial.*;    
Serial myPort;                 
import eeml.*;
float myValue0;
float myValue1;
float lastUpdate;
DataOut dOut;
void setup() {
  size(200,200);
  println(Serial.list());
  myPort = new Serial(this, Serial.list()[1], 9600);
  myPort.bufferUntil('\n');
  dOut = new DataOut(this, "LOKASI FEED PACHUBE", "API-KEY");
  dOut.addData(0,"Dayalistrik");
  dOut.addData(1,"KWHmeter");
}
void draw() {
   if ((millis() - lastUpdate) > 10000){
        println("ready to PUT: ");
        dOut.update(0, myValue0);
        dOut.update(1, myValue1);
        int response = dOut.updatePachube();
        println(response);
        lastUpdate = millis();
    }
}
void serialEvent(Serial myPort) {
  String myString = myPort.readStringUntil('\n');
  if (myString != null) {
    myString = trim(myString);
    int sensors[] = int(split(myString, ','));
    for (int sensorNum = 0; sensorNum < sensors.length; sensorNum++) {
      print("Sensor " + sensorNum + ": " + sensors[sensorNum] + "\t");
    }
    println();
        if (sensors.length > 1) {
        myValue0 = sensors[0];
        myValue1 = sensors[1];
        }
  }
}

Salin program di atas, dan isi Lokasi Feed dan API-key sesuai dengan yang diberikan oleh Pachube. Jalankan Processing. Apabila berhasil, maka akan tampak data sensor ditampilkan pada jendela pesan (message window), di bawah program seperti berikut:


Catatan: apabila data sensor belum tampak pada jendela pesan, maka periksa sambungan Arduino dengan komputer dan saluran yang digunakan. Anda dapat melihat saluran yang digunakan, dari daftar yang muncul pada jendela pesan, pada saat Processing pertama kali dijalankan, yang terlihat seperti gambar berikut:


Karena saya menggunakan saluran COM7, di mana dalam daftar tertulis kode 0 untuk COM1 dan kode 1 untuk COM7, maka dalam instruksi myPort = new Serial(this, Serial.list()[1], 9600); saya menggunakan kode 1. Ubahlah kode 1 tersebut sesuai dengan kode untuk saluran COM yang Anda gunakan, maka seharusnya Processing sudah bisa menampilkan data sensor di jendela pesan

Langkah terakhir adalah membuka halaman Feed Pachube kembali. Maka akan tampak informasi bahwa status data telah ter-update dan kondisinya saat ini adalah live. Perhatikan juga di bagian bawah halaman Feed, tampak kedua data sensor, yaitu datastream "Dayalistrik" dan "KWHmeter" secara otomatis ditampilkan dalam bentuk grafik beserta nilai angkanya, seperti gambar berikut:



3. Buat "feed" di Pachube

Feed pada Pachube dibedakan dalam 2 jenis, yaitu Automatic dan Manual.
Automatic apabila Pachube yang aktif mengambil data dari alamat web atau ip address  yang kita sediakan. Sedangkan Manual apabila Pachube hanya menerima data, di mana aplikasi yang kita buat yang aktif mengirimkan data ke Lokasi Feed yang disediakan oleh Pachube.

Berhubung jenis Automatic membutuhkan pengaturan yang lebih sulit, terutama ketika berhubungan dengan firewall, atau router pada jaringan yang kita miliki, maka dalam contoh ini, saya menggunakan Feed jenis Manual. Berikut langkah-langkah yang diperlukan:
  1. Buka http://www.pachube.com/
  2. Klik Sign Up, pilih layanan Free, isi form hingga proses Sign Up selesai.
  3. Anda akan mendapat kiriman pada email yang Anda daftarkan, yang berisi API-key.
  4. Kembali ke www.pachube.com, dan masuk atau login menggunakan username dan password yang Anda daftarkan sebelumnya (login terletak di pojok kanan atas).
  5. Klik tombol REGISTER A FEED
  6. Sebuah form terbuka, isilah terutama Feed Type dan Feed Title. Pilih Manual pada Feed Type. Setelah selesai, klik Save Feed. Sampai di sini, Anda sudah berhasil membuat Feed di Pachube.
  7. Pachube kemudian akan menampilkan halaman Feed tersebut. Lokasi Feed dapat Anda lihat di bawah Judul yang Anda buat, yaitu berbentuk seperti http://api.pachube.com/v2/feeds/xxxxx.  Catat lokasi tersebut yang nantinya akan digunakan sebagai tujuan pengiriman data oleh Processing.

2. Baca sensor dengan Arduino

Arduino bertugas untuk membaca sensor dan menghitung berapa kali sensor mendeteksi warna hitam dalam selang waktu 15 menit, atau dengan kata lain, berapa banyak jumlah putaran piringan dalam waktu 15 menit. Kemudian Arduino juga akan mengubah jumlah putaran tersebut dalam bentuk nilai daya listrik dan nilai KWHmeter. Rumus untuk menghitung nilai KWH dan daya listriknya adalah sebagai berikut:

KWH = jumlah putaran / 720
daya listrik = 3600 x KWH / 900

di mana angka 720 saya ambil dari nilai perbandingan pada KWHmeter di rumah saya, yang tertulis 720 PUT/KWH atau 720 putaran untuk 1 KWH-nya. Sedangkan 3600 adalah jumlah detik dalam 1 jam, dan 900 adalah jumlah detik dalam 15 menit. Satuan nilai daya listrik pada rumus di atas adalah kiloWatt/detik. Untuk menghasilkan nilai yang lebih "terbaca", maka rumus daya listrik diubah menjadi sebagai berikut:

daya listrik = 1000 x 3600000 x KWH / 900000

dengan satuan daya listrik pada rumus di atas adalah Watt/milidetik.

Berikut kode program untuk Arduino:
#undef int()
int totalRequests = 0;
int revsPerkWh = 720; //nilai perbandingan KWHmeter
unsigned long time;
unsigned long interval;
unsigned long currentPower;
boolean black = false;
unsigned long aggregatedRevCounter;
unsigned long totalRevCounter;
unsigned long kWh;
unsigned long aggregatedInterval = 900000; // 15 menit
unsigned long aggregatedTime;
unsigned long aggregatedPower;
unsigned long reportedAggregatedPower;
int sensorDelay = 20;
int powerPin = 2;
int averageAnalog[] = {1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000};
void setup(){
  Serial.begin(9600); 
  Serial.println("starting...");
  setupPower();
}
void loop(){
  checkPower();
}
void setupPower(){
  pinMode(powerPin, OUTPUT);
  time = millis();
  interval = 0;
  currentPower = 0;
  aggregatedPower = 0;
  aggregatedTime = millis();
  aggregatedRevCounter = 0;
  reportedAggregatedPower = 0; 
}
void checkPower(){
  digitalWrite(powerPin, HIGH);
  delay(sensorDelay);
  int sensorVal = analogRead(0);
  for (int k = 0; k <7; k++){   
    averageAnalog[k] = averageAnalog[k+1];    
  }
  averageAnalog[7] = sensorVal;
  int firstAverage = 0;
  for (int k = 0; k <5; k++){   
    firstAverage += averageAnalog[k];  
  }
  firstAverage = firstAverage / 5;
  int secondAverage = 0;
  for (int k = 5; k <8; k++){   
    secondAverage += averageAnalog[k];  
  }
  secondAverage = secondAverage / 3;
  float proportion = (float)secondAverage /  (float)firstAverage;
  int prop = 1000 * proportion;
  if (black == false){
  if (prop > 1100){
      long currentTime = millis();
      black = true;
      interval = currentTime - time;
      currentPower = (1000.0 * 3600000.0 / interval) / revsPerkWh;
      kWh = (++totalRevCounter * 1000) / revsPerkWh;
      aggregatedRevCounter++;
      aggregatedPower += currentPower;
      if ((currentTime - aggregatedTime) > aggregatedInterval){
        reportedAggregatedPower = aggregatedPower / aggregatedRevCounter;
        aggregatedPower = 0;
        aggregatedTime = currentTime;
        aggregatedRevCounter = 0;
      }
      Serial.print(currentPower,DEC);
      Serial.print(',');
      Serial.println(kWh,DEC);
     time = millis();
   }
  } 
  else {
    if (prop < 1101){
      black = false; 
    }
  }
  digitalWrite(powerPin, LOW);
  delay(5 * sensorDelay);
}

Kode program di atas sebenarnya saya peroleh dari http://community.pachube.com/files/officeSensorsExample.zip, dengan sedikit pengubahan. Saya suka dengan ide pembacaan sensor dalam program tersebut, yang menggunakan rata-rata dari nilai yang terbaca, dan kemudian membandingkannya dengan nilai sebelumnya untuk melihat apakah ada perubahan nilai. Apabila terjadi perubahan nilai, berarti sensor telah mendeteksi warna hitam. Dengan ide ini, maka pembacaan sensor tidak lagi terpengaruh pada cahaya di sekitar KWHmeter, yang selalu berubah-ubah dari pagi hingga malam hari. Thanks buat Usman Haque dan tim Pachube.

Berikut hasil pembacaan sensor yang dilihat menggunakan Serial Monitor pada software Arduino:


1. Pasang sensor di KWHmeter

Gunakan sensor optis berupa pasangan photodiode dan LED infrared yang dipasang seperti gambar di bawah ini. Sensor tersebut akan mendeteksi warna gelap (cat hitam) dan terang (logam) pada tepi piringan, Setiap kali mendeteksi warna gelap, berarti telah terjadi satu kali putaran.


Berikut gambar skematik rangkaian sensor optis di atas dan penempatannya pada Arduino:



Saya sebenarnya meniru dari alamat ini: http://community.pachube.com/node/65
Silahkan membuka alamat tersebut, Anda akan mengetahui lebih jelas pemasangan sensor pada KWHmeter.