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

Minggu, 31 Maret 2024

[RTL-SDR]Tuning ke RRI Surabaya Digital DAB+

 



Tulisan ini mungkin saya anggap pembuktian kalau siaran RRI digital di kota Surabaya memang benar adanya (tulisan saya 3 tahun lalu bisa baca disini ). Sejak dulu RRI telah men "digital" kan dirinya melalui satelit telkom 1 di tahun 2000an dimana ada transponder yang disewa untuk siaran lokal RRI se nusantara, lalu kemudian kerancuan dimulai ketika istilah DIGITAL terbagi 2 kubu yaitu siaran lewat internet  versus siaran yang menggunakan modulasi digital namun tetap menggunakan spektrum radio dalam penyiarannya. Kerancuan ini juga terjadi di pertelevisian, dimana kita sudah merasakan bersama bagaimana susahnya migrasi di TV Digital. Bayangkan saja jika ada proyek migrasi penyiaran radio analog ke digital, yang penetrasinya makin tergerus "tiktok" serta medsos lainnya.

Namun RRI sebagai badan penyiaran yang harus tunduk dengan aturan penyiaran internasional seyogyanya memang harus mengikuti perkembangan jaman, walaupun pendengar digital lewat internet dan smartphone lebih banyak tentunya penetrasinya. Sebagai lanjutan kegatalan saya mencoba dongle rtl-sdr kw murah meriah, mari kita lihat gambar spektrum di frekuensi vhf seputaran 220Mhz.




Terdapat sinyal besar yang meghabiskan bandwith 1.536 Mhz, dan saya yakin ini signal digital karena sinyalnya begitu halus batas kanan dan kirinya layaknya benteng besar. Lalu yang saya lakukan untuk mendecode siaran digital ini adalah mengingat kembali kalau dulu saya pernah menulis tentang percobaan radio digital RRI di frekuensi VHF Kanal 12D (229.072 Mhz), dan  kemudian saya menginstal aplikasi DAB Player yang saya temukan di Internet. Namun sayangnya driver yang digunakan adalah driver bawaan USB DVBT stick, sehingga saya jadi gak bisa utak-atik radio lewat SDR lagi.




Ketika saya akhirnya beralih mengoprek SDR di OS linux/ubuntu disanalah saya menemukan aplikasi yang ber driver sama Osmocom sehingga langsung saja saya arahkan ke githubnya untuk mengunduh image linux nya disini : https://github.com/JvanKatwijk/qt-dab/releases. Ada 2 versi linux yang dapat dunduh, versi windows juga ada. Jadi silahkan gunakan yang sesuai dengan PC anda.  

Untuk dapat menjalankan nya di linux maka butuh merubah jenis aplikasinya jadi executable, gak perlu pake command line yang susah, gini aja sesuai gambar dibawah lewat klik kanan.



Setelah itu aplikasi sudah bisa di RUN dan pencet control. DI bagian bawah terdapat input dan bisa pilih DAB STICK dan bisa di scan single di frekuensi / kanal 12D di Jakarta maupun Surabaya. Kota lain silahkan full scan aja biar lebih bagus mungkin aja ada radio lainnya juga bersiaran di Digital DAB.



Tampilan siaran DAB+ di QT-DAB seperti ini : 



 

1 kanal DAB+ dapat menampung 8 buah siaran radio berformat Audio HE-AAC 128kbps (standar audio Mpeg player) sehingga total bitrate yg dipakai sekitar 1.136 Mbps . Sehingga kualitas suaranya sangatlah jernih ditelinga layaknya memutar CD atau MP3. Untuk membikin seru, kita tampilkan grafik-grafik yang secara teknis berguna ( untuk anda mahasiswa jurusan telekomunikasi).










Mau mencobanya ? Silahkan saja...Seru kok

Share:

Jumat, 29 Maret 2024

[RTL-SDR] Mendengarkan Radio FM Dengan Gnu Radio

 

 

Setelah berhasil menginstall Gnu Radio dan driver osmocom- osmosdr, bisa baca dulu disini, kita lanjutkan utak atik dongle rtl-sdr kelas jangkrik seharga 65 ribu perak dengan mempelajari bagaimana mengaksesnya melalui gnuradio companion yang berbasis GUI. Sebenarnya coding secara manual bisa dilakukan menggunakan python dan c++, namun saya rasa akan membutuhkan pemahaman yang sangat lama (bagi saya, tidak untuk kawan yang ahli nya ahli ulo python). 

Kita mulai dengan perintah : sudo gnuradio-companion  dan kemudian layar polos flows dari gnuradio companion muncul, tenang saja ikuti langkah urut berikut ini :


