belajar led blinking factory io nodemcu

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

start stop conveyor arduino factory io

part yang dipakai

mapping coil

mapping coil pada arduino


#define tombol_start Mb.C[0]
#define tombol_stop Mb.C[1]

#define led Mb.C[8]
#define led_start Mb.C[9]
#define led_stop Mb.C[10]
#define conveyor Mb.C[11]

cara baca tombol start stop

untuk tombol start ketika ditekan aktif high

untuk tombol stop ketika ditekan aktik low

 if(tombol_start==1)status_running=1;
    else if(tombol_stop==0)status_running=0;

    if(status_running==1){led_start=1;led_stop=0;conveyor=1;}
    else {led_start=0;led_stop=1;conveyor=0;}

program complete arduino

#include <SPI.h>
#include <Ethernet.h>
#include "Mudbus.h"

#define relay1 32
#define relay2 34

#define sensor1 5
#define sensor2 4
#define ddr_sensor  DDRE
#define port_sensor  PORTE
#define pin_sensor  PINE

unsigned char status_running;
Mudbus Mb;



#define tombol_start Mb.C[0]
#define tombol_stop Mb.C[1]

#define led Mb.C[8]
#define led_start Mb.C[9]
#define led_stop Mb.C[10]
#define conveyor Mb.C[11]


unsigned char status_timer1=0;
unsigned char status_led=0;
//=============================================================
void setup() {
  uint8_t mac[]     = { 0x90, 0xA2, 0xDA, 0x00, 0x51, 0x06 };
  uint8_t ip[]      = { 192, 168, 1, 254 };
  uint8_t gateway[] = { 192, 168, 1, 1 };
  uint8_t subnet[]  = { 255, 255, 255, 0 };
  Ethernet.begin(mac, ip, gateway, subnet);
  //Avoid pins 4,10,11,12,13 when using ethernet shield

  delay(5000);  //Time to open the terminal

   TCCR1A = 0;
  TCCR1B = 0;  
  TCNT1 = 34286;   // preload timer
  TCCR1B |= (1 << CS12);    // 256 prescaler 
  TIMSK1 |= (1 << TOIE1);   // enable timer overflow interrupt
  interrupts();             // enable all interrupts

  status_running=0;
}


//==================================================================
void loop() 
{    
    if(tombol_start==1)status_running=1;
    else if(tombol_stop==0)status_running=0;

    if(status_running==1){led_start=1;led_stop=0;conveyor=1;}
    else {led_start=0;led_stop=1;conveyor=0;}
    
    
    if(status_timer1==1)
    {
      status_timer1=0;
      if(status_led==0){led=1;status_led=1;}
      else{led=0;status_led=0;}
    }
    Mb.Run();
}

ISR(TIMER1_OVF_vect)        // interrupt service routine 
{
  TCNT1 = 34286;   // preload timer
  status_timer1=1;
}

hasil simulasi video

untuk pemesanan alat custom hubungi 08528292473

belajar led blinking factory io

software factory io sangat bagus sekali untuk belajar logika pemrograman. biasanya terhubung ke sebuah PLC. agar arduino bisa juga terhubung ke factory io cukup di tambahkan sebuah modul ethernet dengan menggunakan protocol modbus TCP atau bisa juga menggunakan nodemcu yang penting support 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 configuration

setting ip adress, alamat coil yang digunakan. sesuaikan dengan program pada arduino

kemudian klik connect, jika berhasil maka. led hijau akan menyala. artinya arduino dan factory io sudah bisa berkomunikasi.

untuk ip arduino dan komputer (software factory io) dibuat 1 class.

misal arduino 192.168.1.254

komputer 192.168.1.253

untuk program arduino library yang dibutuhkan hanya library mudbus.h, ethernet.h

#include <SPI.h>
#include <Ethernet.h>
#include "Mudbus.h"

kemudian setting ip address arduino dibuat 1 class dengan komputer

void setup() {
  uint8_t mac[]     = { 0x90, 0xA2, 0xDA, 0x00, 0x51, 0x06 };
  uint8_t ip[]      = { 192, 168, 1, 254 };
  uint8_t gateway[] = { 192, 168, 1, 1 };
  uint8_t subnet[]  = { 255, 255, 255, 0 };
  Ethernet.begin(mac, ip, gateway, subnet);
  //Avoid pins 4,10,11,12,13 when using ethernet shield


}

untuk coil yang dipakai hanya 1 buah. dialamat 8, alamat yang dipakai mesti sama dengan aplikasi.

Mudbus 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 <SPI.h>
#include <Ethernet.h>
#include "Mudbus.h"

#define relay1 32
#define relay2 34

#define sensor1 5
#define sensor2 4
#define ddr_sensor  DDRE
#define port_sensor  PORTE
#define pin_sensor  PINE

