software factory io sangat bagus sekali untuk belajar logika pemrograman. biasanya terhubung ke sebuah PLC. agar nodemcu bisa juga terhubung ke factory io cukup membuat library protocol modbus TCP
buka factory io. kemudian buat rancangan seperti gambar dibawah ini
terdapat 3 buah komponen
- box (electric switchboard)
- tiang box (column)
- led indicator blue
kemudian setting driver yang dipakai
kemudian klik connect, jika berhasil maka. led hijau akan menyala. artinya arduino dan factory io sudah bisa berkomunikasi.
untuk ip nodemcu dan komputer (software factory io) dibuat 1 class.
misal arduino 192.168.0.50
komputer 192.168.0.10
untuk program nodemcu library yang dibutuhkan hanya library mudbus_wifi.h
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include "Mudbus_wifi.h"
#include <Ticker.h>
kemudian setting ip address arduino dibuat 1 class dengan komputer
IPAddress staticIP(192, 168, 0, 50); //ESP static ip
IPAddress gateway(192, 168, 0, 1); //IP Address of your WiFi Router (Gateway)
IPAddress subnet(255, 255, 255, 0); //Subnet mask
IPAddress dns(8, 8, 8, 8); //DNS
const char* ssid = "KCM Markas Besar";
const char* password = "semerulima";
untuk coil yang dipakai hanya 1 buah. dialamat 8, alamat yang dipakai mesti sama dengan aplikasi.
Mudbus_wifi Mb;
#define led Mb.C[8]
setelah dilakukan pengaturan tinggal membuat coil tersebut on dan off dengan interval 1 detik. disini saya menggunakan interrupt timer.
void loop()
{
if(status_timer1==1)
{
status_timer1=0;
if(status_led==0){led=1;status_led=1;}
else{led=0;status_led=0;}
}
Mb.Run();
}
untuk program complete nya bisa di copy seperti dibawah ini
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include "Mudbus_wifi.h"
#include <Ticker.h>
Ticker timer;
Mudbus_wifi Mb;
#define led Mb.C[8]
IPAddress staticIP(192, 168, 0, 50); //ESP static ip
IPAddress gateway(192, 168, 0, 1); //IP Address of your WiFi Router (Gateway)
IPAddress subnet(255, 255, 255, 0); //Subnet mask
IPAddress dns(8, 8, 8, 8); //DNS
const char* ssid = "KCM Markas Besar";
const char* password = "semerulima";
unsigned char status_timer1,status_led;
void ICACHE_RAM_ATTR onTime() {
status_timer1=1;
timer1_write(5000000);
}
//=============================================================
void setup() {
Serial.begin(9600);
pinMode(2,OUTPUT);
digitalWrite(2, HIGH);
WiFi.config(staticIP, subnet, gateway, dns);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println();
Serial.println("WiFi connected");
Serial.println("IP address: "); Serial.println(WiFi.localIP());
Mb.begin();
delay(5000); //Time to open the terminal
timer1_attachInterrupt(onTime); // Add ISR Function
timer1_enable(TIM_DIV16, TIM_EDGE, TIM_SINGLE);
timer1_write(5000000);
}
//==================================================================
void loop()
{
if(status_timer1==1)
{
status_timer1=0;
if(status_led==0){led=1;status_led=1;}
else{led=0;status_led=0;}
}
Mb.Run();
}
hardware yang dipakai pada percobaan ini
video simulasi
untuk pemesanan alat bisa hubungi dhani 085228292473
atau kunjungi www.keiciptamandiri.com