Categories
Teknologi

Server MQTT, Instalasi dan contoh penggunaan untuk IOT

Lanjutan dari artikel sebelumnya, tulisan ini berisi cara instalasi dan contoh sederhana penggunaan server MQTT.

Sebelum melanjutkan, anda sudah harus memiliki server dengan sistem operasi linux. Apabila anda belum punya, anda bisa coba dengan virtualbox. Sistem operasi yang saya gunakan adalah Ubuntu 16.04 yang bisa di unduh disini: http://www.ubuntu.com/download

Berikut tutorialnya:
1. Tambahkan PPA Mosquitto

sudo apt-add-repository ppa:mosquitto-dev/mosquitto-ppa
sudo apt-get update

2. Install Mosquitto

Sudo apt install mosquitto

Untuk mengetes, saya akan menggunakan Node.JS sebagai client MQTT.

1. Install Node.JS

sudo apt install nodejs
sudo apt install npm

2. Install requirement MQTT clientside untuk node.JS

npm install mqtt --save

3. Buat file baru dengan mengetik

touch testmqtt.js
nano testmqtt.js

4. Masukan baris code dibawah

var mqtt    = require('mqtt');
var client  = mqtt.connect('mqtt://localhost');

client.on('connect', function () {
  client.subscribe('contohtopik');
  client.publish('contohtopik', 'Halo dunia');
});

client.on('message', function (topic, message) {
  console.log(message.toString());
  client.end();
});

5. Quit nano dengan ctrl+o, lalu ctrl+x

6. Jalankan client dengan mengetik

nodejs testmqtt.js
Output program
Output program

Output dari program client diatas seharusnya seperti ini:

Apabila muncul seperti baris diatas, maka selamat ! anda telah berhasil menginstall mosquitto, server MQTT !

Selanjutnya mari kita membedah sedikit client yang saya berikan.

var client  = mqtt.connect('mqtt://localhost');

Digunakan untuk mengkoneksikan client, dalam hal ini program node.js ke server MQTT. apabila server MQTT dan client dalam komputer yang berbeda, silahkan ubah localhost menjadi IP dimana server MQTT berada.

client.on('connect', function () {
  client.subscribe('contohtopik');
  client.publish('contohtopik', 'Halo dunia');
});

akan otomatis dijalankan, ketika client berhasil terkoneksi ke server MQTT, dalam hal ini melakukan dua hal, yang pertama:

  client.subscribe('contohtopik');

Fungsi ini memberitahu server MQTT , bahwa program ini ingin menerima semua pesan dalam topik ‘contohtopik’

  client.publish('contohtopik', 'Halo dunia');

Fungsi ini memberitahu server MQTT bahwa program ini akan mengirimkan pesan ‘Halo dunia’ ke seluruh pengguna server MQTT yang melakukan subscribe ke topik ‘contohtopik’

client.on('message', function (topic, message) {
  console.log(message.toString());
  client.end();
});

Baris ini digunakan untuk melakukan sesuatu terhadap pesan-pesan yang diterima oleh client ini setelah di subscribe. message adalah pesannya, sementara topic adalah topik asal pesan tersebut. Pada program ini, yang dilakukan adalah mengeprint pesan ke console.

Alur lengkap program adalah:
1. program mengkoneksikan diri ke server MQTT
2. program akan subscribe ke topik ‘contohtopik’
3. program mengirimkan ‘Halo dunia’ ke topik ‘contohtopik’
4. server MQTT meneruskan pesan ‘Halo dunia’ ke seluruh subscriber topik.
5. program menerima pesan baru
6. program memprint pesan yang diterima
7. Halo dunia dimunculkan ke console.

Yang perlu di note adalah, client MQTT ini tidak terbatas hanya di Node.JS saja. Anda bisa menggunakan bahasa pemrograman apapun seperti PHP, C , C++ , Java di platform apapun misalnya web, desktop, mobile dan embedded  seperti arduino dan ESP 8266.   Hanya saja, library client yang digunakan berbeda dan memiliki cara pemrograman yang  berbeda juga, walaupun konsep dasar publish-subscribenya tetap sama.

Berikut adalah beberapa library dalam berbagai bahasa pemrogramman, dan biasanya sudah ada tutorial penggunaanya di link tersebut.

