Printfriendly

4:38:00 PM

IoT MQTT : #Part1 NodeMCU/Wemos/Arduino as Publisher and SCADA Indusoft as Subscriber

السَّلاَمُ عَلَيْكُمْ وَرَحْمَةُ اللهِ وَبَرَكَاتُهُ
Setelah sebelumnya memposting artikel tentang Installing MQTT Broker (EMQX) with Web Dashboard on VPS Debian 8 serta Download Arduino IDE 1.8.9 include additional library and ESP8266 board for Windows dan Download VS Code Portable with Arduino & C++ Extension for Windows. Maka kita kali ini akan mengintegrasikan antara Wemos D1 Mini dengan SCADA Indusoft melalui IoT dengan protokol MQTT. 

Sekilas tentang Wemos D1 mini, menurut situsnya sendiri www.wemos.cc Wifi boards based ESP-8266EX, include D1 mini, D1 mini Pro, D1 mini Lite.There are lots of stackable shields for them, easy to use for IOT.
Baik Wemos, NodeMCU,ESP32 sama-sama dapat diprogram dengan arduino IDE, tentunya dengan additional board yang sudah diinstall terlebih dahulu. Sebelum melangkah lebih jauh mari kita kilas balik ke postingan sebelumnya tentang Apa itu MQTT?  yang dapat dibaca di post sebelumnya Basic, Download and Installing HiveMQ Mqtt broker for Windows (Indonesia)

Pada postingan ini kita akan buat skenario sebagai berikut
Pada sisi sebelah kiri terdapat Wemos D1 Mini yang sudah terhubung ke LCD I2C 16x2 dan tentunya butuh koneksi internet, pada sisi ini akan dibuat increment +1 atau dengan kata lain sebuah variable integer yang akan bertambah 1 setiap 1 detik dan akan dipublish ke MQTT Broker (milik penulis) dengan topic ismaillowkey/random

Kemudian pada sisi sebelah kanan terdapat sebuah SCADA Indusoft Web Studio yang sudah include MQTT Client driver yang akan menSubscribe dengan topic ismaillowkey/random

Baik Pubslisher maupun subscriber akan terhubung ke MQTT Broker over internet dan alamat IP MQTT Broker yang akan digunakan sekarang yaitu 54.245.173.136 dengan port 1883 (tanpa TLS/SSL) atau dapat menggunakan MQTT Broker lainnya seperti iot.eclipse.org atau broker.hivemq.com