1. Beri nama proyek radio kamu agar terlihat keereeen




2. Tambahkan sumber radio sdr yang kita pakai, dalam hal ini dengan driver dari osmocom / osmo SDR. Menu sebelah paling kanan adalah drop down menu untuk memilih "block" yang akan ditambahkan. Jangan kaget kalau terlihat perangkatnya belum nyambung (Source - out(0): Port is not connected) abaikan saja.

 


 

3. Isikan parameter didalamnya, ikuti saja langkah sesuai gambar dibawah. Nilai-nilai yang dipakai berulang seperti sample rate atau frekuensi dapat di berikan sebagai block variabel, seperti pada pemrograman pada umumnya.



 

4. Selanjutnya akan semakin menjadi bahasa yang "hanya" dipahami oleh mahasiswa jurusan teknik telekomunikasi seperti istilah Filter dan FFT. Sebagai tukang solder ya kta hantam saja yang penting sinyalnya keluar seperti gambar flow berikut, dimana saya melakukan tuning radio FM di daerah Surabaya. Sambungkan node in dan out yang sesuai pada editor.


 

5. Tuh kan mumet ! Untuk bisa menampilkan gambar gelombangnya seperti gambar diatas, perlu dilakukan pengaturan FFT seperti gambar berikut :


6. Selanjutnya tambah membikin dahi mengkerut karena mulai muncul istilah-istilah pengolahan sinyal pada python seperti : FILTER, DECIMATION, DOWN SAMPLING, RE SAMPLING, dan tetek bengek lainnya. Intinya sinyal FM akan dipotong - diturunkan - dibagi, sehingga dapat diolah menjadi gelombang suara. Ini bukanlah makanan saya dan mungkin saat saya sudah paham maka saya akan tidak segan-segan untuk membaginya. Ini adalah salah satu alasan saya, DULU KETIKA KULIAH, untuk mengambil jurusan tukang solder, ketimbang tukang sinyal yang matematikanya harus jago!

 

7. Output dari audio sink pada linux lumayan bikin pusing setingannya, namun saya kasi clue untuk ubuntu ( berbasis driver alsa ) seperti pada gambar dibawah ini audio default saya pada ubuntu, namun jika ingin mngeluarkan suara di layar tv HDMI gunakan : hdmi:CARD=HDMI,DEV=0 , jika bingung coba cari list alsa device pada terminal dengan perintah :  aplay -L .

 

 


8. Diagram flow lengkapnya seperti ini, dapat juga diunduh mentahannya di sini.


 


SELAMAT MENCOBA !

Share:

[RTL-SDR] Bosan dengerin cuap-cuap? Ayo main lebih jauh dengan GNU RADIO

 


SDR# Airspy sudah bosen, frekuensi polisi udah ketemu sampai tau update kegiatan mereka. Lalu liat decoding DMR juga ketemunya orang di gudang ekspedisi ngobrolin hal yg gak paham. Selanjutnya apa ya yang menarik untuk dibahas? 

Ehhhh kebetulan nih saya sedang getol-getolnya menyambung lagi oprek lora yang saya lakukan dikampus unesa surabaya. Ada beberapa anak yang skripsi nya mengenai lora sedang saya bimbing dan ada anak magangnya juga. Ini juga yang menyebabkan saya membeli dongle rtl2832 merek Epro yang katanya KW. 

 

 

 Saya ingin membaca sinyalnya lora, dan memang berhasil membaca sak-"klebat "-an chirp lora di waterfall SDR#. Lalu kalau saya ingin men-decode-nya saya harus gimana? Inilah kemudian memutuskan saya untuk meng-eksplor lebih jauh menggunakan GNU RADIO.


Untuk menggunakan gnu radio, maka mau tidak mau saya harus menggunakan OS linux yang kebetulan PC saya terdapat distro paling umum Ubuntu didalamnya. Ya langsung saja saya install package Gnu-radio beserta driver RTL-SDR yang saya pakai. Langkahnya seperti ini kira kira:


Install melalui terminal, luangkan waktu sejenak dan internet yang kencang:    

 

sudo apt-get install gnuradio

 

Setelah itu kita cek apakah driver dari perangkat USB dongle RTL-SDR sudah tersedia di Gnu Radio companion dengan mengecek adanya menu osmosdr di kanan bawah layar pilihan bloc. Jika tidak ada (versi 3.8 kebawah)diharuskan menginstall driver RTL-SDR yang sesuai sehingga  tidak menggunakan mode DVBT, dibuat oleh osmocom jerman. Langkahnya seperti ini :