PHP : http://www.hivemq.com/blog/mqtt-client-library-encyclopedia-mosquitto-php
C# : https://github.com/ppatierno/m2mqtt
Java : https://github.com/fusesource/mqtt-client
C/C++: https://eclipse.org/paho/
Ruby : https://github.com/njh/ruby-mqtt
Python: https://pypi.python.org/pypi/paho-mqtt/1.1

Selamat mencoba 🙂

Categories
Teknologi

Membuat server email dengan ubuntu linux

Email merupakan salah satu metode yang paling populer untuk berkomunikasi di internet. Alangkah baiknya apabila bisnis anda sudah memiliki email domain sendiri, seperti [email protected], karena akan dipandang lebih profesional oleh mitra bisnis anda.

Yang Perlu di persiapkan:
1. Domain Name
2. Server yang terhubung langsung dengan internet (VPS / dedicated server)
3. Mengatur MX Record di domain, MX record berisi harus di teruskan ke alamat ip apa setiap email yang di kirim.
4. Server sudah terinstall dengan web server apache2

Tutorial:

  1. Install Postfix, Postfix adalah MTA, atau mail transfer agent yang bertujuan mengirim,menerima dan meneruskan email anda ke user account anda.
    sudo apt-get update
    sudo apt-get install postfix
  2. Anda akan ditanya mengenai FQDN, atau Fully Qualified Domain Name saat instalasi postfix. Isi dengan domain anda.
  3. Install Dovecot. Dovecot berfungsi sebagai server IMAP / POP3, yaitu protokol yang biasanya di gunakan oleh client email anda seperti outlook.
    sudo apt-get install dovecot-imapd dovecot-pop3d
    
  4. Install mail web client SquirrelMail, agar anda lebih mudah membaca email
    sudo apt-get install squirrelmail
  5. Buka halaman konfigurasi squirrelmail
    sudo squirrelmail-configure
    
  6. Masuk kebagian mail server settings dengan mengetik 2 pada keyboard lalu menekan enter.pastikan settingnya sudah sesuai seperti dibawah, save lalu exit.
    Update IMAP Settings   : localhost:143 (other)
    Update SMTP Settings   : localhost:25
    
  7. Set konfigurasi apache2
    sudo cp /etc/squirrelmail/apache.conf /etc/apache2/sites-available/squirrelmail
    sudo ln -s /etc/apache2/sites-available/squirrelmail /etc/apache2/sites-enabled/squirrelmail
    sudo a2ensite squirrelmail
    sudo service apache2 restart
    
  8. Tambahkan user linux anda kedalam grup mail, anda juga bisa menambahkan user linux baru. email adalah per user user linux. apabila anda menggunakan user root, maka email anda adalah  [email protected]
    #tambah userbaru
    sudo useradd namauser
    
    #menambahkan user ke grup mail
    sudo usermod -a -G mail namauser
    
    
  9. Selamat, anda telah berhasil membuat mail server dengan ubuntu linux sendiri! masuk kedalam web clientnya dengan mengetik http://domainanda/mail, lalu login dengan username / password linux anda. Silahkan test kirim dan terima email dari penyedia layanan lain seperti gmail / yahoo.

    Selamat mencoba 🙂

Categories
Teknologi

Tutorial Menjalankan Aplikasi ASP.NET MVC 5 pada Ubuntu Linux 14.04

ASP.NET adalah sebuah framework untuk membuat aplikasi pemrograman web sisi server. Salah satu alasan menggunakan ASP.NET adalah C#. Code C# terstruktur dengan baik sehingga mudah untuk dipahami dan dimaintenance. C# juga menyediakan beragam code hint, error hint sebelum code dijalankan.  C# dijalankan menggunakan sistem JIT, sehingga mungkin dapat berjalan lebih cepat dibanding bahasa-bahasa interpreted seperti PHP.

Sayangnya, sampai beberapa tahun yang lalu ASP.NET hanya dapat berjalan pada platform windows, hingga akhirnya ada beberapa proyek opensource seperti dotGNU dan mono. Karena ada beberapa yang masih merupakan paten Microsoft , proyek-proyek ini sulit berjalan secara maksimal dan cenderung terbatas kompabilitasnya, bahkan proyek dotGNU sampai berhenti pada tahun 2012.

Namun pada tahun 2014,  Microsoft membuat platform .NET menjadi opensource. Hal ini membuat developer mono bisa menggunakan komponen-komponen dari microsoft (sumber), menyebabkan mono berkembang dengan pesat dan bisa menjalankan framework kompleks seperti ASP.NET MVC 5.