Ingat huruf besar dan kecil pada nama topic berifsat case-sensitife yang artinya huruf besar dan huruf kecil dibedakan
  1. Pertama-tama kita download dulu Arduino IDE yang sudah penulis modif, sudah include MQTT client library serta sudah terdapat additional board ESP8266 (termasuk Wemos dan NodeMCU) disini
    http://www.ismaillowkey.net/2019/06/download-arduino-ide-189-include.html
  2. Kemudian buat Project Baru dan setting board ke Wemos D1 Mini
  3. Kemudian copy code dibawah dan paste pada arduino IDE, pada text berwarna merah pastikan I2C address untuk LCD anda sudah sama yaotu 0x27, dan text berwarna biru silahkan ganti dengan nama Wifi anda serta password
  4. #include <ESP8266WiFi.h>
    #include <PubSubClient.h>
    #include <Thread.h>
    #include <Wire.h>
    #include <LCD.h>
    #include <LiquidCrystal_I2C.h>
    // Update these with values suitable for your network.
    
    #define I2C_ADDR    0x27 // <<----- Add your address here.  Find it from I2C Scanner
    #define BACKLIGHT_PIN     3
    #define En_pin  2
    #define Rw_pin  1
    #define Rs_pin  0
    #define D4_pin  4
    #define D5_pin  5
    #define D6_pin  6
    #define D7_pin  7
    LiquidCrystal_I2C  lcd(I2C_ADDR, En_pin, Rw_pin, Rs_pin, D4_pin, D5_pin, D6_pin, D7_pin);
    
    
    const char* ssid = "Your Wifi";
    const char* password = "Your wifi password";
    const char* mqtt_server = "54.245.173.136";
    
    Thread myThread = Thread();
    WiFiClient espClient;
    PubSubClient client(espClient);
    long lastMsg = 0;
    char msg[50];
    int value = 0;
    
    // callback for myThread
    void niceCallback() {
      if (!client.connected()) {
        reconnect();
      }
      client.loop();
      
      ++value; 
      Serial.print("Publish message: ");
      String m =  "hello world:" + String(value);
    
      Serial.println(m);
      client.publish("ismaillowkey/random", m.c_str()); // .c_srt() convert string to char array
      lcd.setCursor (0, 1); lcd.print("                ");
      lcd.setCursor (0, 1); lcd.print(m);
    }
    
    void setup() {
      Serial.begin(9600);
      lcd.begin (16, 2); //  <<----- My LCD was 16x2
    
      // Switch on the backlight
      lcd.setBacklightPin(BACKLIGHT_PIN, POSITIVE);
      lcd.setBacklight(HIGH);
      lcd.home (); // go home
    
      setup_wifi();
      client.setServer(mqtt_server, 1883);
    
      myThread.onRun(niceCallback);
      myThread.setInterval(1000);
    }
    
    void setup_wifi() {
      delay(10);
      // We start by connecting to a WiFi network
      Serial.println();
      Serial.print("Connecting to ");
      Serial.println(ssid);
    
      lcd.setCursor (0, 0); lcd.print(" Connecting to ");
      lcd.setCursor (0, 1); lcd.print(ssid);
    
      WiFi.begin(ssid, password);
    
      while (WiFi.status() != WL_CONNECTED) {
        delay(500);
        Serial.print("."); lcd.print(".");
        
      }
    
      Serial.println("");
      Serial.println("WiFi connected");
      lcd.setCursor (0, 0); lcd.print(" WiFi connected");
      Serial.println("IP address: ");
      lcd.setCursor (0, 1); lcd.print("                ");
      lcd.setCursor (0, 1); lcd.print(WiFi.localIP());
      Serial.println(WiFi.localIP());
      delay(2000);
    
      lcd.clear();
      lcd.setCursor (0, 0); lcd.print("                ");
      lcd.setCursor (0, 0); lcd.print("Connected broker");
    }
    
    void reconnect() {
      // Loop until we're reconnected
      while (!client.connected()) {
        Serial.print("Attempting MQTT connection...");
        // Attempt to connect
        if (client.connect("ESP8266Client")) {
          Serial.println("connected");
          lcd.setCursor (0, 0); lcd.print("                ");
          lcd.setCursor (0, 0); lcd.print("Connected broker");
          // Once connected, publish an announcement...
          client.publish("outTopic", "hello world");
          // ... and resubscribe
          client.subscribe("inTopic");
        } else {
          lcd.setCursor (0, 0); lcd.print("                ");
          lcd.setCursor (0, 0); lcd.print("reconnecting....");
          Serial.print("failed, rc=");
          Serial.print(client.state());
          Serial.println(" try again in 5 seconds");
          // Wait 3 seconds before retrying
          //delay(3000);
        }
      }
    }
    void loop() {
      if (myThread.shouldRun())
        myThread.run();
    
    }
  5. Kemudian pilih Serial port dan download
  6. Maka LCD akan muncul seperti dibawah

Test menggunakan indusoft

Test menggunakan mqff.fx software

Untuk Part 2 tutorial menggunakan indusoft akan dibahas pada postingan selanjutnya


Good Luck
Semoga bermanfaat
وَعَلَيْكُمْ السَّلاَمُ وَرَحْمَةُ اللهِ وَبَرَكَاتُهُ



Create Project Java 12 + JavaFX using Apache Netbeans

السَّلاَمُ عَلَيْكُمْ وَرَحْمَةُ اللهِ وَبَرَكَاتُهُ

Java 12 merupakan kelanjutan dari Java 11, Java 12 sendiri dirilis oleh oracle sekitar 19 maret 2019. sama seperti Java 11, didalam Java 12 tidak include JavaFX dan juga Java EE. karenanya kita memerlukan library JavaFX untuk menggunakannya








Berikut tool dan bahan yang diperlukan
  1. Netbeans 11 (Support Java 12)
  2. JDK 12 (disini menggunakan bellsoft liberica OpenJDK 12)
  3. JavaFX 12 SDK for windows
  4. JavaFX Scene Builder