git clone https://gitea.osmocom.org/sdr/gr-osmosdr
cd gr-osmosdr/
mkdir build
cd build/
cmake ../ DINSTALL_UDEV_RULES=ON -DDETACH_KERNEL_DRIVER=ON
make
sudo make install
sudo ldconfig

 

Jika sudah selesai maka bisa melakukan test dengan perintah  $ rtl_test



Jika layar terminal tadi belum muncul seperti gambar diatas, mungkin butuh menambahkan  baris text ini  di /etc/modprobe.d/blacklist.conf

 

blacklist dvb_usb_rtl28xxu 

 


Gunakan : sudo nano /etc/modprobe.d/blacklist.conf agar lebih mudah mengeditnya.


Selanjutnya apa ya ? Kamu bisa menggunakan IDE Drag & Drop dari gnuradio companion ( $ gnuradio-companion ) untuk menambahkan semua komponen perangkat SDR. Sedikit njlimet dan saya akan memulai pada memperkenalkan Gnu Radio Companion  untuk tuning siaran radio FM. silahkan di baca bagian selanjutnya ya..





Share:

Kamis, 28 Maret 2024

[RTL-SDR] Teknologi Radio Analog Jadul, Dapat Apa Sih di 2024 ?

 



Jadul amat di tahun 2024 main radio analog ? Hellukk jangan gitu dong, semua yang telah menjadi digital (saat tulisan ini disusun), juga berasal dari analog lhoo... Namun karena memang kebutuhan akan frekuensi sebagai sumber daya alam terbatas, maka dengan hadirnya ilmu digital, menjadikan pemanfaatan spektrumnya menjadi lebih efieien. GSM 5G yang kalian pakai sekarang juga diawali oleh teknologi selular AMPS di tahun 90an yang kemudian dengan kebutuhan yang meningkat dapat dilayani oleh sistem digital GSM dengan lebih bagus. Kita akan bahas secara pelan dilain kesempatan, dan kali ini saya akan berbagi dapat apa sih pada frekuensi radio di wilayah saya  ?

Namun pertama kita lihat dulu pembagian spektrum frekuensi radio yang dibagi oleh ITU dan dilokalkan di Indonesia oleh Kominfo.  



Wikipedia menulis seperti ini :

  • Tremendously low frequency (TLF): < 3 Hz: >100.000 km: Natural Electromagnetic Noise
  • Extremely Low Frequency (ELF): 3 – 30 Hz: 10.000 – 100.000 km: Submarines
  • Super Low Frequency (SLF): 30 – 300 Hz: 1.000 – 10.000 km: Submarines
  • Ultra Low Frequency (ULF): 300 – 3.000 Hz: 100 – 1.000 km: Submarines, mines
  • Very Low Frequency (VLF): 3 – 30 kHz: 10 – 100 km: Navigation, time signal, Submarines, heart rate monitor
  • Low Frequency (LF): 30–300 kHz: 1 – 10 km: Navigation, time signal, Radio AM (long wave), RFID
  • Middle Frequency (MF): 300 – 3.000 KHz: 100 – 1.000 m: Radio AM (medium wave): (Banyak digunakan dalam radio siaran swasta niaga)
  • High Frequency (HF): 3 – 30 MHz: 10 – 100 m: Short wave Broadcast, RFID, radar, Marine and Mobile radio telephony: (Banyak dipakai untuk hubungan ke tempat yang jauh/ terpencil.)
  • Very High Frequency (VHF): 30 – 300 MHz:1 – 10 m: Radio FM, Television, Mobile Communication, Weather Radio: (Banyak digunakan untuk kepentingan hubungan jarak dekat)
  • Ultra High Frequency (UHF): 300 – 3.000 MHz: 10 – 100 cm: Television, Microwave device / communications, mobile phones, wireless LAN, Bluetooth, GPS, FRS/GMRS: (Banyak digunakan untuk kepentingan hubungan jarak dekat)
  • Super High Frequency (SHF): 3 – 30 GHzv: 1 – 10 cm Microwave device / communications, wireless LAN, radars, Satellites, DBS: (Banyak digunakan untuk tererstrial dan satelit )
  • Extremely High Frequency (EHF): 30 – 300 GHz: 1 – 10 mm High Frequency Microwave, Radio relay, Microwave remote sensing: (Banyak digunakan untuk tererstrial dan satelit )
  • Tremendously High Frequency (THF): 300 – 3.000 GHz: 0.1 – 1 mm: Terahertz Imagin, Molecular dynamics, spectroscopy, computing/communications, sub-mm remote sensing.


Sedangkan untuk radio amatir milik Orari maupun Rapi memiliki band plan seperti berikut :


klik / download gambar untuk lebih jelas


