Semua Tentang Belajar Teknologi Digital Dalam Kehidupan Sehari - Hari

  • IC Timer 555 yang Multifungsi

    IC timer 555 adalah sirkuit terpadu (chip) yang digunakan dalam berbagai pembangkit timer, pulsa dan aplikasi osilator. Komponen ini digunakan secara luas, berkat kemudahan dalam penggunaan, harga rendah dan stabilitas yang baik

  • Ayo Migrasi TV Digital

    Kami bantu anda untuk memahami lebih jelas mengenai migrasi tv digital, apa sebabnya dan bagaimana efek terhadap kehidupan. Jasa teknisi juga tersedia dan siap membantu instalasi - setting perangkat - pengaturan antena dan distribusi televisi digital ke kamar kos / hotel

  • Bermain DOT Matrix - LOVEHURT

    Project Sederhana dengan Dot Matrix dan Attiny2313. Bisa menjadi hadiah buat teman atau pacarmu yang ulang tahun dengan tulisan dan animasi yang dapat dibuat sendiri.

  • JAM DIGITAL 6 DIGIT TANPA MICRO FULL CMOS

    Jika anda pencinta IC TTL datau CMOS maka project jam digital ini akan menunjukkan bahwa tidak ada salahnya balik kembali ke dasar elektronika digital , sebab semuanya BISA dibuat dengan teknologi jadul

  • Node Red - Kontrol Industri 4.0

    Teknologi kontrol sudah melampaui ekspektasi semua orang dan dengan kemajuan dunia elektronika, kini semakin leluasa berkreasi melalui Node Red

Selasa, 20 April 2021

[ Node-RED ] Hello World Dari Pecinta IC Micro 8 bit - Part 2

 




Semangat yg ingin dibangun dari platform Node-RED adalah bagaimana alat kontrol yg sudah ada sebelumnya kini bisa menjadi terhubung secara IOT. Itulah yg menjadi latar belakang dimana orang yg berkecimpung dalam dunia kontrol, PLC, Modbus , dan sebagainya,  kini sudah dilibas juga oleh para opreker IT dengan iming-iming jargon industri 4.0. Tapi kenyataannya memang seperti itu di era setelah 2010 dimana dunia elektronika-kontrol mulai di gabungkan oleh platform hardware opensource dari eranya Arduino - Raspberry pi , hingga protokol komunikasi gratisan nan tangguh seperti MQTT. 

Bagi insinyur yang mulai memasuki masa senja tidak perlu berkecil hati karena Node-RED menyediakan segala kemudahan, tidak lebih susah dibanding saat mempelajari bahasa assembly. Hanya butuh pengenalan disisi programming berbasis web, dimana Node-RED menggunakan Java /Node JS sebagai pembuat server di PC atau raspberry pi. Jadi tidak perlu lagi menginstall PHP TRIAD jaman dulu atau database mySql yg susah itu, kini cukup hanya dengan menginstall package Node bernama dashbord maka kita bisa membuat UI (User Interface) berbasis web sebagai IO ke perangkat yang ingin kita kontrol. 



Langkah pertama untuk membuat UI yang cantik seperti gambar diatas adalah menginstall melalui command prompt :


npm i node-red-dashboard


Selanjutnya kita akan meneruskan praktek Hello World bagian pertama ( baca disini ) , dan kita akan mengontrol display 7 segmen dari UI Node-RED. 




Yang perlu diperhatikan dalam Node-RED adalah format pesan yg dialirkan melalui flow di tiap node adalah berupa JSON yang merupakan standar format komunikasi dalam Node JS / Java. Jadi pesan serial yg diterima PC melalui com port seperti berikut :


{"payload":"Humidity: 79.10 %, Temp: 28.70 Celsius\r\n","port":"COM17","_msgid":"1a33573e.67c289"}


Sehingga untuk menerima data ASCII nya yg dikirim arduino harus melakukan parsing JSON pada "payload" ( msg.payload).



Kembali ke praktek pembuatan UI web dari Node-RED, saya akan melakukan hello world ke UI dengan menuliskan pembacaan serial com port ( yg dikirim arduino sebagai suhu dan kelembaban). perhatikan gambar berikut :


Saya akan menempatkan text pada web UI dan meghubungkannya ke seral COM17 dari PC saya. Untuk itu saya butuh melakukan seting UI nya dengan pertama membuat UI GROUP sebagai canvas untuk menempatkan elemen web nya seperti text, form, grafik dan lain sebagainya.




Dari gambar diatas jangan lupa butuh meng-create nama dan tab dari group UI yg ingin ditampilkan dan hasilnya seperti gambar dibawah ini, web UI dapat diakses pada alamat : http://localhost:1880/ui .