Tutorial ini tidak menggunakan Maven atau Gradle.
  1.  Download Apache Netbeans 11 from this link
    https://www.apache.org/dyn/closer.cgi/incubator/netbeans/incubating-netbeans/incubating-11.0/incubating-netbeans-11.0-bin.zip
    Extract and then open folder netbenas -> bin. (Dont Open)
  2. Download JDK 12 ,we can use OpenJDK from Bellsoft
    https://bell-sw.com/pages/java-12.0.1/
    Choose 32 bit or 64 bit and then click Download MSI (also available for Raspberry pi), and then install
  3. Download JavaFX 12 JDK for Windows form gluon
    https://gluonhq.com/products/javafx/
    Extract folder
  4. Download JavaFX Scene builder and install
    https://gluonhq.com/products/scene-builder/
  5. Open Apache Netbeans 11 in netbeans -> bin and double click netbeans.exe for windows 32 bit or netbeans64.exe for windows 64 bit
  6. Add Java 12 (OpenJDK 12 from bellsoft) to Netbeans
    Click menu tab Tools -> Options -> Java -> Java Shell -> Manage -> Add Platform -> Select Java Standart Edition -> Next -> Browse to C:\Program Files\BellSoft\LibericaJDK-12 or Browse to C:\Program Files (x86)\BellSoft\LibericaJDK-12
    Click Finish -> Close -> OK
  7. Create Global Library for JavaFX SDK 12
    Under Menu tab Tools -> Libraries -> New Library.
    Name it JavaFX12 and include all the jars under the lib folder from JavaFX 12 except src.zip
  8. Create java application not javafxappication !!
    Click Menu tab File -> New Project -> Java with Ant -> Java Application
    Example Project name "HelloFX" -> Finish
  9. Make sure your project is configured to run with JDK 12
    Go to project (HelloFX) -> right click -> Properties -> Libraries -> Java Platform, and set it to JDK 12.
  10. Add module JavaFX 12
    Go to project (HelloFX) -> right click -> Properties -> Libraries -> Class-path -> + -> Add Library -> Select JavaFX12 -> OK
  11. Add empty FXML
    expand HelloFX -> expand Source Packages -> right click hellofx -> new -> empty FXML -> fill FXML Name = MainFXML -> next-> check use java controller -> finish
  12. Open HelloFX.java and delete all code and replace with code
  13. package hellofx;
    import javafx.application.Application;
    import javafx.fxml.FXMLLoader;
    import javafx.scene.Parent;
    import javafx.scene.Scene;
    import javafx.stage.Stage;
    
    public class HelloFX extends Application {
    
        @Override
        public void start(Stage primaryStage) throws Exception{
            Parent root = FXMLLoader.load(getClass().getResource("MainFXML.fxml"));
            primaryStage.setTitle("Hello World");
            primaryStage.setScene(new Scene(root));
            primaryStage.show();
        }
    
    
        public static void main(String[] args) {
            launch(args);
        }
    }

  14. Open MainFXML.fxml and create label and button (example)
  15. Right click project (HelloFX) -> click on Properties -> Run -> and add these VM options: and click OK
  16. --add-modules=javafx.controls,javafx.fxml

  17. Run Project
Good Luck
Semoga bermanfaat
وَعَلَيْكُمْ السَّلاَمُ وَرَحْمَةُ اللهِ وَبَرَكَاتُهُ

Download Kepware KEPServerEX 6.4.321.0 Full

السَّلاَمُ عَلَيْكُمْ وَرَحْمَةُ اللهِ وَبَرَكَاتُهُ 
KEPServerEX enables users to connect, manage, monitor, and control diverse automation devices and software applications through a single-server interface.

KEPServerEX merupakan product dari Kepware dan salah satu OPC Server yang popular selain Matrikon. KepserverEX sendiri sudah support MQTT client serta IoT gateway dan juga support OPC UA. Didalam installer ini sudah terdapat banyak driver PLC dan hanya tinggal centang driver mana saja yang diperlukan jadi tidak perlu download terpisah.

OPC KEPServerEX mempunyai masa trial 2 jam terhitung dari mulai Start Runtime, jika sudah lebih dari 2 jam maka perlu restart Runtime agar dapat digunakan kembali. Pada post kali ini sudah terdapat medicine yang mana tidak perlu restart Runtime setiap 2 jam

Beikut Screenshotnya




Link Download KepServerEX v6.4
Onedrive Link
Google Drive Link

How to Install Medicine




Good Luck
Semoga bermanfaat
وَعَلَيْكُمْ السَّلاَمُ وَرَحْمَةُ اللهِ وَبَرَكَاتُهُ

5:57:00 PM

Download App Inventor 2 Ultimate (offline) v4.6 - update -