Lalu apakah yang bisa saya lakukan untuk mengetes apakah dongle usb RTL-SDR yang katanya kw ini bekerja atau tidak ? Mari kita tuning ke stasiun radio FM terdekat dan jangan lupa sambungkan antena seperti yang sudah saya bahas disini.




Untuk modulasi paling umum ada 2 yaitu AM dan FM, dimana AM biasanya digunakan oleh perangkat radio dibawah 80Mhz dan juga yang masih menggunakan nya adalah airband / komunikasi bandara dan pesawat di 108 - 137Mhz. Selebihnya komunikasi lebih bagus menggunakan FM termasuk radio amatir analog maupun digital. Saya beri contoh hasil capture radio AM broadacst dan amatir di rentang frekuensi medium wave  dari penerima SDR Airspy di australia, yang terhubung ke network SDR#.




Sedangkan yang menarik kalau di amerika ada banyak radio broadcast yang masih mengudara di jalur short wave seperti Indonesia tahun 80-90an (jaman saya remaja). Dan di amerika sana ada stasiun radio timer / penanda waktu WWV yang masih mengudara di frekuensi 2, 2.5, 5, 10 dan 15 MHz. Rekamannya seperti dibawah ini.




Sedangkan di Surabaya sini penggunaan frekuensi masih cukup banyak oleh instansi pemerintah, tni, kereta api, satpam dan lain sebagainya. Kebetulan saya tinggal dekat pelabuhan tanjung perak maka saya sering mendengar percakapan antara tower pelindo dengan kapal yang mau sandar di dermaga, atau kantor ekspedisi kontainer. Kode-kode yang mereka gunakan masih membuat saya tertawa namun masih cukup seru untuk disimak.




Untuk frekuensi lainnya yang pernah saya scan adalah percakapan kereta api yang akan sampai (menggunakan radio lokomotif) ke PPKA di pasar turi.


Jaman sekarang telah hadir juga perangkat radio amatir digital, sehingga butuh encoder khusus untuk mendengarkannya.



Sebenernya masih banyk lagi hasil scanning saya, dari mulai tukang sapu jalan (DLH SURABAYA), kepolisian, markas TNI AL dan yang kadang menjengkelkan ada pengguna radio amatir yang kadang menyetel lagu sambil karakoean di frekuensi amatir. Gak ada kerjaan kali ya....

Share:

Selasa, 26 Maret 2024

[Modbus] Menampilkan Sensor Suhu Infra Red ke Matrix P10

 



Sambungan dari praktek membaca sensor suhu infra red RS-WD-HW-N01 yang saya bahas sebelumnya disini , saya akan ajarkan bagaimana menampilkan suhunya di dot matrix display P10. Display dot matrix ini paling umum digunakan di layar sekolah, toko, masjid dll, ini sangat banyak yang membahas di blog maupun youtube, dengan harga yang sangat murah (menyebabkan 10 tahun lalu saya berhenti jadi pengrajin display led matrix), namun kali ini kebetulan ada proyek dan akan saya bagi ilmunya secara perlahan.


PINOUT 



Pinoutnya berupa header 2x8 dan beberapa seller online shop diluar sana menjual header converter ke arduino uno seperti gambar diatas. Jika ingin buat sendiri tentunya tidak akan menjadi kesulitan. Untuk tegangan 5 volt sebaiknya diberikan terpisah dari arduino dengan adaptor 5v yang mempunyai ampere lebih tinggi.



LIBRARY


Library asli dibuat oleh produsen aslinya yaitu FREETRONICS dan dapat di unduh disini. Pemilihan portnya berbasiskan port SPI dimana akan memanfaatkan 2 pin MOSI (13) dan SCK (11). Sedangkan pemilihan pin OE (output enable) harus berhubungan dengan timer1 sehingga kakinya jangan dirubah dari nomer 9.




Untuk menambahkan font yang lebih keren, beberapa pengembang elektronika mikrokontroller di Indonesia berkreasi dengan library DMD3 yang bisa di googling sendiri. 


 SCRIPT 


Saya bagi aja langsung dan semoga bermanfaat untuk belajar kalian maupun tugas di sekolah/kampus.


/*      Sensor Suhu Infra merah
       Tampilan ke Led Matrix P10   
	type : RS-WD-HW-N01 RS485
	www.aisi555.com
	ahocool@gmail.com
*/

#include "BIG7SEGMENT.h"
#include "DMD3.h"
#include "DejaVuSans9.h"
#include "bmz9.h"
#include "bmz6x7.h"

#include <SoftwareSerial.h>
SoftwareSerial mod(12, 10); // RX (A) , TX (B) ke rs485 sensor 


DMD3 display (1,1);