Untuk membuat lebih cantik saya akan menambahkan item berupa gauge (meteran) dan grafik pada web UI, namun perlu melakukan parsing payload sehingga butuh script untuk mendapatkan angka suhu dan kelembaban nya saja. Saya menambahkan FUNCTION node pada flow seperti gambar dibawah :



Isi script pada function bernama temp adalah parsing nilai temperature seperti berikut :



Kita ingat payload string ascii yg dikirimkan arduino ber format seperti berikut :


Humidity: 79.10 %, Temp: 28.70 Celsius


Jadi parsingnya suhu pada karakter  25-29 dan kelembaban pada karakter 10-14. Script diatas berformat java dan hasil akhirnya mengembalikan nilai angka dalam format JSON.


Kemudian pada node gauge kita seting tampilan seperti berikut :



Saya juga menambahkan chart / grafik untuk nilai dari kelembaban. Hasil dari web UI nya seperti berikut :




Nah..bagaimana dengan kontrol 7 segmen dari web UI ? Saya akan menambahkan Slider yang kita bisa geser pada web UI dan otomatis mengirimkan ascii serial ke arduino dan mengubah 7 segmen.



 

Jangan lupa kalau data yg dikirimkan ke comport berupa ASCII karakter jadi topic yg dikirimkan harus sesuai. hasilnya bagaimana ? bagus kok ...



Bagaimana ? Tertarik untuk mengoprek lebih lanjut ? Tunggu tulisan saya berikutnya yaa....

Share:

Senin, 19 April 2021

[ Node-RED ] Hello World Dari Pecinta IC Micro 8 bit - Part 1

 


Tidak ada kata terlambat sesuai pepatah "Old Soldier Never Die", padahal Node-RED telah saya install di PC yang saya gunakan sejak 3 tahun yg lalu. Kenapa saya tinggalkan saat awal menekuni dunia IOT? Ya karena Node-RED terlalu "IT minded" seperti bahasa asing yang bagi mereka para opreker yang terbiasa menggunakan bahasa assembly 8 bit akan menjadi keder juga dibuatnya. Namun di 2021 "Racun" diberikan oleh teman dosen otomasi industri di UK Petra surabaya, dimana mahasiswanya kebanyakan mengembangkan Node-RED dalam meraih ilmu industri 4.0 , dan akhirnya saya pun menyerah dan berusaha catch up dengan anak muda gen-Z yg mulai menjauh dari generasi pre-milenial yang sedikit canggung ketika meninggalkan dunia 8 BIT.

Sepertinya dulu jaman saya kuliah teknik pengaturan / kontrol sangat benci terhadap "FLOW DIAGRAM" karena tidak seperti kabel yg sangat jujur memberitahu arah dan tujuan sinyal kemana, namun flow diagram entah kenapa sangat disukai para engineer berbasis kontrol. Jadi Node-RED adalah kompromi antara dunia KONTROL dengan INFORMATIKA, dan lahirlah sesuatu yang bagi insinyur elektronika sedikit menjelimetkan karena harus dipahami :


  • Node-RED itu membuat sistem IOT standalone berbasis prosesor minimal 32 bit 
  • Node-RED itu Node JS / Java yang membutuhkan minimum system ber - OS Linux/windows
  • Node-RED layaknya membuat web server sederhana untuk kontrol perangkat IOT 
  • Node-Red tidak bisa langsung untuk arduino, jadi microcontroller 8 bit hanya sebagai perantara menuju sensor dan I/O lainnya


Untuk mempersingkat waktu, kita akan loncat ke praktek sesungguhnya yaitu berusaha membuat Hello World menggunakan pembacaan sensor suhu kelembaban DHT 11 /22 yang sudah sangat sering saya bahas. Disisi output saya akan menggunakan 7 segmen  yang nantinya akan dikendalikan oleh Node-RED. Jadi sebelumnya pastikan hardware anda mirip dengan setup yg saya gunakan:


  • Windows PC : Win 7 minimum, Node Js + Node-RED bisa diinstal secara open source
  • Arduino atau Wemos 
  • DHT 11 /22
  • Seven Segmen komon katoda/negatif





Jika instalasi Node-RED sukses maka anda dapat mengaksesnya melalui alamat browser  http://localhost:1880 , dan perlu diperhatikan bahwa semua proses editing dan programming dilakukan melalui web browser. 





Gambar rangkaian diatas sangat umum saya bahas di blog ini, jadi anda yg rajin mengikutinya akan tidak mengalami masalah berarti, dimana scriptnya cukup sederhana membaca DHT11 tiap selang beberapa waktu dan kemudian mengirimkan datanya secara serial ke PC. Lalu PC dapat mengirimkan data kembali ke arduino untuk mengontrol display 7 segmen. Scriptnya saya bagikan seperti dibawah ini :



#include <DHT.h>