السَّلاَمُ عَلَيْكُمْ وَرَحْمَةُ اللهِ وَبَرَكَاتُهُ
App Inventor adalah salah satu tool untuk mendevelop aplikasi menggunakan web browser. Dari sekian banyak tool,app Inventor adalah salah satu yang paling mudah digunakan, why? yup,karena orang awam sekalipun bisa menggunakannya tanpa perlu belajar bahasa pemrograman seperti c++,Java dsb, anda hanya perlu mengklik,drag n drop kemudian isi value sana sini. Mudah kan?

App Inventor sendiri menggunakan koneksi internet untuk menggunakannya, lebih lengkapnya klik disini
Kemudian login mengguakan akun gmail anda.
Postingan kali ini bukan untuk menggunakan app inventor online,melainkan app inventor offline yang dibuat oleh pihak ketiga,salah satunya App Inventor 2 Ultimate

Download App Inventor 2 Ultimate v4.6. 
Untuk versi installer 32 bit/64 bit download disini  (± 450 MB) --recommended--
(pilih AI2U 64bit v4.6.exe untuk 64 bit atau AI2U 32bit v4.6.exe untuk 32 bit)
https://sourceforge.net/projects/ai2u/files/ai2u%204.6/Installer/
Untuk versi portable 32 bit/64 bit download disini (± 548 MB)
(pilih AI2U-portable-v4.6-64bit.zip untuk 64 bit atau AI2U-portable-v4.6-32bit.zip untuk 32 bit)
https://sourceforge.net/projects/ai2u/files/ai2u%204.6/Portable/
*Sesuikan dengan spesifikasi komputer anda

Feature
  1. Portable JDK
  2. Single installation file
  3. No internet connection
  4. Built in 256MB emulator storage
  5. Latest App Inventor source and companion
For more information https://sourceforge.net/projects/ai2u/ 

Kelebihan App Inventor 2 Ultimate ini adalah sudah built in portable JDK didalamnya jadi tidak perlu install  JDK

Install App Inventor 2 Ultimate sampai selesai. Hasil folder instalasi ada di C:\AI2U
Buka folder C:\AI2U dan jalankan buildserver.cmd (run as administrator)
Tunggu beberapa saat kemudian klik startAI.cmd (run as administrator)
sampai muncul 3  buah command prompt dan klik C:\windows\system32\cmd.exe .\AppEngine......
dan akan muncul prompt seperti gambar dibawah

Buka broswer dan ketik localhost:8888 dan masukkan alamat email serta password jika anda sudah terdaftar atau klik Click Here to use Google Account to Login untuk menggunakan akun google
Masukkan alamat email,alamat email ini berfungsi untuk login serta menyimpan hasil project (offline)

Dan klik I Accept
Maka akan muncul tampilan berikut, dan siap digunakan




Good Luck
Semoga bermanfaat
وَعَلَيْكُمْ السَّلاَمُ وَرَحْمَةُ اللهِ وَبَرَكَاتُهُ
12:57:00 PM

Download and Install JDK 8 (JDK 8u212) include JavaFX for arm32 Raspberry Pi

السَّلاَمُ عَلَيْكُمْ وَرَحْمَةُ اللهِ وَبَرَكَاتُهُ
The latest version of the Java Development Kit for ARM processors (JDK 8u33 for ARM) no longer supports JavaFX Embedded, with Oracle making the new change known in their latest release notes. The ARM architecture is based, among other things, on the single board computer Raspberry Pi. Please see more https://jaxenter.com/jdk-arm-without-javafx-end-javafx-embedded-114212.html


But we can still using JavaFX from gluon and move file lib JavaFX to JDK/JRE 8 instalation from this link https://gluonhq.com/products/mobile/javafxports/get/
and read this article https://wimdeblauwe.wordpress.com/2017/08/26/using-javafx-on-raspberry-pi-3-with-gluon/ for manual instalation JavaFX in JDK 8

This articel will explain install Oracle JDK 8 (include JavaFX) on raspberry pi (linux version like Raspbian,ubuntu mate,xubuntu etc)

Download JDK 1.8.0_212 (8u212 release date April 16,2019) include JavaFX 8 for ARM32
https://mega.nz/#!HjpFhSLS!HYI26YYCDG6m48w9K4jPIRLnpWuEjXzUQLEed72tP5Q
and then open terminal emulator
unzip jdk1.8.0*.zip
sudo cp -R jdk1.8.0_212_arm32 /opt/
sudo ln -s /opt/jdk1.8.0_212_arm32/bin/java /usr/bin/java
sudo chown -R pi /opt/jdk1.8.0_212_arm32