byte baca[] = {0x01, 0x03, 0x00, 0x00, 0x00, 0x01, 0x84, 0x0A};//perintah baca suhu


byte bufferDataModbus[18];
byte *ptr;

int incomingByte ;

int suhune, puluhan, satuan;

bool terima = false;
unsigned long previousMillis = 0;


char dmdBuff1[10]; //Suhu Digit Depan koma
char dmdBuff2[10]; //belakang koma


void scan()
{
    display.refresh();
}

void setup() {
  Serial.begin(9600);
  Serial.println(F("Sensor infra red ke p10"));
  Serial.println(F("http://www.aisi555.com"));
  Serial.println();
 
  mod.begin(4800);
  ptr = bufferDataModbus;

    Timer1.initialize(1350);
    Timer1.attachInterrupt(scan);
    Timer1.pwm(9,255);
 
}

void loop() {
 unsigned long currentMillis = millis();
 
  if(currentMillis - previousMillis >= 5000) {
    // timer baca sensor tiap 5 detik 
    previousMillis = currentMillis;   
    //kirim perintah ke modbus baca suhu
   mod.write(baca, sizeof(baca));

   
   
    }

  //check modbus timeout
  long millisResponModbus = millis() + 1000;
  while (!mod.available())
  {
    if (millisResponModbus < millis())
    {
      break;//timeout
    }
  }
 
 // baca data serial yang masuk dari modbus lalu simpan pada pointer
  while (mod.available())
  { 
    byte b = mod.read();
    *ptr++ = b;
    Serial.print("0x");
    Serial.print(String(b, HEX));
    Serial.print(" ");
    delay(2);
    terima = true;
  }


if (terima){
	ptr = bufferDataModbus;

	suhune = (ptr[3] *256) + ptr[4];
	puluhan = suhune / 10;
	satuan = suhune % 10;

	Serial.print("Suhu = ");
	Serial.print(puluhan);
	Serial.print(",");
	Serial.print(satuan);
	Serial.println(" Celcius");

	memset(bufferDataModbus, 0x00, sizeof(bufferDataModbus));
	terima =false;

    display.clear();

    //tulis suhu ke p10
    display.setFont(BIG7SEGMENT);
    sprintf(dmdBuff1, "%.2d", puluhan);
    sprintf(dmdBuff2, "%.1d", satuan);

    display.drawText(0, 0, dmdBuff1);
    display.setFont(bmz9);
    display.drawText(26, -1, "C");
    display.drawRect(22,1,24,3,1);

    display.setFont(bmz6x7);
    display.drawRect(22,13,23,14,1);
    display.drawText(25, 8 , dmdBuff2);
}


}

Share:

[RTL-SDR] Perkenalan dunia radio dengan dongle usb ePro - Fitipower - FC0012

 




Tulisan saya mengenai topik radio RTL-SDR ini mungkin terkesan " kok baru sekarang ?" padahal sejak 2010an saya sudah menjadi pembaca setia di forum internet mengenai SDR, terutama di forum kaskus saat itu. Namun karena memang topiknya entah sudah bosen, wajar saja saat itu saya bekerja di vendor perangkat telco, maka hal ini hanya menjadi selingan bacaan seru melihat para kaskuser rakom berhasil membuat SDR sederhana, menggunakan sound card sebagai ADC nya dan radionya bekerja di frekuensi HF 80m band. Seru sekali saya melihatnya sampai suatu ketika saya menemukan website websdr.

WEBSDR merupakan website yang menyediakan kumpulan penghobi atau lab di kampus yang menyediakan perangkat DSR berbasis DSP/FPGA dan kemudian di share ke pengguna melalui online. Jadi saat itu ketika melihat alat DSP nya mereka canggih-canggih membuat nyali ciut, walau saya familiar dengan FPGA namun kemudian saya berpikir toh dengan klik mouse saja sudah bisa merasakan berselancar ke berbagai radio analog di seluruh dunia. Mulai dari siaran broadcast sampai ke radio milik polisi di belanda sana. Seru deh, coba aja berkunjung.



Gambar diatas bukan iklan di blog saya ya, namun memang saya ketemukan suatu ketika saya browsing dan terkejut ada yg menjual RTL-SDR dongle dengan harga lumayan tidak masuk akal. Padahal sekitar 5 tahun sebelumnya saya melihat dongle yang "asli" walau sebenarnya adalah TV tuner DVBT dijual masih cukup mahal. Ini 65 ribu bedanya apa ya ? Jika kalian penasaran saya kasi spoiler bedanya ya..




Dongle DVBT yang warna biru itu menjadi incaran saya sejak lama karena merupakan dongle bikinan realtek yang asli dan bisa dioprek menjadi penrima radi dari frekuensi 25Mhz -1700Mhz . Sedangkan yang sebenarnya yang ditawarkan oleh penjual di olshop ini adalah yang sebelah kanan, jelasnya bentuknya begini.