//pengaturan port DHT11
#define DHTPIN 9     // PIN 9
#define DHTTYPE DHT11   // DHT 11  sesuaikan yg anda pakai
DHT dht(DHTPIN, DHTTYPE); //// Initialize DHT sensor for normal 16mhz Arduino

//7seg

#define SEGA 2
#define SEGB 3
#define SEGC 4
#define SEGD 5
#define SEGE 6
#define SEGF 7
#define SEGG 8

//timer dht22 
unsigned long previousMillis = 0;
const long interval = 2000;  //tiap 2 detik, sesuaikan

//Variables
float hum;  //humi
float temp; //temperature 

int incomingByte = 0; // menyompan serial data

void setup()
{

    pinMode(SEGA, OUTPUT);
    pinMode(SEGB, OUTPUT);
    pinMode(SEGC, OUTPUT);
    pinMode(SEGD, OUTPUT);
    pinMode(SEGE, OUTPUT);
    pinMode(SEGF, OUTPUT);
    pinMode(SEGG, OUTPUT);

    
    Serial.begin(9600);
    dht.begin();

}



void segmen(char angka)
{
 //ini menulis 7 segmen komon katoda , balik logika kalau anda pakai komon anoda
   switch(angka) {
                  case '0' : { digitalWrite(SEGA, HIGH);
                             digitalWrite(SEGB, HIGH);
                             digitalWrite(SEGC, HIGH);
                             digitalWrite(SEGD, HIGH);                             
                             digitalWrite(SEGE, HIGH);
                             digitalWrite(SEGF, HIGH);
                             digitalWrite(SEGG, LOW);
                             break;
                  }
                  case '1' : { digitalWrite(SEGA, LOW);
                             digitalWrite(SEGB, HIGH);
                             digitalWrite(SEGC, HIGH);
                             digitalWrite(SEGD, LOW);                             
                             digitalWrite(SEGE, LOW);
                             digitalWrite(SEGF, LOW);
                             digitalWrite(SEGG, LOW);
                             break;
                  }
                  case '2' : { digitalWrite(SEGA, HIGH);
                             digitalWrite(SEGB, HIGH);
                             digitalWrite(SEGC, LOW);
                             digitalWrite(SEGD, HIGH);                             
                             digitalWrite(SEGE, HIGH);
                             digitalWrite(SEGF, LOW);
                             digitalWrite(SEGG, HIGH);
                             break;
                  }
                  case '3' : { digitalWrite(SEGA, HIGH);
                             digitalWrite(SEGB, HIGH);
                             digitalWrite(SEGC, HIGH);
                             digitalWrite(SEGD, HIGH);                             
                             digitalWrite(SEGE, LOW);
                             digitalWrite(SEGF, LOW);
                             digitalWrite(SEGG, HIGH);
                             break;
                  }
                  case '4' : { digitalWrite(SEGA, LOW);
                             digitalWrite(SEGB, HIGH);
                             digitalWrite(SEGC, HIGH);
                             digitalWrite(SEGD, LOW);                             
                             digitalWrite(SEGE, LOW);
                             digitalWrite(SEGF, HIGH);
                             digitalWrite(SEGG, HIGH);
                             break;
                  }

                  case '5' : { digitalWrite(SEGA, HIGH);
                             digitalWrite(SEGB, LOW);
                             digitalWrite(SEGC, HIGH);
                             digitalWrite(SEGD, HIGH);                             
                             digitalWrite(SEGE, LOW);
                             digitalWrite(SEGF, HIGH);
                             digitalWrite(SEGG, HIGH);
                             break;
                  }                                                          
                  case '6' : { digitalWrite(SEGA, HIGH);
                             digitalWrite(SEGB, LOW);
                             digitalWrite(SEGC, HIGH);
                             digitalWrite(SEGD, HIGH);                             
                             digitalWrite(SEGE, HIGH);
                             digitalWrite(SEGF, HIGH);
                             digitalWrite(SEGG, HIGH);
                             break;
                  }
                  case '7' : { digitalWrite(SEGA, HIGH);
                             digitalWrite(SEGB, HIGH);
                             digitalWrite(SEGC, HIGH);
                             digitalWrite(SEGD, LOW);                             
                             digitalWrite(SEGE, LOW);
                             digitalWrite(SEGF, LOW);
                             digitalWrite(SEGG, LOW);
                             break;
                  }
                  case '8' : { digitalWrite(SEGA, HIGH);
                             digitalWrite(SEGB, HIGH);
                             digitalWrite(SEGC, HIGH);
                             digitalWrite(SEGD, HIGH);                             
                             digitalWrite(SEGE, HIGH);
                             digitalWrite(SEGF, HIGH);
                             digitalWrite(SEGG, HIGH);
                             break;
                  }
                  case '9' : { digitalWrite(SEGA, HIGH);
                             digitalWrite(SEGB, HIGH);
                             digitalWrite(SEGC, HIGH);
                             digitalWrite(SEGD, HIGH);                             
                             digitalWrite(SEGE, LOW);
                             digitalWrite(SEGF, HIGH);
                             digitalWrite(SEGG, HIGH);
                             break;
                  }
   }
}
void loop()
{
    unsigned long currentMillis = millis();
 
   if(currentMillis - previousMillis >= interval) {
    // dibaca tiap jeda yg ditentukan diatas 
    previousMillis = currentMillis;   
    
    //Read data and store it to variables hum and temp
    hum = dht.readHumidity();
    temp= dht.readTemperature();
    //Print temp and humidity values to serial monitor
    Serial.print("Humidity: ");
    Serial.print(hum);
    Serial.print(" %, Temp: ");
    Serial.print(temp);
    Serial.println(" Celsius");
   }

if (Serial.available() > 0) {
    // read the incoming byte:
    incomingByte = Serial.read();

    segmen(char(incomingByte));

  //  7 segmen akan berubah sesuai 
  //  incoming byte yg masuk
   
 }
   
}

   