Mudbus Mb;

#define led Mb.C[8]
unsigned char status_timer1=0;
unsigned char status_led=0;
//=============================================================
void setup() {
  uint8_t mac[]     = { 0x90, 0xA2, 0xDA, 0x00, 0x51, 0x06 };
  uint8_t ip[]      = { 192, 168, 1, 254 };
  uint8_t gateway[] = { 192, 168, 1, 1 };
  uint8_t subnet[]  = { 255, 255, 255, 0 };
  Ethernet.begin(mac, ip, gateway, subnet);
  //Avoid pins 4,10,11,12,13 when using ethernet shield

  delay(5000);  //Time to open the terminal

   TCCR1A = 0;
  TCCR1B = 0;  
  TCNT1 = 34286;   // preload timer
  TCCR1B |= (1 << CS12);    // 256 prescaler 
  TIMSK1 |= (1 << TOIE1);   // enable timer overflow interrupt
  interrupts();             // enable all interrupts
}


//==================================================================
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();
}

ISR(TIMER1_OVF_vect)        // interrupt service routine 
{
  TCNT1 = 34286;   // preload timer
  status_timer1=1;
}

hardware yang dipakai pada percobaan ini

video simulasi

untuk pemesanan alat bisa hubungi dhani 085228292473

atau kunjungi www.keiciptamandiri.com

bel cerdas cermat 3 grup menggunakan plc nv5

pada proyek kali ini kita akan membuat bel cerdas cermat 3 grup

  • jika tombol grup 1 ditekan maka indikator r1 akan menyala, tombol grup 2 dan grup 3 tidak berfungsi, jika tombol reset di tekan maka r1 akan mati
  • jika tombol grup 2 ditekan maka indikator r2 akan menyala, tombol grup 1 dan grup 3 tidak berfungsi, jika tombol reset di tekan maka r2 akan mati
  • jika tombol grup 3 ditekan maka indikator r3 akan menyala, tombol grup 1 dan grup 2 tidak berfungsi, jika tombol reset di tekan maka r1 akan mati
  • racangan hardwarenya seperti gambar dibawah ini

untuk ladder rancangannya

 

untuk pemesanan plc nv5 hubungi 085228292473

atau lewat tokped kei cipta mandiri

 

ngoprek PLC NV5, switch on off

PLC NV5(nano versi5) yaitu sebuah plc clone / kw dari plc outseal.

Spesifikasi PLC NV5

Tegangan 24vdc
8 channel input
8 channel output
2 analog input 4-20mA / 0-5V
Port serial ttl
Port i2c
Regulator switching
diprogram memakai ladder
support outseal studio

 

untuk penampakan plc NV5 tampak seperti gambar di bawah ini

Membuat program dengan outseal studio

Kemudian compile dengan menekan tombol test.

sesudah membuat ladder kemudian di compile ok. lanjut upload laddder

untuk kabel yang dipakai, di rekomendasikan pakai yang seperti ini.

pastikan posisi switch seperti gambar dibawah ini

agar bisa online baudrate di setting 57600 ke atas,

kemudian klik upload

 

proses upload led tx dan rx blinking

video ladder switch on off

plc nv5 online dengan komputer

 

 

untuk pemesanan PLC NV5 bisa kungjungi link tokped ini

 

 

tentang stm32 bluepill (tinggal ubah cpu id)

saat membeli stm32 bluepill, tidak bisa di program langsung dari vs code+plaformio, rasanya kurang maknyus.

waktu membeli saya tidak tahu apakah ic itu dari stm32, gd32 atau cs32. sepertinya yang murah murah di tokopedia pada pakai cs32 (kw nya stm32).

warning atau error saat kita membeli blue pill dari cs 32

Info : The selected transport took over low-level target control. The results might differ compared to plain JTAG/SWD
adapter speed: 1000 kHz
adapter_nsrst_delay: 100
srst_only separate srst_nogate srst_open_drain connect_assert_srst
srst_only separate srst_nogate srst_open_drain connect_assert_srst
Info : Unable to match requested speed 1000 kHz, using 950 kHz
Info : Unable to match requested speed 1000 kHz, using 950 kHz
Info : clock speed 950 kHz
Info : STLINK v2 JTAG v23 API v2 SWIM v4 VID 0x0483 PID 0x3748
Info : using stlink api v2
Info : Target voltage: 3.197369
Warn : UNEXPECTED idcode: 0x2ba01477
Error: expected 1 of 1: 0x0bb11477

untuk solusinya, cari file stm32f1x.cfg

buka file tersebut dan edit

nah dengan merubah isi file tersebut, maka jika membeli sismin bluepill kebetulan icnya cs32f103c8, maka akan bisa di program langsung.

 

geber mang