Larilah saya ke bagian komentar dan rating, dan ya memang ada yang puas karena murahnya tentu, dan ada yg teriak karena dianggap seller telah menipunya. Namun ada juga yang bilang kalau sesuai harga karena frekuensi responsenya dari 25-980 Mhz saja. Googling lagi dan web rtl-sdr memang memberi warning akan penipuan dongle rtl-sdr KW yang ternyata berbeda di chipset tunernya, walau sama-sama menggunakan chip DSP RTL2832U. Yang asli menggunakan tuner produk rafael micro sedangkan yg epro ini menggunakan fitipro fc0012. Keputusan saya? PENCET ORDER AJA !  





Dan datanglah barangnya lalu saya coba dengan menggunakan berbagai resource internet yang ada, dan bagi pemula saya sarankan menggunakan SDR# (sdr sharp) sebagai software sdr nya dan menginstall driver dari file yang diberikan (berbasis zadig). Saya gak akan menjelaskan lagi karena banyak sekali blog dalam maupun luar serta video youtube yang menjelaskan langkah instalasi. 



Lalu yang sangat krusial adalah pemilihan antena, dan kebetulan setahun ini saya telah bergelut dengan berbagai antena selama migrasi tv digital, dan saya colokkan aja ke dongle usb ini karena memang colokannya cocok berupa jack tv RG6. Hasilnya bagaimana ?




Tulisan pembukaan ini akan pendek saja, lain kali akan saya bagi berbagai pengalaman eksplorasi dongle ini terutama berhubungan dengan DAB (digital radio) dan DMR ( Digital Mobile Radio).


 

Share:

Minggu, 17 Maret 2024

[Modbus] Membaca Sensor Suhu RS-WD-HW-N01 RS485 - Arduino

 




Sebagai pembuka saya ingin berbagi bahwa sensor suhu inframerah memiliki beberapa kekurangan yang perlu dipertimbangkan:


1. **Akurasi terbatas**: Akurasi sensor suhu inframerah dapat dipengaruhi oleh berbagai faktor seperti emisivitas objek yang diukur, suhu lingkungan, kelembaban, dan jarak sensor dari objek. Hal ini dapat mengakibatkan pembacaan yang kurang tepat dibandingkan dengan sensor suhu kontak.

2. **Efek permukaan**: Sensor suhu inframerah mengukur suhu permukaan objek. Hal ini dapat menjadi kelemahan ketika berurusan dengan material dengan konduktivitas termal rendah atau permukaan yang tidak merata dalam suhu. Misalnya, permukaan yang mengkilap atau reflektif dapat memantulkan radiasi inframerah lingkungan, menyebabkan pembacaan yang tidak akurat.

3. **Rentang terbatas**: Beberapa sensor suhu inframerah memiliki rentang pengukuran yang terbatas, yang mungkin tidak sesuai untuk semua aplikasi. Sebagai contoh, beberapa sensor mungkin tidak dapat mengukur suhu yang sangat tinggi atau rendah dengan akurat.

4. **Waktu respons**: Sensor suhu inframerah mungkin memiliki waktu respons yang lebih lambat dibandingkan dengan sensor suhu kontak, terutama ketika mengukur suhu yang berubah dengan cepat atau objek yang bergerak.

5. **Interferensi lingkungan**: Faktor lingkungan seperti asap, debu, atau partikel lainnya di udara dapat mengganggu pengukuran suhu inframerah, menyebabkan ketidakakuratan.

6. **Biaya**: Sensor suhu inframerah dapat lebih mahal dibandingkan dengan sensor suhu kontak, terutama untuk model presisi tinggi atau yang memiliki fitur canggih.

7. **Kalibrasi**: Kalibrasi berkala diperlukan untuk menjaga akurasi sensor suhu inframerah. Hal ini membutuhkan peralatan dan keahlian khusus, menambah biaya dan kompleksitas penggunaan sensor tersebut.

8. **Kedalaman penetrasi terbatas**: Radiasi inframerah hanya dapat menembus permukaan objek yang diukur sampai kedalaman tertentu. Hal ini dapat menjadi keterbatasan ketika mengukur suhu material tebal atau tidak tembus pandang.


Meskipun memiliki kelemahan-kelemahan ini, sensor suhu inframerah tetap banyak digunakan dalam berbagai industri karena sifat non-kontaknya, kemudahan penggunaan, dan kecocokannya untuk beberapa aplikasi tertentu.