Hasil jika dijalankan dan dihubungkan ke PC akan seperti ini :



Kita akan menuju ke Node-Red dan jangan lupa untuk menginstal add ons / node red serial ports melalui comand prompt windows.


  npm i node-red-node-serialport


Langkah selanjutnya akan kita baca data serial port dan kita masukkan ke debuger pada Node-RED



Kita akan membaca input serial dari COM17 pada PC saya dengan baudrate 9600 dan tipe datanya berupa ASCII text. Lalu saya hubungkan dengan debuger yg bisa dipilih pada icon berderet disebelah kiri layar Node-RED. Hasil outputnya adalah sebagai berikut :




Mudah bukan ? Data pembacaan suhu DHT11 saya sudah tampil pada debugger. Bagaimana dengan kirim balik ke Arduino ? Kita akan bahas selanjutnya digabungkan dengan UI web dari Node-Red yang sangat menarik seperti gambar dibawah ini :




Silahkan lanjut ke part 2 disini : https://www.aisi555.com/2021/04/node-red-hello-world-dari-pecinta-ic_20.html


Share:

Minggu, 18 April 2021

Cara Mencari Quran TV dan Sunna TV - Ada di TV Satelit Mana Saja ?

 



Bulan Ramadhan bukan tentang Puasa Ramadan saja, tapi di dalamnya umat Islam dianjurkan untuk memperbanyak amalan-amalan sunnah lainnya. Dalam sebuah hadist, Rasullullah pernah bersabda, Bulan Ramadhan adalah bulan yang penuh berkah, karena Allah membukakan pintu-pintu di langit dan allah menutup pintu neraka.

Hal itu seperti dijelaskan dalam buku Panduan Lengkap Ibadah Muslimah karya Syukron Maksum, di halaman 140.


"Sesungguhnya telah datang kepadamu bulan yang penuh berkah. Allah mewajibkan kamu berpuasa, karena dibuka pintu- pintu surga, ditutup pintu-pintu neraka, dan dibelenggu syaitan- syaitan, serta akan dijumpai suatu malam yang nilainya lebih berharga dari seribu bulan. Barangsiapa yang tidak berhasil mem¬peroleh kebaikannya, sungguh tiadalah ia akan mendapatkan itu untuk selama-lamanya." (HR Ahmad, An-Nasa’l, dan Baihaqi).


Bulan Ramadhan juga merupakan salah satu waktu terbaik umat muslim untuk menghapus dosa dam menambah pahala.


“Barangsiapa yang berpuasa Ramadhan karena penuh keimanan dan mengharap pahala dari Allah Swt, maka diampuni dosa-dosanya yang telah lalu”. (HR.Bukhari dan Muslim).


Untuk itu alangkah baiknya menghadirkan siaran langsung dari mekah (masjidil haram) dan madinah (masjid nabawi) di rumah anda. Siaran 24 jam dengan latar belakang visual kegiatan ibadah di kabah dan masjidil haram, di iringi alunan merdu murottal yang menambah ke khusyukan beribadah. Bagaimana cara mencari siaran Quran TV dan Sunna TV melalui Parabola ?


Dengan Parabola Jaring 


 

Untuk parabola jaring C band di wilayah Indonesia dapat mengarahkan piringan parabolanya ke satelit berikut :


  • ASIASAT 5 ( 100.5 Bujur Timur)  : Transponder : Frekuensi 4080, Pol : H  , Simbol Rate 30000
  • TELKOM 4 (108 Bujur Timur) : Transponder : Frekuensi 3766, Pol : H  , Simbol Rate 21818

Kesemua siaran disatelit diatas merupakan siaran Free To Air.



Dengan Parabola Mini