For running javaFX program
java -Djavafx.platform=gtk2 -jar JavaPackage.jar

Good Luck
Semoga bermanfaat
وَعَلَيْكُمْ السَّلاَمُ وَرَحْمَةُ اللهِ وَبَرَكَاتُهُ


[Update] Download VS Code Portable with Arduino & C++ Extension for Windows

السَّلاَمُ عَلَيْكُمْ وَرَحْمَةُ اللهِ وَبَرَكَاتُهُ
Menurut Wikipedia, Visual Studio Code is a source-code editor developed by Microsoft for Windows, Linux and macOS. It includes support for debugging, embedded Git control and GitHub, syntax highlighting, intelligent code completion, snippets, and code refactoring. It is highly customizable, allowing users to change the theme, keyboard shortcuts, preferences, and install extensions that add additional functionality. The source code is free and open source and released under the permissive MIT License. The compiled binaries are freeware and free for private or commercial use


Visual studio code bersifat free and open source, kelebihan visual studio code adalah dapat melakukan debugging pada banyak bahasa pemrograman, serta ringan. untuk lebih lengkapnya dapat melihat situs microsoft di sini https://code.visualstudio.com/docs/editor/whyvscode

Visual Studio code yang akan diposting disini merupakan Visual studio Code portable yang sudah include Arduino dan C++ Extension. Penulis sendiri lebih banyak menggunakan VScode dibanding Arduino IDE untuk memprogram Arduino Board atau ESP8266
Berikut screenshotnya

Sebelum menggunakan arduino pada VS code, terlebih dahulu install Arduino IDE atau dapat menggunakan Arduino IDE yang sudah dimodifikasi additional library and ES8266 board disini http://www.ismaillowkey.net/2019/06/download-arduino-ide-189-include.html

Download VS Code portable with Arduino & C++ Extension disini 

Kemudian Extract dan buka VS code 


Setelah itu setting Arduino Extension dan arahkan ke folder Extact atau folder instalasi arduino IDE
Kemudian buka VScode -> Menu tab File -> Preferences -> Settings -> Extensions -> Arduino Configuration -> cari Arduino Path -> dan isikan folde path instalasi Arduino seperti video dibawah

Kemudian Restart VS Code, VS Code dengan arduino extension  siap digunakan

Good Luck
Semoga bermanfaat
وَعَلَيْكُمْ السَّلاَمُ وَرَحْمَةُ اللهِ وَبَرَكَاتُهُ

Download Arduino IDE 1.8.9 include additional library and ESP8266 board for Windows

السَّلاَمُ عَلَيْكُمْ وَرَحْمَةُ اللهِ وَبَرَكَاتُهُ
Arduino IDE adalah software editor untuk memrogram mikrokontroller arduino, bahasa arduino menggunakan bahasa C++, tidak hanya untuk board arduino yang berbasis ATmega, board ESP8266 pun dapat menggunakan Arduino IDE ini. Secara default arduino IDE sudah include berbagai macam library dan example program, tetapi kita dapat menambahkan sendiri library dari pihak ketiga maupun buatan sendiri. Penulis sendiri sudah menggunakan banyak libray dari pihak ketiga.  Arduino IDE yang akan diposting sudah include berbagai macam library dan board ESP8266 seperti screeshot gambar dibawah

Tambahan additional library berada di File -> Examples -> Arduino-mod
Perlu diketahui, arduino IDE modifikasi ini bersifat portable. Download Arduino IDE modifikasi disini 
https://mega.nz/#!yzA31YYa!xxunnMGHe390WdZkUfTH_gm1EU8j0BD5ym1DoiTwdi8

dan Additional ESP8266 board disini
https://mega.nz/#!vvBWwaTA!SWJ89QUA_63eIb_jOGQWXT6ims0ON1e91pxptGxhi1Q

Untuk instalasi offline ESP8266, buka windows explorer dan ketik C:\Users\%USERPROFILE%\AppData\Local\Arduino15 dan copy serta extract file esp8266 board seperti video dibawah


kemudian buka Arduino IDE

Arduino IDE modification siap digunakan
Good Luck
Semoga bermanfaat
وَعَلَيْكُمْ السَّلاَمُ وَرَحْمَةُ اللهِ وَبَرَكَاتُهُ