Praktek kita kali ini menggunakan TTL to RS485 agar data modbus dari sensor suhu infra red (bisa baca dulu disini untuk belajar cara akses sensor ini), dapat diubah level tegangan nya. Dan beberapa tulisan saya mengenai Modbus telah membahas juga namun kebetulan sekali ini adalah kali pertama saya membaca alat modbus menggunakan arduino uno sebagai master. Sebelumnya saya menggunakan esp8266 sebagai master modbus IOT dan arduino micro sebagai slave modbus, bisa dibaca disini dan disini .

Prinsip parsing data modbus pada pembahasan saya terdahulu tahun 2020 (jaman pandemi) seperti script berikut ini :


void loop()
{

unsigned long currentMillis = millis();
 
  if(currentMillis - previousMillis >= 5000) {
    // timer baca dht11 tiap 5 detik 
    previousMillis = currentMillis;   
    //kirim perintah ke modbus baca dht 11
   mod.write(humitemp, sizeof(humitemp));
    
    }

  //check modbus timeout
  long millisResponModbus = millis() + 1000;
  while (!mod.available())
  {
    if (millisResponModbus < millis())
    {
      break;//timeout
    }
  }
 
 // baca data serial yang masuk dari modbus lalu simpan pada pointer
  while (mod.available())
  {
    byte b = mod.read();
    *ptr++ = b;
    Serial.print("0x");
    Serial.print(String(b, HEX));
    Serial.print(" ");
    delay(2);

  }

  //proses komparasi data yg masuk (DHT11) dengan array jawaban lalu parsing
  if (memcmp(bufferDataModbus, dhtOK, sizeof(dhtOK)) == 0) {
  ptr = bufferDataModbus;
  Serial.println("");
  Serial.print(F("SUHU :"));
  Serial.print(ptr[4]); //alamat byte ke 4
  Serial.print(F(","));
  Serial.print(ptr[6]); //alamat byte ke 6
  Serial.print(F(" C HUMI :"));
  Serial.print(ptr[8]); //alamat byte ke 8
  Serial.println(" %");
  memset(bufferDataModbus, 0x00, sizeof(bufferDataModbus));
 }


}


Jadi script diatas dulu itu akan menunggu membaca data OK berdasarkan Check Sum / CRC  modbus 16bit. Namun sepertinya itu bisa diabaikan karena hampir error jarang sekali terjadi. Jadi untuk membaca sensor suhu RS-WD-HW-N01 RS485, kira kira scriptnya seperti berikut :


/* Cara baca Sensor Suhu Infra merah
    type : RS-WD-HW-N01 RS485
	www.aisi555.com
	ahocool@gmail.com
*/

#include <SoftwareSerial.h>

SoftwareSerial mod(12, 10); // RX, TX ke rs485

//perintah baca suhu, baca penjelasan di blog
byte baca[] = {0x01, 0x03, 0x00, 0x00, 0x00, 0x01, 0x84, 0x0A};


byte bufferDataModbus[10];
byte *ptr;

int incomingByte ;

int suhune, puluhan, satuan;

bool terima = false;
unsigned long previousMillis = 0;

void setup() {
  Serial.begin(9600);
  Serial.println(F("Testing Sensor Infra Ke Serial"));
  Serial.println(F("http://www.aisi555.com"));
  Serial.println();
  
  //baud rate default 4800
  mod.begin(4800);
  ptr = bufferDataModbus;
 
}

void loop() {
 unsigned long currentMillis = millis();
 
  if(currentMillis - previousMillis >= 5000) {
    // timer baca sensor tiap 5 detik 
    previousMillis = currentMillis;   
    //kirim perintah ke modbus baca sensor
   mod.write(baca, sizeof(baca));
    
    }

  //check modbus timeout
  long millisResponModbus = millis() + 1000;
  while (!mod.available())
  {
    if (millisResponModbus < millis())
    {
      break;//timeout
    }
  }
 
 // baca data serial yang masuk dari modbus lalu simpan pada pointer
  while (mod.available())
  {
    byte b = mod.read();
    *ptr++ = b;
    Serial.print("0x");
    Serial.print(String(b, HEX));
    Serial.print(" ");
    delay(1);
    terima = true;
  }

//parsing data suhu dan tampilkan di serial debug

	if (terima){
		ptr = bufferDataModbus;

		suhune = (ptr[3] *256) + ptr[4];
		puluhan = suhune / 10;
		satuan = suhune % 10;

		Serial.print("Suhu = ");
		Serial.print(puluhan);
		Serial.print(",");
		Serial.print(satuan);
		Serial.println(" Celcius");

		memset(bufferDataModbus, 0x00, sizeof(bufferDataModbus));
		terima =false;
		}


}