Parabola mini menjadi solusi jika lokasi rumah tidak memungkinkan untuk memasang yang besar-besar dan ada beberapa layanan satelit gratis maupun berbayar ( walau paketnya basic / gratis juga) :


  • SES 9 ( 108 BT ) - Nex Parabola - FTA -  Frekuensi 11861 H  , Simbol Rate 45000
  • Asiasat 9 (122 BT) - Ninmedia - FTA -  Frekuensi 12655 V  , Simbol Rate 45000
  • Measat 3A ( 91.4 BT) - Kvision - FTA -  Frekuensi 12436 H  , Simbol Rate 31000
  • Measat 3A ( 91.4 BT) - Transvision - FTV -  Frekuensi 12603 V  , Simbol Rate 31000


Melalui Youtube 

Jika anda tidak memungkinkan melakukan instalasi parabola dirumah anda maka youtube menjadi pilihan, cukup dengan mencari kata kunci : Live Mekah dan Sunna tv maka anda akan diarahkan ke saluran yang sama dengan yang didapatkan melalui satelit. Namun syaratnya anda butuh kuota dan jaringan internet yang memadai.






Demikian penjelasan saya mengenai siaran TV mekah - madinah semoga dapat membantu anda menjalani ibadah sehari-hari dirumah anda menjadi lebih bermanfaat.

Untuk pemasangan parabola di daerah Surabaya - Sidoarjo dan sekitarnya bisa menghubungi Zaki 0812 4663 7645


Share:

Sabtu, 17 April 2021

Jam 4 Digit - Kembali Ke Attiny2313 Saat Atmel Ternyata Sudah Dibeli Microchip

 




Kemana aja sih masbro kok baru di 2021 sadar ATMEL yang memproduksi IC microcontroller legendaris telah dibeli Microchip di 2016? Gak kemana-mana kok... masih disini saja berkutat dengan dunia Elektronika diluar per - IC - an, setelah di tahun 2015 menghadapi kenyataan pasar elektronika digital tergerus dengan solusi Arduino yg memanjakan pengguna microcontroller 8 bit. Tapi kini di 2021 gak salah kita ulik kembali IC kesayangan ATTINY2313 di Era baru saat IC jadul akan diprediksi di korek-korek lagi dan muncul kembali akibat adanya perang "CHIP" antara USA vs CHINA. 





Kita gak ngomong politik-politikan ah...yang penting kita tetap berusaha memanfaatkan kondisi yang ada sebaik mungkin. Kita lanjut bercerita mengenai Microchip yg sudah mengakuisi ATMEL, dan saya akan bahas pada sisi development toolsnya. Kini yang namanya AVR Studio (Win AVR) - ATMEL STUDIO (sampai versi 7) kini telah digabungkan lebih lengkap dalam MICROCHIP STUDIO. Masih setia dengan GCC nya dimana librarynya tinggal install dari lib software maupun driver programmer. Yang saya masih punya di rumah adalah AVRISP - MKII dan ternyata tinggal colok sudah dapat dideteksi oleh komputer PC yang saya gunakan.



Yang menjadi pemicu dari kembalinya saya ke dunia ATtiny adalah sebuah WA dari orang senegal yg bekerja di prancis namanya jean paul, yang meminta saya untuk membuatkan program dari rangkaian jam berbasis C2051 diatas. Kita ketahui IC micro seri itu sudah obsolete dan karena memiliki kaki dan pola yang mirip puuool dengan ATTiny2313 maka langsung aja saya ambil lagi komponen dan breadboard dan mencoba membuat praktek LED blink untuk membangkitkan gairah dan  menghidupkan sel otak yg hampir 5 tahun dipakai untuk hal yg berbeda.






Ternyata Downloader , ATtiny dan PC saya masih bersahabat dan membuat adapatasinya lumayan cepat. Sehingga dalam waktu singkat sudah bisa membuat counter 7 segmen dengan script sederhana yang tinggal copy paste dari blog ini juga.



#define F_CPU 1000000UL // default internal RC clock 
#include <avr/io.h>
#include <util/delay.h>


void segmen (int angka)

{

//susunan segmen dari portB = AFBEDCGdp
//menggunakan 7 segmen common katoda 

	switch (angka)
	{
	                          //AFBEDCGdp	
    	        case 0 : { PORTB =0b11111100; break ; }
		case 1 : { PORTB =0b00100100; break ; }
		case 2 : { PORTB =0b10111010; break ; }
		case 3 : { PORTB =0b10101110; break ; }
		case 4 : { PORTB =0b01100110; break ; }
		case 5 : { PORTB =0b11001110; break ; }
		case 6 : { PORTB =0b11011110; break ; }
		case 7 : { PORTB =0b10100100; break ; }
		case 8 : { PORTB =0b11111110; break ; }
		case 9 : { PORTB =0b11101110; break ; }
		case 10 : { PORTB =0b0; break ; } 
	}


}



int main(void)