Pada tutorial ini, akan dijelaskan bagaimana cara melakukan setup Ubuntu 14.04 LTS hingga dapat menjalankan aplikasi ASP.NET MVC 5. Selamat belajar!

Yang perlu dipersiapkan:
  1. Komputer dengan sistem operasi Ubuntu 14.04 LTS
  2. Proyek default ASP.NET MVC 5 yang telah di publish atau bisa download contoh yang saya buat disini
  3. Koneksi Internet
Tutorial:
  1. Pastikan sistem operasi anda sudah terupdate dengan menjalankan perintah berikut:
    sudo apt-get update && sudo apt-get dist-upgrade
  2. Instalasi paket apache2 dengan menjalankan perintah:
    sudo apt-get install apache2
  3. Masukan mono kedalam list paket sistem, hal ini perlu dilakukan agar versi mono yang akan di install selalu yang terbaru. pastikan anda menjalankan code di bawah baris demi baris.
    sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
    
    sudo echo "deb http://download.mono-project.com/repo/debian wheezy main" | sudo tee /etc/apt/sources.list.d/mono-xamarin.list
    
    sudo echo "deb http://download.mono-project.com/repo/debian wheezy-apache24-compat main" | sudo tee -a /etc/apt/sources.list.d/mono-xamarin.list
    
    sudo echo "deb http://download.mono-project.com/repo/debian alpha main" | sudo tee /etc/apt/sources.list.d/mono-xamarin-alpha.list
    
    sudo apt-get update && sudo apt-get dist-upgrade
  4. Install paket mono-complete
    sudo apt-get install mono-complete
    
  5. Install paket libapache2-mod-mono
    sudo apt-get install libapache2-mod-mono
    sudo a2enmod mod_mono_auto
  6. Set apache2, agar folder pada apache2 menggunakan mono. prosedur ini harus di ulang untuk setiap aplikasi baru
    sudo nano /etc/apache2/sites-available/testasp.conf
  7. Copy-paste baris berikut ke console, sesuaikan path dan nama apabila diperlukan. klik ctrl+o , enter lalu ctrl+x untuk menyimpan file.
      Alias /testasp "/var/www/html/testasp"
      MonoServerPath inventory "/usr/bin/mod-mono-server4"
      MonoDebug inventory true
      MonoSetEnv inventory MONO_IOMAP=all
      MonoApplications inventory "/testasp:/var/www/html/testasp"
      <Location "/testasp">
        Allow from all
        Order allow,deny
        MonoSetServerAlias inventory
        SetHandler mono
        SetOutputFilter DEFLATE
        SetEnvIfNoCase Request_URI "\.(?:gif|jpe?g|png)$" no-gzip dont-vary
      </Location>
      <IfModule mod_deflate.c>
        AddOutputFilterByType DEFLATE text/html text/plain text/xml text/javascript
      </IfModule>
    

    apache2site

  8. Buat folder baru di /var/www/html/testasp , sesuaikan permission folder apabila di perlukan. File-file asp.net akan di simpan di sini.
    sudo mkdir /var/www/html/testasp
  9. Enable konfigurasi site yang dibuat
    sudo a2ensite testasp
    sudo service apache2 restart
  10. Upload atau copy file ASP.NET MVC yang ingin dijalankan atau gunakan contoh proyek yang saya berikan ke dalam folder /var/www/html/testasp
    ftp
  11. Test situs di browser,  url adalah http://127.0.0.1/testasp.  sesuaikan url dengan IP mesin anda.
    jalan

Apabila hasil seperti langkah 11, maka selamat, anda telah berhasil menjalankan ASP.NET MVC 5 pada sistem operasi linux. Apabila belum, silahkan comment dan saya akan coba menjawab pertanyaan sebisa saya.

Dengan langkah-langkah diatas, bahkan saya telah berhasil mempublish situs yang cukup kompleks dengan database mysql.

Dibawah ini adalah link-link yang bisa membantu anda belajar lebih jauh lagi.

  1. http://www.mono-project.com/docs/getting-started/install/linux/
  2. https://help.ubuntu.com/community/ModMono
  3. http://www.asp.net/mvc/overview/getting-started/introduction/getting-started
  4. http://www.w3schools.com/aspnet/mvc_intro.asp

Semoga tutorial yang saya berikan bermanfaat.