Hasil dari tangkapan layar debug seperti ini :




Data suhu yang akan dibaca adalah data ke-4 (0x1) dan data ke-5 (0x3E). Data lainnya bisa diabaikan, sehingga rumus parsing saya dilakukan dengan script berikut:


	if (terima){
		ptr = bufferDataModbus; // pindahkan data
                //ini rumus sederhana untuk merubah 2byte modbus jadi desimal
		suhune = (ptr[3] *256) + ptr[4]; //pointer memori mulai dari nol
		puluhan = suhune / 10;
		satuan = suhune % 10;

		Serial.print("Suhu = ");
		Serial.print(puluhan);
		Serial.print(",");
		Serial.print(satuan);
		Serial.println(" Celcius");
               //bersihkan memori
		memset(bufferDataModbus, 0x00, sizeof(bufferDataModbus));
		terima =false;
		}


Sehingga secara gampangannya , 0x01 merupakan  High Byte sehingga dapat dikalikan 256 (desimal) untuk mendapatkan nilai desimal High Byte, sedangkan 0x3E (Low Byte) bernilai  desimal 62, dan selanjutnya tinggal ditambahkan saja yaitu 256 + 62 =  318. Ini cocok hasilnya dengan hexa 0x13E. Sebenernya ada cara lebih "elegan" yaitu dengan geser byte ke kiri, namun saya yakin pembaca akan tambah bingung.



Share:

[Modbus] Cara Membaca Sensor Suhu RS-WD-HW-N01 RS485 - PC

 


Sensor yang saya dapat kali ini merupakan request dari salah satu pembaca blog ini, yang secara kebetulan memang sangat jarang resource nya di internet. Datasheet pun didapatkan di scribd dengan beberapa kerancuan settingan dan parameter, dimana pembaca sempat beberapa kali kesal dan mengira alat converter RS-485 to USB/PC nya error. Namun saya berhasil menemukan datasheet dari alat yang sejenis (walau beda versi) berbahasa mandarin dan sukses melakukan pembacaan datanya melalui PC.



Alat ini dari produsennya shandong renke sebenarnya diharapkan dihubungkan dengan display, plc dan alarm buatan internal mereka semuanya. Sehingga ini yang menyebabkan sedikitnya resource internet yang membahas sensor ini.


Berikut ini adalah parameter yang benar dari alat ini :

  • Kabel Coklat : VCC 10-30 volt (typical 24 volt)
  • Kabel Hitam : GND
  • Kabel Kuning : RS485 A
  • Kabel Biru : RS485 B
  • Baud Rate : 4800 bps (awas salah)
  • Protokol : Modbus RTU
  • Default ID : 1
  • Range suhu :  0 -200 Celcius


Untuk melakukan pembacaan melaui PC maka perlu disiapkan berupa converter RS485 to USB dan software pembaca data modbus seperti radzio atau serial terminal yang pernah saya bahas disini




Untuk melakukan pembacaan data suhu, maka perintah yang diberikan adalah function code 03 (read holding register), dengan alamat memory 0000h atau 0001h. Jadi rincian kode modbusnya seperti berikut :


01 03 00 00 00 01 84 0A

01     =  Alamat device id sensor
03     =  Perintah baca holding register / function 03
00 00  = 2 byte alamat address memori (0)
00 01  = 2 byte panjang data yg diharapkan ( 1 data saja)
84 0A  = Checksum / CRC 16 modbus


Sedangkan jika data dikirmkan dengan benar, maka reply yang didapat seperti  berikut :


01 03 02 01 16 38 1A

01     =  Alamat device id sensor
03     =  Reply holding register / function 03
02     = Data suhu ber-format 2 byte 
01 16  = 2 byte data suhu
38 1A  = Checksum / CRC 16 modbus


Data yang diberikan oleh sensor suhu ini berupa hexa 2 byte yang diterjemahkan menjadi 0x116 atau desimal 278. Artinya suhu yang diukur adalah 27.8 Celcius. Dapat dilihat dari hasil capture radzio dibawah ini.





Di tulisan selanjutnya saya akan mencoba melakukan pembacaan sensor  Suhu RS-WD-HW-N01 menggunakan arduino.
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 (11) arduino (27) 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) gsm (1) iklan (1) infrared (2) Input Output (3) iot (74) 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 (11) lorawan (2) 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 (8) radio (28) raspberry pi (9) 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) telkomiot (5) transistor (2) troubleshoot (3) tulisan (94) tutorial (108) tv digital (6) tvri (2) vu meter (2) vumeter (2) wav player (3) wayang (1) wifi (3) yolo (7)

Arsip Blog

Diskusi


kaskus
Forum Hobby Elektronika