{

	int counter=0; //variabel delay
	int digit=0; //variabel digit yang ditampilkan


	// Port untuk display 7 segment
	DDRB |= (1<<PB0)|(1<<PB1)|(1<<PB2)|(1<<PB3)|(1<<PB4)|(1<<PB5)|(1<<PB6)|(1<<PB7);



	while(1)

	{

		counter++ ; //bikin delay nambah terusss

		// sesuaikan nilai max counter dengan detik yg pas, tentunya tidak akurat
		if(counter >= 20000) { 
			counter =0 ; 
			digit++;
			if(digit == 10) digit=0;
			
			
			 }

		// nilai 1/2 dari counter untuk blink dot "."
		if(counter >= 10000) PORTB |=(1<<PB0) ;

		// tampilkan digit
	           segmen(digit);

			


	}

	return 0;

}





Dari circuit yang saya dapat dari orang senegal tadi, kita menggunakan 7 segmen komon katoda / komon negatif, sehingga kalau kita ingat rangkaian LED dalam 7 segmen vs Attiny seperti ini :


Dalam rangkaian segmen dihubungkan ke port B (pin 12 - 19 , 7 segmen 1 dot) sehingga dengan susunan yang pas maka script untuk menulis segmen menjadi seperti ini :


switch (angka)
{
                          //AFBEDCGdot
            case 0 : { PORTB =0b11111100; break ; }
case 1 : { PORTB =0b00100100; break ; }
case 2 : { PORTB =0b10111010; break ; }
case 3 : { PORTB =0b10101110; break ; }
case 4 : { PORTB =0b01100110; break ; }
case 5 : { PORTB =0b11001110; break ; }
case 6 : { PORTB =0b11011110; break ; }
case 7 : { PORTB =0b10100100; break ; }
case 8 : { PORTB =0b11111110; break ; }
case 9 : { PORTB =0b11101110; break ; }
 
}

Dan hasil dari praktek counter 1 segmen menjadi seperti ini :




Selanjutnya kita hanya butuh memparalel 4 buah 7 segmen dan menghubungkan common dari tiap 7 segmen menuju microcontroller, lalu dibuat proses scanning bergantian menyalakan 7 segmen. Dari rangkaian yg diberikan kita akan menggunakan port D0-3 untuk melakukan scanning sehingga urutan 7 segmen yg ditampilkan seperti berikut :

  • (1) Port D0 Mati , Port D1,D2,D3 On , 7 segmen menampilkan digit puluhan jam
  • (2) Port D1 Mati , Port D0,D2,D3 On , 7 segmen menampilkan digit satuan jam
  • (3) Port D2 Mati , Port D0,D1,D3 On , 7 segmen menampilkan digit puluhan menit
  • (4) Port D3 Mati , Port D1,D2,D0 On , 7 segmen menampilkan digit satuan menit

Karena masing 7 segmen di nyalakan bergantian secara cepat, namun mata akan melihatnya lebih lambat dan efeknya 7 segmen tidak terasa berkedip. Script menampilkan scanning 7 segmen seperti berikut :


     segmen(10); //blanking biar tidak berbayang
     digit = jam/10;
     PORTD &= ~(1<<PD0);
     PORTD |= (1<<PD1) |(1<<PD2) |(1<<PD3) ;
     segmen(digit);
     _delay_ms(1);

     segmen(10);
     digit = jam%10;
     PORTD &= ~(1<<PD1);
     PORTD |= (1<<PD0) |(1<<PD2) |(1<<PD3) ;
     segmen(digit);
    _delay_ms(1);

     segmen(10);
     digit = min/10;
     PORTD &= ~ (1<<PD2);
     PORTD |= (1<<PD1) |(1<<PD0) |(1<<PD3) ;
     segmen(digit);
     _delay_ms(1);

     segmen(10);
     digit = min%10;
     PORTD &= ~ (1<<PD3);
     PORTD |= (1<<PD1) |(1<<PD2) |(1<<PD0) ;
     segmen(digit);
     _delay_ms(1);


Sedangkan untuk menjadikan jamnya akurat saya menggunakan clock external berupa XTAL 4Mhz sehingga ATTiny butuh diubah fusebitnya menjadi CLK_DIV8 tidak aktif dan clock external 3-8Mhz. 







Dan yang tidak kalah pentingnya menggunakan Interupt Timer yang sangat ampuh mendapatkan clock 1 detik yang akurat. Scriptnya seperti berikut :


ISR(TIMER1_COMPA_vect)

{

detik ++;

if ( detik == 60)
{  detik=0;
min++;
}

if ( min == 60)
{ min = 0;
jam++ ;
}
if (jam == 24) jam=0;

}


int main(void)

{
int digit=0; //variabel digit yang ditampilkan
   
   
TCCR1B |= (1 << WGM12); // Configure timer 1 for CTC mode
TIMSK |= (1 << OCIE1A); // Enable CTC interrupt
OCR1A  = 62499; //compare the CTC A
TCCR1B |= (1 << CS11)|(1 << CS10); // Start timer at Fcpu/64

     sei();

..........................
}




Sebenarnya saya hanya mengulang saja tulisan lawas saya yang bisa dibaca di link dibawah ini :


Hasilnya seperti ini brooo....







SELAMAT MENCOBA



.
Share:

Kamis, 15 April 2021

Skills yang dibutuhkan Automation Engineer di era Industry 4.0 (Tulisan seorang kawan - part 1)

 BY HANDY WICAKSONO ST, MT, PHD - Dosen Kontrol & Otomasi UK Petra Surabaya 




Seorang Automation Engineer (AE) harus memiliki knowledge dan skill terkait sensor dan aktuator, instrumentasi dan kontrol, PLC, HMI, SCADA, dan lain – lain. Beberapa skill terkait teknologi informasi juga penting, di antaranya: coding, data communication, network, sampai ke database. Saya pernah menuliskan profesi AE di salah satu post lama.


Saat dunia sudah memasuki tahapan Revolusi Industri 4.0, makin banyak skills lain yang harus ditambahkan sehingga AE siap bersaing di masa mendatang. Skills di beberapa bidang berikut ini (menurut saya) akan menjadi nilai tambah bagi AE untuk siap menghadapi era industri 4.0:


  1. Industrial internet of things
  2. Machine learning
  3. Cloud computing
  4. Computer vision

Pada posting kali ini, akan dibahas 2 topik: Industrial Internet of Things (IIoT) dan machine learning. Saya akan menjelaskan deskripsi singkat, dan bagaimana anda bisa mempersiapkan diri untuk memiliki skill di bidang tersebut.


1. Industrial internet of things

Deskripsi

Sebagai pengantar, pemahaman sederhana Internet of Things (IoT) ialah kondisi dimana berbagai peralatan (umumnya sensor dan aktuator) saling terhubung satu dengan yang lain melalui internet. Penerapan IoT secara spesifik di industri/pabrik disebut dengan IIoT. Berikut ini contoh arsitektur IIoT yang terdiri dari 3 bagian: edge (meliputi PLC atau kontroler lain, HMI, sensor, aktuator), network, dan cloud.


IIoT Architecture

Sumber: https://en.wikipedia.org/wiki/Industrial_internet_of_things


Selama ini dunia automasi industri menerapkan Automation Hierarchy (lihat gambar di bawah), sehingga untuk melakukan komunikasi antara peralatan di salah satu level dengan level lainnya harus mengikuti hirarki tersebut. Misalnya jika suatu software SCADA ingin mendapatkan nilai sensor, maka software tersebut harus “meminta” data tersebut ke PLC, dan PLC akan “memberikan” data dari sensor yang terhubung ke PLC. Hal ini tentunya membuat sistem secara umum berjalan lebih lambat dan kurang fleksibel.


Sumber: https://iot-analytics.com/industrial-internet-disrupt-smart-factory/

Di sinilah Industrial Internet of Things (IIOT) melakukan perubahan besar, karena setiap peralatan (things) dapat terhubung dengan peralatan di level manapun melalui internet. Boleh dikatakan tidak ada lagi hirarki di sini. Akibatnya, sistem bekerja dengan lebih cepat dan fleksibel. Hal ini tentunya bukan tanpa kekurangan, diantaranya sistem IIOT masih belum teruji di lapangan dan munculnya masalah security karena sistem menjadi terbuka via internet.


Bagaimana mempersiapkan diri?

Anda bisa mulai dengan mempelajari konsep internet of things secara umum. Sangat banyak sumber yang bagus di internet (video, artikel) yang membahas IoT. Setelah itu, anda bisa mulai masuk ke IIoT, yaitu penerapan IoT di industri/pabrik. Saat ini hampir semua vendor otomasi terkemuka (misal: Siemens, Schneider, AB, dll) telah memiliki produk yang terkait dengan IIoT.


Selain konsep, anda juga bisa mencoba mempraktekkan langsung. Salah satu tool yang menurut saya paling mudah (dan gratis) untuk dipelajari ialah NodeRed. Jika anda memiliki PLC fisik dan IoT gateway (misal RaspberryPi atau Siemens IOT 2040), kemungkinan besar PLC anda bisa terhubung dengan IIoT memanfaatkan NodeRed. Saya telah menulis beberapa artikel tentang koneksi NodeRed dan PLC Siemens S71200 (bagian 1, bagian 2).


FYI, dalam beberapa semester ini cukup banyak mahasiswa di Teknik Elektro, UK Petra (dan pasti di kampus lain juga) yang menggunakan platform ini.


2. Machine Learning

Deskripsi

Machine learning ialah mekanisme cerdas yang diterapkan pada suatu agent (bisa berupa software, robot, dll) sehingga ia dapat belajar sendiri dari pengalamannya, dan menjadi makin pintar dalam mengambil keputusan. Machine learning ialah bagian dari bidang artificial intelligence (AI) yang saat ini sedang sangat populer di berbagai bidang. Mulai dari self-autonomous car sampai situs perjodohan, semua menggunakan teknologi machine learning.


Di dunia automasi industri, machine learning (atau AI secara umum) juga mulai banyak diterapkan. Salah satu bidang penerapannya ialah predictive maintenance, di mana sistem akan menentukan kapan suatu peralatan harus diperbaiki atau diganti. Umumnya peralatan akan diganti menurut jadwal yang sudah dibuat, hanya kondisi peralatan yang berbeda – beda (misal: ada yang memiliki cacat bawaan, namun ada yang tidak), membuat pergantian alat yang terlalu cepat (atau terlalu lambat) dapat merugikan perusahaan. Machine learning dapat membuat prediksi optimal tentang hal ini.


sumber: https://bit.ly/32gt6BC


Contoh penerapan lain ialah dalam proses penentuan varian dan jumlah produk yang harus diproduksi suatu pabrik. Sistem dengan machine learning dapat memberi rekomendasi varian produk (dan berapa jumlah produk) yang harus dibuat pada periode waktu tertentu sehingga produk tersebut laku dengan baik. Sering kali pabrik membuat berbagai varian produk yang kurang laku di pasaran sehingga merugikan pabrik itu sendiri.


Selain itu juga ada penerapan machine learning untuk mendeteksi kerusakan barang dengan computer vision. Hal ini akan saya bahas secara khusus pada posting berikutnya.


Bagaimana mempersiapkan diri?


Saat ini sangat banyak media belajar machine learning yang bisa Anda temukan, salah satu sumber terbaik menurut saya ialah belajar dari kuliah online “Machine Learning” yang disampaikan Andrew Ng di Coursera. Cara penyampaian Andrew Ng sederhana dan mudah dipahami (tentunya dalam bahasa Inggris).


Sebagai tool untuk praktek, Anda bisa menggunakan bahasa pemrograman Python, dan menambahkan library machine learning seperti Scikit-Learn yang semuanya bersifat gratis. Ada banyak sumber lain yang membahas penerapan machine learning dengan library tersebut. Setelah itu anda bisa berpindah mempelajari library untuk big data ataupun deep learning.


Bagaimana menghubungkan algoritma machine learning dengan kontroler seperti PLC? Dalam hal ini NodeRed kembali bisa membantu, karena ada node yang dapat mengakomodasi ML library seperti ScikitLearn maupun Tensorflow. Sebagai catatan, saya belum pernah mencoba node ini secara langsung.


Demikian posting kali ini, 2 topik lain akan saya bahas pada posting mendatang. Terima kasih, semoga bermanfaat!

Share:

Kontak Penulis



12179018.png (60×60)
+628155737755

Mail : ahocool@gmail.com

Site View

Categories

555 (8) 7 segmen (3) adc (4) amplifier (2) analog (19) android (12) antares (9) arduino (26) artikel (11) attiny (3) attiny2313 (19) audio (5) baterai (5) blog (1) bluetooth (1) chatgpt (2) cmos (2) crypto (2) dasar (46) digital (11) dimmer (5) display (3) esp8266 (26) euro2020 (13) gcc (1) iklan (1) infrared (2) Input Output (3) iot (60) jam (7) jualan (12) kereta api (1) keyboard (1) keypad (3) kios pulsa (2) kit (6) komponen (17) komputer (3) komunikasi (1) kontrol (8) lain-lain (8) lcd (2) led (14) led matrix (6) line tracer (1) lm35 (1) lora (8) MATV (1) memory (1) metal detector (4) microcontroller (70) micropython (6) mikrokontroler (1) mikrokontroller (14) mikrotik (5) modbus (9) mqtt (3) ninmedia (5) ntp (1) paket belajar (19) palang pintu otomatis (1) parabola (88) pcb (2) power (1) praktek (2) project (33) proyek (1) python (7) radio (28) raspberry pi (4) remote (1) revisi (1) rfid (1) robot (1) rpm (2) rs232 (1) script break down (3) sdcard (3) sensor (2) sharing (3) signage (1) sinyal (1) sms (6) software (18) solar (1) solusi (1) tachometer (2) technology (1) teknologi (2) telegram (2) telepon (9) televisi (167) television (28) transistor (2) troubleshoot (3) tulisan (93) tutorial (108) tv digital (6) tvri (2) vu meter (2) vumeter (2) wav player (3) wayang (1) wifi (3)

Arsip Blog

Diskusi


kaskus
Forum Hobby Elektronika