<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Glaezz.</title>
    <description>The latest articles on DEV Community by Glaezz. (@glaezz).</description>
    <link>https://dev.to/glaezz</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2740543%2Fdc99796a-4cf6-4efd-9c28-7a3260b2f644.jpg</url>
      <title>DEV Community: Glaezz.</title>
      <link>https://dev.to/glaezz</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/glaezz"/>
    <language>en</language>
    <item>
      <title>What actually is MicroController and What Different with MicroComputer?</title>
      <dc:creator>Glaezz.</dc:creator>
      <pubDate>Tue, 21 Jan 2025 22:53:10 +0000</pubDate>
      <link>https://dev.to/glaezz/what-actually-is-microcontroller-and-what-different-with-microcomputer-24gm</link>
      <guid>https://dev.to/glaezz/what-actually-is-microcontroller-and-what-different-with-microcomputer-24gm</guid>
      <description>&lt;h2&gt;
  
  
  2.1 Arsitektur Mikrokontroler/Mikrokomputer
&lt;/h2&gt;

&lt;p&gt;Mikrokontroler adalah sebuah chip yang mengintegrasikan berbagai komponen inti seperti CPU, memori (RAM dan ROM), serta periferal input/output (I/O). Semua elemen ini dirancang dalam satu sistem untuk menjalankan tugas-tugas tertentu dengan efisiensi tinggi. Karena sifatnya yang ringkas dan hemat daya, mikrokontroler sering digunakan dalam perangkat yang membutuhkan pengendalian spesifik, seperti mesin cuci, remote control, dan perangkat IoT. Di sisi lain, mikrokomputer adalah komputer kecil yang dilengkapi CPU, memori, dan berbagai periferal, serta mampu menjalankan sistem operasi lengkap seperti Linux atau Windows. Berbeda dengan mikrokontroler, mikrokomputer menawarkan fleksibilitas yang&lt;br&gt;
lebih besar dalam menjalankan berbagai program atau fungsi. Contoh populer dari mikrokomputer adalah Raspberry Pi, yang banyak digunakan untuk pengembangan prototipe, aplikasi multimedia, atau bahkan sebagai server kecil.&lt;/p&gt;
&lt;h3&gt;
  
  
  2.1.1 Perbedaan Mikrokontroler dan Mikrokomputer
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;1. Fokus Penggunaan&lt;/strong&gt;&lt;br&gt;
Mikrokontroler dirancang untuk tugas-tugas spesifik yang tidak membutuhkan kapasitas pemrosesan besar. Karena itu, sistem operasi biasanya tidak diperlukan. Sebaliknya, mikrokomputer dibuat untuk menangani tugas-tugas yang lebih kompleks, memanfaatkan sistem operasi untuk mengelola aplikasi dan fungsi yang beragam. Mikrokomputer sering digunakan dalam pendidikan, penelitian, hingga proyek DIY yang&lt;br&gt;
membutuhkan perangkat komputasi serbaguna.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Efisiensi Daya&lt;/strong&gt;&lt;br&gt;
Salah satu perbedaan mencolok antara keduanya adalah konsumsi daya.&lt;br&gt;
Mikrokontroler sangat hemat energi karena dirancang untuk tugas-tugas sederhana dengan kebutuhan daya yang minimal. Ini membuatnya ideal untuk perangkat yang ditenagai oleh baterai atau yang membutuhkan operasi terus-menerus tanpa sumber daya besar. Sebaliknya, mikrokomputer memiliki konsumsi daya yang lebih tinggi karena kemampuan pemrosesannya yang lebih kompleks dan dukungan untuk berbagai periferal.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Kompleksitas dan Fleksibilitas&lt;/strong&gt;&lt;br&gt;
Mikrokontroler cenderung lebih sederhana karena hanya ditujukan untuk menjalankan tugas tertentu. Hal ini membuatnya kurang fleksibel dibandingkan mikrokomputer, yang mampu menangani berbagai aplikasi dan mendukung multitasking. Namun, kesederhanaan ini justru menjadi keunggulan mikrokontroler dalam aplikasi yang tidak memerlukan fungsi-&lt;br&gt;
fungsi tambahan.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Contoh Aplikasi&lt;/strong&gt;&lt;br&gt;
Mikrokontroler sering digunakan pada perangkat yang memerlukan pengendalian langsung dan hemat daya, seperti Arduino dan ESP32. Sementara itu, mikrokomputer seperti Raspberry Pi atau BeagleBone lebih sering digunakan dalam proyek-proyek yang membutuhkan kemampuan pemrosesan lebih tinggi, seperti pengembangan prototipe, media&lt;br&gt;
center, atau bahkan sebagai server kecil. &lt;/p&gt;
&lt;h3&gt;
  
  
  2.1.2 Struktur Dasar Mikrokontroler
&lt;/h3&gt;

&lt;p&gt;Mikrokontroler adalah sirkuit terpadu yang menggabungkan unit pemrosesan pusat (CPU), memori, dan periferal input/output (I/O) dalam satu chip. Struktur dasar mikrokontroler mencakup beberapa komponen penting yang memungkinkan fungsi dan fleksibilitasnya dalam berbagai aplikasi. Berikut adalah ikhtisar komprehensif tentang komponen utama mikrokontroler:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Unit Pemrosesan Pusat (CPU): CPU berfungsi sebagai otak mikrokontroler, bertanggung jawab untuk mengambil (fetch), menerjemahkan (decode), dan mengeksekusi instruksi. CPU mengoordinasikan operasi semua komponen lain dalam sistem.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;2. Memori:&lt;/strong&gt;&lt;br&gt;
○ RAM (Random Access Memory): Digunakan untuk menyimpan data&lt;br&gt;
sementara selama eksekusi program. Data dalam RAM akan hilang saat daya&lt;br&gt;
dimatikan.&lt;br&gt;
○ ROM (Read Only Memory): Menyimpan program dan data yang tidak&lt;br&gt;
berubah, seperti firmware. Beberapa mikrokontroler menggunakan memori&lt;br&gt;
flash yang dapat diprogram ulang.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Port Input/Output (I/O): Port I/O memungkinkan mikrokontroler berinteraksi dengan perangkat eksternal seperti sensor, aktuator, dan komponen lainnya. Port ini dapat dikonfigurasi sebagai input atau output sesuai kebutuhan aplikasi.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Timer dan Counter: Digunakan untuk fungsi pengaturan waktu dan penghitungan, seperti pengukuran interval waktu, pembangkitan sinyal, dan penghitungan pulsa eksternal.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Analog to Digital Converter (ADC): Mengonversi sinyal analog menjadi data digital, memungkinkan mikrokontroler memproses input dari sensor analog.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Digital to Analog Converter (DAC): Mengonversi data digital menjadi sinyal analog, digunakan untuk mengendalikan perangkat analog seperti motor DC.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Kontrol Interupsi (Interrupt Control): Memungkinkan mikrokontroler merespons peristiwa eksternal atau internal secara asinkron, menghentikan sementara eksekusi program utama untuk menangani peristiwa penting.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Port Serial: Menyediakan antarmuka komunikasi serial antara mikrokontroler dan periferal lain atau perangkat komunikasi&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Blok Fungsi Khusus: Beberapa mikrokontroler dilengkapi dengan fungsi khusus untuk aplikasi tertentu, seperti modul kriptografi atau antarmuka komunikasi khusus. Selain komponen utama di atas, mikrokontroler juga dilengkapi dengan berbagai periferal tambahan yang meningkatkan fungsionalitasnya:&lt;br&gt;
● GPIO (General-Purpose Input/Output) Controllers: Mengelola pin yang dapat dikonfigurasi sebagai input atau output untuk berinteraksi dengan perangkat eksternal.&lt;br&gt;
● PWM (Pulse Width Modulation) Controllers: Menghasilkan sinyal PWM yang&lt;br&gt;
digunakan untuk mengendalikan kecepatan motor, kecerahan LED, dan aplikasi lain yang memerlukan sinyal modulasi.&lt;br&gt;
● Serial Communication Controllers: Mendukung protokol komunikasi seperti UART, SPI, I2C, dan Ethernet untuk pertukaran data dengan perangkat lain.&lt;br&gt;
● Direct Memory Access (DMA) Controllers: Memungkinkan transfer data langsung antara memori dan periferal tanpa intervensi CPU, meningkatkan efisiensi sistem. Memahami struktur dasar dan periferal mikrokontroler sangat penting untuk merancang dan mengimplementasikan sistem tertanam yang efisien dan andal.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Sumber:&lt;/strong&gt;&lt;br&gt;
● &lt;a href="https://randomnerdtutorials.com/esp32-pinout-reference-gpios/" rel="noopener noreferrer"&gt;https://randomnerdtutorials.com/esp32-pinout-reference-gpios/&lt;/a&gt;&lt;br&gt;
● &lt;a href="https://www.jaycon.com/microprocessor-vs-microcontroller-vs-microcomputer/" rel="noopener noreferrer"&gt;https://www.jaycon.com/microprocessor-vs-microcontroller-vs-microcomputer/&lt;/a&gt;&lt;br&gt;
● &lt;a href="https://embeddedinventor.com/9-essential-microcontroller-peripherals-explained/" rel="noopener noreferrer"&gt;https://embeddedinventor.com/9-essential-microcontroller-peripherals-explained/&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  2.2 Library Arduino/ESP32
&lt;/h2&gt;
&lt;h3&gt;
  
  
  2.2.1 Penjelasan tentang Library Arduino dan ESP-IDF
&lt;/h3&gt;

&lt;p&gt;Library Arduino adalah sekumpulan fungsi atau kode yang mempermudah&lt;br&gt;
pengembangan perangkat lunak untuk platform Arduino. Library ini dirancang untuk menangani tugas-tugas umum seperti komunikasi, kontrol sensor, atau pengendalian perangkat keras. Dengan menggunakan library Arduino, pengembang dapat menulis kode dengan lebih mudah tanpa harus memahami detail teknis yang kompleks. Fungsi-fungsi yang sering digunakan meliputi membaca data dari sensor, mengontrol motor, atau berkomunikasi dengan perangkat eksternal. Kemudahan aksesibilitas menjadi salah satu keunggulan utama library Arduino. Sintaks yang sederhana memungkinkan pengguna dari berbagai tingkat keahlian untuk mengimplementasikannya dengan mudah. Library ini juga menghemat waktu pengembangan karena banyak fungsi yang sudah tersedia dan siap digunakan. Misalnya, "Adafruit_GFX" mempermudah pembuatan antarmuka grafis, sementara "WiFi" mendukung konektivitas jaringan secara praktis. Dengan fleksibilitas yang ditawarkan, library Arduino dapat menangani berbagai kebutuhan proyek spesifik.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Keunggulan Library Arduino&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Kemudahan Penggunaan: Library Arduino memiliki dokumentasi dan sintaks yang mudah dipahami oleh pemula.&lt;/li&gt;
&lt;li&gt;Kompatibilitas Luas: Mendukung berbagai sensor dan perangkat keras,
memungkinkan integrasi dengan beragam komponen untuk proyek yang fleksibel.&lt;/li&gt;
&lt;li&gt;Komunitas Aktif: Komunitas global menyediakan solusi atas berbagai masalah teknis, mempercepat proses pengembangan.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Pengertian ESP-IDF&lt;/strong&gt;&lt;br&gt;
ESP-IDF adalah framework resmi dari Espressif yang dirancang untuk&lt;br&gt;
mengembangkan aplikasi pada chip ESP32. Framework ini memberikan kontrol penuh terhadap hardware ESP32 serta mendukung fitur-fitur canggih seperti multitasking dan konektivitas jaringan. Dengan ESP-IDF, pengembang dapat memanfaatkan driver perangkat keras untuk mengelola GPIO, komunikasi serial, dan berbagai fungsi lainnya. Selain itu, framework ini juga mendukung protokol IoT populer seperti MQTT, HTTP, dan WebSocket, menjadikannya solusi ideal untuk pengembangan perangkat IoT.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Keunggulan ESP-IDF&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Kontrol Tingkat Lanjut: ESP-IDF memungkinkan akses langsung ke hardware, seperti dijelaskan oleh Espressif, memberikan pengembang fleksibilitas untuk mengoptimalkan performa aplikasi.&lt;/li&gt;
&lt;li&gt;Dukungan Multitasking: Dengan integrasi FreeRTOS, ESP-IDF mendukung
multitasking sehingga cocok untuk aplikasi kompleks.&lt;/li&gt;
&lt;li&gt;Fitur Debugging dan Analisis: Mendukung alat debugging tingkat lanjut untuk memastikan stabilitas aplikasi dalam berbagai kondisi.&lt;/li&gt;
&lt;li&gt;Dukungan Protokol IoT: Mendukung berbagai protokol komunikasi, seperti MQTT dan HTTP, membuatnya ideal untuk solusi IoT modern.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Kesimpulan&lt;/strong&gt;&lt;br&gt;
Library Arduino menawarkan solusi sederhana dan cepat, cocok untuk pemula atau proyek yang membutuhkan pengembangan cepat tanpa banyak konfigurasi teknis. Sebaliknya, ESP-IDF menawarkan fleksibilitas tinggi dan fitur canggih untuk pengembang berpengalaman yang ingin memanfaatkan kemampuan penuh dari perangkat keras ESP32. Dengan memahami keunggulan masing-masing, pengguna dapat memilih framework yang paling sesuai dengan kebutuhan dan tujuan proyek mereka.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sumber:&lt;/strong&gt;&lt;br&gt;
● &lt;a href="https://cyberhub.id/pengetahuan-dasar/apa-itu-library-arduino" rel="noopener noreferrer"&gt;https://cyberhub.id/pengetahuan-dasar/apa-itu-library-arduino&lt;/a&gt;&lt;br&gt;
● &lt;a href="https://www.espressif.com/en/products/sdks/esp-idf#:%7E:text=ESP%2DIDF%20is%20Espressif%27s%20official,as%20C%20and%20C++" rel="noopener noreferrer"&gt;https://www.espressif.com/en/products/sdks/esp-idf#:~:text=ESP%2DIDF%20is%20Espressif%27s%20official,as%20C%20and%20C++&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  2.2.2 Perbandingan fitur antara Arduino dan ESP32.
&lt;/h3&gt;

&lt;p&gt;Sumber :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://elektrologi.iptek.web.id/perbedaan-arduino-uno-dan-esp32/" rel="noopener noreferrer"&gt;https://elektrologi.iptek.web.id/perbedaan-arduino-uno-dan-esp32/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  2.2.3 Studi kasus penggunaan library
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Membuat Proyek IoT dengan Arduino
● Sensor Suhu dan Kelembaban&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Sumber: (circuitbasics.com, 2015)&lt;/p&gt;

&lt;p&gt;Penggunaan sensor suhu dan kelembaban sangat umum dalam proyek IoT, terutama untuk pemantauan lingkungan seperti di rumah, kantor, atau pertanian. Arduino menjadi pilihan yang ideal karena platform ini mudah diakses, didukung oleh komunitas yang luas, dan cocok untuk pemula. Pada proyek ini, sensor DHT11 atau DHT22 akan digunakan untuk membaca data suhu dan kelembaban secara real-time. Hasilnya dapat ditampilkan langsung pada layar LCD atau OLED agar pengguna dapat memantau kondisi lingkungan.&lt;br&gt;
Dalam skenario yang lebih canggih, Arduino dapat dihubungkan dengan modul&lt;br&gt;
ESP8266 untuk mengirim data ke platform cloud seperti Thingspeak. Hal ini memungkinkan pemantauan jarak jauh melalui internet. Pengguna dapat melihat informasi suhu dan kelembaban dari mana saja menggunakan perangkat dengan browser atau aplikasi khusus. Proyek ini sangat relevan untuk sistem rumah pintar atau pertanian cerdas, di mana kondisi lingkungan harus dipantau dan direspons secara otomatis.&lt;br&gt;
Komponen yang Dibutuhkan:&lt;br&gt;
● Arduino Uno atau Nano&lt;br&gt;
● Sensor DHT11/DHT22&lt;br&gt;
● LCD 16x2 atau OLED (opsional)&lt;br&gt;
● Modul ESP8266 untuk konektivitas internet (opsional)&lt;br&gt;
● Kabel jumper, breadboard, dan resistor&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Langkah-langkah Implementasi:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Pemasangan Sensor: Sambungkan sensor ke Arduino melalui pin digital, dan hubungkan LCD untuk menampilkan data.&lt;/li&gt;
&lt;li&gt;Kode di Arduino IDE: Buat program sederhana untuk membaca data dari sensor dan menampilkannya di LCD.&lt;/li&gt;
&lt;li&gt;Koneksi Internet (Opsional): Jika menggunakan ESP8266, hubungkan Arduino ke Wi-Fi dan kirim data ke dashboard online.&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Pengujian: Pastikan data dari sensor ditampilkan secara akurat dan, jika terhubung ke internet, dapat diakses dari web.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Membuat Proyek IoT dengan ESP32&lt;br&gt;
ESP32 adalah mikrokontroler yang sangat powerful, dengan dukungan Wi-Fi dan Bluetooth bawaan, serta kemampuan untuk menjalankan banyak tugas secara bersamaan. Proyek-proyek dengan ESP32 lebih fleksibel dan mendukung aplikasi yang lebih kompleks.&lt;br&gt;
● Pengendalian Lampu Pintar via Smartphone&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Sumber: (lastminuteengineers.com, 2024)&lt;/p&gt;

&lt;p&gt;Dalam proyek ini, ESP32 digunakan sebagai pengontrol utama untuk mengaktifkan atau menonaktifkan lampu atau perangkat elektronik lainnya dari jarak jauh. Dengan Wi-Fi bawaan, ESP32 dapat berkomunikasi langsung dengan aplikasi di smartphone atau browser web. Pengguna dapat mengontrol perangkat secara real-time, baik melalui aplikasi khusus seperti Blynk maupun melalui antarmuka web sederhana.&lt;br&gt;
Proyek ini relevan untuk sistem rumah pintar, di mana kontrol otomatis dan manual dari perangkat rumah adalah fitur penting. Dengan menambahkan relay, pengguna dapat mengendalikan perangkat dengan aman dan memastikan lampu atau peralatan hanya bekerja sesuai kebutuhan. Selain itu, proyek ini bisa diperluas dengan menambahkan sensor gerak untuk menyalakan lampu secara otomatis saat mendeteksi aktivitas.&lt;br&gt;
Komponen yang Dibutuhkan:&lt;br&gt;
● ESP32&lt;br&gt;
● Relay 5V&lt;br&gt;
● Lampu atau perangkat elektronik&lt;br&gt;
● Aplikasi Blynk (opsional)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Langkah-langkah Implementasi:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Hubungkan Relay dengan ESP32: Pasang relay untuk mengontrol lampu atau
perangkat.&lt;/li&gt;
&lt;li&gt;Program Server Web di ESP32: Buat server web sederhana untuk menerima perintah kontrol.&lt;/li&gt;
&lt;li&gt;Integrasi dengan Aplikasi: Hubungkan dengan aplikasi seperti Blynk untuk kontrol lebih mudah.&lt;/li&gt;
&lt;li&gt;Uji Sistem: Pastikan lampu bisa dikendalikan secara manual maupun otomatis.
● Streaming Video dari IP Cam dengan ESP32&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Sumber: (github,2022)&lt;/p&gt;

&lt;p&gt;Proyek ini memperlihatkan bagaimana ESP32 dapat digunakan untuk streaming video real-time. Dengan menghubungkan modul kamera OV2640, ESP32 dapat menangkap dan mengirim video dalam format MJPEG melalui jaringan Wi-Fi. Pengguna dapat mengakses video tersebut dari smartphone atau komputer untuk pemantauan keamanan. Proyek ini cocok untuk sistem keamanan rumah atau pemantauan lokasi terpencil. Dengan menambahkan fitur seperti deteksi gerakan, sistem dapat mengirimkan peringatan otomatis jika ada aktivitas mencurigakan. Ini memberi pengguna kontrol lebih besar atas keamanan lingkungan mereka tanpa harus berada di lokasi.&lt;br&gt;
Sumber: &lt;a href="https://github.com/StandardAE7/CLUB-IOT/wiki/Modul-1" rel="noopener noreferrer"&gt;https://github.com/StandardAE7/CLUB-IOT/wiki/Modul-1&lt;/a&gt;&lt;br&gt;
Komponen yang Dibutuhkan:&lt;br&gt;
● ESP32&lt;br&gt;
● Modul kamera OV2640&lt;br&gt;
● Power supply untuk ESP32&lt;br&gt;
● Browser untuk pemantauan&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Langkah-langkah Implementasi:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Sambungkan Kamera ke ESP32: Pastikan modul kamera terhubung dengan benar.&lt;/li&gt;
&lt;li&gt;Program Streaming Video: Buat kode untuk mengirim video dalam format MJPEG.&lt;/li&gt;
&lt;li&gt;Akses Melalui Browser: Buka IP kamera di browser untuk melihat video real-time.&lt;/li&gt;
&lt;li&gt;Uji Sistem: Tambahkan simulasi aktivitas untuk memverifikasi streaming berjalan baik.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Sumber: (github,2022)&lt;/p&gt;

&lt;p&gt;● Monitoring Jarak Jauh melalui Web&lt;br&gt;
Pada proyek ini, sistem memanfaatkan modul ESP8266 yang memungkinkan Arduino bertindak sebagai server web mini. Data dari sensor suhu dan kelembaban dikirim ke halaman web dalam format JSON atau teks sederhana, yang kemudian bisa diakses oleh pengguna melalui browser. Ini memberikan fleksibilitas bagi pengguna untuk memantau kondisi lingkungan tanpa perlu berada di lokasi fisik sensor. Dengan menggunakan ESP8266 sebagai server, setiap perangkat dengan akses internet dapat melihat kondisi lingkungan secara real-time. Proyek ini memperkenalkan konsep&lt;br&gt;
dashboard IoT sederhana yang sangat bermanfaat dalam situasi seperti pemantauan gudang atau laboratorium. Sistem ini bisa diperluas dengan menambahkan fitur peringatan otomatis jika suhu atau kelembaban melebihi ambang batas tertentu. Komponen yang Dibutuhkan:&lt;br&gt;
● Arduino Uno atau Nano&lt;br&gt;
● Sensor DHT11/DHT22&lt;br&gt;
● Modul ESP8266&lt;br&gt;
● Breadboard dan kabel jumper&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Langkah-langkah Implementasi:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Hubungkan Modul ESP8266: Sambungkan modul dengan Arduino dan konfigurasi Wi-Fi untuk koneksi internet.&lt;/li&gt;
&lt;li&gt;Buat Halaman Web: Program Arduino untuk meng-host halaman web sederhana dengan data sensor.&lt;/li&gt;
&lt;li&gt;Kirim Data secara Real-Time: Pastikan data dapat di-refresh secara berkala di halaman web.&lt;/li&gt;
&lt;li&gt;Pengujian: Akses halaman dari browser dan cek apakah data tampil dengan baik.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;
  
  
  2.3 Interfacing Sensor dan Aktuator dengan Arduino/ESP32
&lt;/h2&gt;

&lt;p&gt;Dalam istilah sederhana, sensor interfacing adalah proses menghubungkan sensor dengan mikrokontroler atau sistem pemrosesan lainnya. Proses ini memungkinkan mikrokontroler untuk memperoleh, memproses, dan merespons data sensor, sehingga memungkinkan interaksi dengan lingkungan secara real-time.&lt;br&gt;
Interface ini memungkinkan mikrokontroler untuk:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Memperoleh sinyal dari sensor&lt;/li&gt;
&lt;li&gt;Memproses dan menginterpretasikan data dari sensor&lt;/li&gt;
&lt;li&gt;Mengontrol perangkat atau aktuator berdasarkan input yang diberikan oleh sensor&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  2.3.1 Teknik interfacing untuk sensor analog dan digital.
&lt;/h3&gt;

&lt;p&gt;Berdasarkan jenis outputnya, sensor dapat dibagi menjadi dua kategori utama:&lt;br&gt;
Analog dan Digital. Sensor analog menghasilkan sinyal output yang bersifat kontinu dan sebanding dengan besaran yang diukur, seperti tegangan yang bervariasi secara linear terhadap perubahan suhu. Sementara itu, sensor digital menghasilkan data dalam format digital yang dikirim melalui protokol komunikasi tertentu, memungkinkan transfer informasi yang lebih akurat dan tahan gangguan.&lt;br&gt;
Berikut adalah panduan sepuluh langkah untuk membantu memilih sensor&lt;br&gt;
yang tepat untuk proyek Anda.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Identifikasi Tujuan
Identifikasi parameter fisik yang akan diukur.&lt;/li&gt;
&lt;li&gt;Akurasi dan Resolusi
Pahami tingkat akurasi dan resolusi yang dibutuhkan.&lt;/li&gt;
&lt;li&gt;Rentang Operasi
Pertimbangkan rentang operasi sensor.&lt;/li&gt;
&lt;li&gt;Identifikasi Lingkungan
Faktor lingkungan seperti suhu ekstrem, debu, tekanan, dll. dapat
memengaruhi kinerja sensor.&lt;/li&gt;
&lt;li&gt;Jenis Output
Tentukan jenis output sensor: analog atau digital.&lt;/li&gt;
&lt;li&gt;Kebutuhan Daya
Pilih berdasarkan kebutuhan daya.&lt;/li&gt;
&lt;li&gt;Kompatibilitas Interface
Pertimbangkan protokol komunikasi dan kompatibilitas mikrokontroler.&lt;/li&gt;
&lt;li&gt;Waktu Respon
Respon yang lebih cepat diperlukan untuk deteksi gerakan dibandingkan
pemantauan suhu.&lt;/li&gt;
&lt;li&gt;Reliability dan Durability
Evaluasi masa pakai yang diharapkan dari sensor.
10.Kalibrasi
Beberapa sensor mungkin memerlukan kalibrasi rutin untuk menjaga akurasi.&lt;/li&gt;
&lt;/ol&gt;
&lt;h4&gt;
  
  
  2.3.1.1 Sensor Analog
&lt;/h4&gt;

&lt;p&gt;Sensor analog menghasilkan keluaran berupa sinyal kontinu, biasanya berupa tegangan atau arus yang berubah sesuai dengan perubahan parameter fisik (seperti suhu, tekanan, atau cahaya). Contoh: LM35, LDR, dan potensiometer.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Langkah-Langkah Interfacing Sensor Analog&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Koneksi Fisik&lt;br&gt;
○ Sambungkan pin power (Vcc) dan ground (GND) dari sensor ke&lt;br&gt;
mikrokontroler.&lt;br&gt;
○ Hubungkan pin keluaran sensor ke pin analog input (seperti A0, A1)&lt;br&gt;
pada mikrokontroler.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Signal Conditioning&lt;br&gt;
○ Sensor analog sering kali membutuhkan pengkondisian sinyal (signal&lt;br&gt;
conditioning) untuk memastikan sinyal sesuai dengan kebutuhan&lt;br&gt;
mikrokontroler. Teknik yang digunakan meliputi:&lt;br&gt;
■ Amplifikasi: Menguatkan sinyal yang lemah menggunakan&lt;br&gt;
amplifier (misalnya op-amp).&lt;br&gt;
■ Filtering: Menghilangkan noise atau interferensi menggunakan&lt;br&gt;
filter (low-pass, high-pass, atau band-pass).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Konversi Analog ke Digital (ADC)&lt;br&gt;
○ Karena mikrokontroler bekerja dengan data digital, sinyal analog harus&lt;br&gt;
dikonversi menggunakan Analog-to-Digital Converter (ADC).&lt;br&gt;
○ ADC akan mengubah sinyal analog menjadi data digital dengan&lt;br&gt;
resolusi tertentu, misalnya 10-bit (0–1023).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Pemrosesan Data&lt;br&gt;
○ Data digital yang diperoleh diolah menggunakan kode pemrograman&lt;br&gt;
untuk mendapatkan nilai parameter fisik (misalnya suhu dalam derajat&lt;br&gt;
Celsius).&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h4&gt;
  
  
  2.3.1.1 Sensor Digital
&lt;/h4&gt;

&lt;p&gt;Sensor digital menghasilkan keluaran dalam bentuk sinyal digital (0 atau 1) atau data digital langsung. Sensor ini sering menggunakan protokol komunikasi seperti I2C, SPI, atau UART. Contoh: DHT11 (suhu dan kelembapan) atau MPU6050&lt;br&gt;
(accelerometer dan gyroscope).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Langkah-Langkah Interfacing Sensor Digital&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Koneksi Fisik&lt;br&gt;
○ Sambungkan pin power (Vcc), ground (GND), dan pin data ke&lt;br&gt;
mikrokontroler.&lt;br&gt;
○ Jika menggunakan protokol komunikasi tertentu, seperti I2C atau SPI,&lt;br&gt;
pastikan mikrokontroler mendukung protokol tersebut.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Pemilihan Protokol Komunikasi&lt;br&gt;
○ I2C: Digunakan untuk aplikasi multi-sensor dengan kecepatan rendah&lt;br&gt;
hingga sedang (misalnya sensor suhu).&lt;br&gt;
○ SPI: Digunakan untuk sensor yang memerlukan kecepatan tinggi&lt;br&gt;
(misalnya accelerometer).&lt;br&gt;
○ UART: Digunakan untuk komunikasi sederhana dengan satu sensor.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Library dan Kode Pemrograman&lt;br&gt;
○ Untuk sensor digital, sering kali tersedia library yang memudahkan&lt;br&gt;
pengguna membaca data.&lt;br&gt;
○ Tambahkan library yang sesuai dan gunakan fungsi-fungsi yang&lt;br&gt;
disediakan untuk membaca data sensor.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Pemrosesan Data&lt;br&gt;
○ Data digital langsung dapat diolah sesuai kebutuhan tanpa perlu&lt;br&gt;
proses ADC.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Referensi&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.electronicsforu.com/technology-trends/learn-electronics/sensor-interfacing#analog-to-digital-conversion-adc" rel="noopener noreferrer"&gt;https://www.electronicsforu.com/technology-trends/learn-electronics/sensor-interfacing#analog-to-digital-conversion-adc&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;2.3.2 Penerapan komunikasi serial dengan sensor.&lt;/strong&gt;&lt;br&gt;
Komunikasi serial adalah metode transfer data satu per satu melalui jalur&lt;br&gt;
komunikasi tunggal. Dalam sistem sensor, komunikasi serial digunakan untuk menghubungkan sensor dengan mikrokontroler guna mengirimkan data hasil pengukuran. Protokol komunikasi serial seperti UART, I2C, SPI, dan SDI-12 memungkinkan integrasi berbagai jenis sensor sesuai dengan kebutuhan aplikasi.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Jenis Protokol Komunikasi Serial&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;UART (Universal Asynchronous Receiver/Transmitter)&lt;br&gt;
● Ciri-Ciri:&lt;br&gt;
○ Asynchronous, tidak memerlukan sinyal clock bersama.&lt;br&gt;
○ Menggunakan dua jalur: TX (Transmit) dan RX (Receive).&lt;br&gt;
○ Kecepatan ditentukan oleh baud rate.&lt;br&gt;
● Aplikasi:&lt;br&gt;
○ Digunakan dalam modul GPS, Bluetooth, dan komunikasi antar&lt;br&gt;
mikrokontroler.&lt;br&gt;
● Kelebihan:&lt;br&gt;
○ Implementasi sederhana.&lt;br&gt;
○ Komunikasi point-to-point yang andal.&lt;br&gt;
● Kekurangan:&lt;br&gt;
○ Tidak cocok untuk jaringan dengan banyak perangkat.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;I2C (Inter-Integrated Circuit)&lt;br&gt;
● Ciri-Ciri:&lt;br&gt;
○ Synchronous, menggunakan dua jalur: SDA (Data) dan SCL (Clock).&lt;br&gt;
○ Mendukung banyak perangkat dengan alamat unik.&lt;br&gt;
● Aplikasi:&lt;br&gt;
○ Menghubungkan sensor suhu, tekanan, dan perangkat memori.&lt;br&gt;
● Kelebihan:&lt;br&gt;
○ Mendukung banyak perangkat dalam satu bus.&lt;br&gt;
○ Wiring lebih sederhana.&lt;br&gt;
● Kekurangan:&lt;br&gt;
○ Tidak cocok untuk komunikasi berkecepatan tinggi atau jarak jauh.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;SPI (Serial Peripheral Interface)&lt;br&gt;
● Ciri-Ciri:&lt;br&gt;
○ Synchronous, full-duplex.&lt;br&gt;
○ Menggunakan empat jalur: MOSI, MISO, SCLK, dan SS.&lt;br&gt;
● Aplikasi:&lt;br&gt;
○ Sensor dengan kebutuhan data berkecepatan tinggi seperti&lt;br&gt;
akselerometer dan giroskop.&lt;br&gt;
● Kelebihan:&lt;br&gt;
○ Kecepatan transfer tinggi.&lt;br&gt;
○ Mendukung daisy-chaining perangkat.&lt;br&gt;
● Kekurangan:&lt;br&gt;
○ Membutuhkan lebih banyak pin I/O.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;SDI-12 (Serial Digital Interface at 1200 baud)&lt;br&gt;
● Ciri-Ciri:&lt;br&gt;
○ Asynchronous, mendukung hingga 62 sensor dalam satu bus.&lt;br&gt;
○ Operasi pada 1200 baud untuk efisiensi daya.&lt;br&gt;
● Aplikasi:&lt;br&gt;
○ Penggunaan di bidang hidrologi, meteorologi, dan sistem monitoring&lt;br&gt;
lingkungan.&lt;br&gt;
● Kelebihan:&lt;br&gt;
○ Tahan terhadap gangguan listrik.&lt;br&gt;
○ Mendukung kabel panjang tanpa degradasi sinyal.&lt;br&gt;
● Kekurangan:&lt;br&gt;
○ Kecepatan transfer rendah.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Referensi&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://library.fiveable.me/embedded-systems-design/unit-13" rel="noopener noreferrer"&gt;https://library.fiveable.me/embedded-systems-design/unit-13&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://library.fiveable.me/embedded-systems-design/unit-8" rel="noopener noreferrer"&gt;https://library.fiveable.me/embedded-systems-design/unit-8&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.monolithicpower.com/en/learning/mpscholar/sensors/sensor-design-interfacing-and-challenges/interfacing-" rel="noopener noreferrer"&gt;https://www.monolithicpower.com/en/learning/mpscholar/sensors/sensor-design-interfacing-and-challenges/interfacing-&lt;/a&gt;
sensors?srsltid=AfmBOoqxP1BTz6G4t0ed78JUsMxKcUjhfvUdEMMCIH1FdT8PTPDgT5wF&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  2.3.3 Cara pengujian dan debugging interfacing.
&lt;/h3&gt;

&lt;p&gt;Pengujian sistem tertanam bertujuan untuk memverifikasi fungsionalitas,&lt;br&gt;
keandalan, dan performa dari komponen perangkat keras dan perangkat lunak yang terintegrasi. Berikut ini merupakan dasar-dasar pengujian untuk sistem tertanam&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Pengujian Unit (Unit Testing)&lt;br&gt;
○ Berfokus pada modul atau komponen individu dari perangkat lunak&lt;br&gt;
tertanam.&lt;br&gt;
○ Memastikan setiap unit berfungsi dengan benar secara terisolasi.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Pengujian Integrasi (Integration Testing)&lt;br&gt;
○ Memverifikasi interaksi dan komunikasi antar modul atau komponen.&lt;br&gt;
○ Mengidentifikasi masalah yang muncul saat unit-unit digabungkan.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Pengujian Sistem (System Testing)&lt;br&gt;
○ Mengevaluasi sistem tertanam secara keseluruhan untuk memastikan&lt;br&gt;
pemenuhan spesifikasi dan performa yang diharapkan dalam berbagai&lt;br&gt;
skenario.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Pengujian Penerimaan (Acceptance Testing)&lt;br&gt;
○ Melibatkan pemangku kepentingan atau pengguna akhir untuk&lt;br&gt;
memvalidasi bahwa sistem tertanam memenuhi kebutuhan dan&lt;br&gt;
harapan mereka.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Otomasi Pengujian (Test Automation)&lt;br&gt;
○ Menggunakan alat dan skrip untuk menjalankan pengujian berulang&lt;br&gt;
secara otomatis, mengurangi upaya manual, dan meningkatkan cakupan pengujian.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Cakupan Pengujian (Test Coverage)&lt;br&gt;
○ Mengukur sejauh mana fungsionalitas sistem tertanam diuji oleh kasus&lt;br&gt;
pengujian.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Pengujian Regresi (Regression Testing)&lt;br&gt;
○ Menjalankan kembali pengujian yang telah lulus sebelumnya untuk&lt;br&gt;
memastikan perubahan atau pembaruan tidak menyebabkan cacat baru.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Selanjutnya, untuk mengidentifikasi, mengisolasi, dan menyelesaikan cacat atau masalah pada perangkat keras atau perangkat lunak sistem tertanam dapat dilakukan beberapa teknik berikut :&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Pernyataan Cetak atau Logging&lt;br&gt;
○ Menampilkan nilai atau pesan sementara selama eksekusi program&lt;br&gt;
untuk tujuan debugging.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Breakpoints&lt;br&gt;
○ Menghentikan eksekusi program pada baris kode tertentu untuk&lt;br&gt;
memeriksa variabel, memori, dan alur program.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Watchpoints&lt;br&gt;
○ Memantau lokasi memori tertentu dan memicu breakpoint saat nilainya&lt;br&gt;
berubah.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Debugging Langkah-demi-Langkah (Step-Through Debugging)&lt;br&gt;
○ Menjalankan program baris demi baris untuk inspeksi rinci perilaku&lt;br&gt;
kode.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Debugger Perangkat Keras (Hardware Debuggers)&lt;br&gt;
○ Alat seperti JTAG dan SWD yang memberikan akses tingkat rendah ke&lt;br&gt;
prosesor dan memori sistem tertanam.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Alat Debugging Perangkat Lunak&lt;br&gt;
○ Alat seperti GDB dan LLDB menyediakan fitur seperti breakpoints, watchpoints, dan inspeksi memori untuk membantu mengidentifikasi dan menyelesaikan masalah.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Analisis Jejak (Trace Analysis)&lt;br&gt;
○ Merekam dan memeriksa urutan kejadian atau panggilan fungsi selama eksekusi program untuk mengidentifikasi area bermasalah.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;referensi&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://library.fiveable.me/embedded-systems-design/unit-19" rel="noopener noreferrer"&gt;https://library.fiveable.me/embedded-systems-design/unit-19&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.electronicsforu.com/technology-trends/learn-electronics/sensor-interfacing" rel="noopener noreferrer"&gt;https://www.electronicsforu.com/technology-trends/learn-electronics/sensor-interfacing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.monolithicpower.com/en/learning/mpscholar/sensors/sensor" rel="noopener noreferrer"&gt;https://www.monolithicpower.com/en/learning/mpscholar/sensors/sensor&lt;/a&gt; design-interfacing-and-challenges/interfacing-sensors?srsltid=AfmBOoqYCk4CWaWkCtTKgFI4vvBZvdBHaS_pAyFxFQmWSTho5iMq3Vu&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  2.4 Pemrograman C di Arduino/ESP32
&lt;/h2&gt;
&lt;h3&gt;
  
  
  2.4.1 Dasar-dasar sintaks C untuk perangkat embedded.
&lt;/h3&gt;

&lt;p&gt;Bahasa C adalah salah satu bahasa pemrograman yang paling sering digunakan dalam pengembangan perangkat embedded karena efisiensinya, kemampuan kontrol perangkat keras yang mendalam, dan keserbagunaannya. Dalam konteks perangkat embedded seperti Arduino, sintaks C berfungsi sebagai dasar untuk menulis program yang dapat langsung berinteraksi dengan perangkat keras. Berikut adalah pembahasan tentang dasar-dasar sintaks yang relevan untuk pengembangan perangkat embedded.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Struktur Program C pada Perangkat Embedded&lt;/strong&gt;&lt;br&gt;
Program C pada perangkat embedded biasanya mengikuti struktur dasar berikut:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Header File dan Definisi: Program dimulai dengan menyertakan file header yang menyediakan fungsi dan definisi standar.&lt;/li&gt;
&lt;li&gt;Deklarasi Variabel dan Konstanta: Variabel dan konstanta digunakan untuk menyimpan data dan konfigurasi. Sebagai contoh:&lt;/li&gt;
&lt;li&gt;Fungsi Utama: Program Arduino selalu memiliki dua fungsi utama:
○ setup(): Dijalankan sekali saat perangkat dinyalakan atau di-reset.
Digunakan untuk inisialisasi.
○ loop(): Dijalankan berulang-ulang setelah setup(). Berisi logika utama
program.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Dasar-Dasar Sintaks C yang Relevan&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Tipe Data dan Operator:&lt;br&gt;
○ Tipe data yang sering digunakan meliputi int, float, char, dan boolean.&lt;br&gt;
○ Operator dasar seperti aritmatika (+, -, *, /), logika (&amp;amp;&amp;amp;, ||, !), dan bitwise (&amp;amp;, |, ^) sering digunakan untuk pengendalian perangkat keras.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Struktur Kontrol: Struktur kontrol seperti if-else, for, while, dan switch digunakan untuk membuat logika yang dinamis.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Fungsi dan Modularitas: Fungsi dapat digunakan untuk memecah kode menjadi bagian-bagian yang lebih kecil dan mudah dikelola.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Spesifikasi Sintaks C untuk Embedded&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Pemrosesan I/O: Dalam perangkat embedded, fungsi-fungsi khusus seperti&lt;br&gt;
digitalWrite(), digitalRead(), dan analogRead() digunakan untuk berinteraksi dengan perangkat keras.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Pengendalian Memori: Dalam perangkat embedded dengan memori terbatas,&lt;br&gt;
efisiensi adalah kunci. Penggunaan array, pointer, dan tipe data dengan ukuran kecil seperti uint8_t (unsigned 8-bit integer) menjadi penting.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Penanganan Error dan Debugging: Untuk debugging, fungsi seperti&lt;br&gt;
Serial.print() sering digunakan.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;
  
  
  2.4.2 Pemrograman Interrupt dan Pengendalian Waktu (Timers)
&lt;/h3&gt;

&lt;p&gt;Pemrograman interrupt dan pengendalian waktu (timers) adalah teknik penting dalam sistem tertanam untuk memastikan efisiensi, multitasking, dan responsivitas aplikasi. Interrupt memungkinkan perangkat keras menghentikan sementara eksekusi program utama untuk menjalankan tugas tertentu, sedangkan timers digunakan untuk mengatur interval waktu yang&lt;br&gt;
presisi. Mikrokontroler, seperti Arduino, menyediakan fitur interrupt timer yang memungkinkan eksekusi tugas secara periodik atau berdasarkan waktu tertentu, tanpa memengaruhi proses utama.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Dasar-Dasar Interrupt&lt;/strong&gt;&lt;br&gt;
Interrupt adalah mekanisme di mana perangkat keras memicu eksekusi fungsi tertentu (ISR - Interrupt Service Routine) tanpa menunggu program utama menyelesaikan prosesnya. Setelah tugas di ISR selesai, program utama dilanjutkan dari titik sebelumnya.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Jenis-Jenis Interrupt&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Interrupt Eksternal: Dihasilkan dari perangkat eksternal, seperti tombol atau sensor.&lt;/li&gt;
&lt;li&gt;Interrupt Timer: Dihasilkan dari timer internal mikrokontroler, digunakan untuk pengendalian waktu.&lt;/li&gt;
&lt;li&gt;Interrupt Periferal Lain: Misalnya dari UART, SPI, atau ADC.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Timers dalam Mikrokontroler&lt;/strong&gt;&lt;br&gt;
Timer adalah fitur internal mikrokontroler yang berfungsi sebagai penghitung waktu. Timers dapat dikonfigurasi untuk menghasilkan interrupt pada interval tertentu. Konsep ini memungkinkan aplikasi seperti:&lt;br&gt;
● Pembacaan sensor secara periodik.&lt;br&gt;
● Pengendalian motor dengan siklus tetap.&lt;br&gt;
● Penjadwalan tugas berbasis waktu.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Komponen Timer:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Prescaler: Mengurangi frekuensi clock untuk memperpanjang durasi hitungan timer.&lt;/li&gt;
&lt;li&gt;Counter Register: Menghitung nilai dari 0 hingga nilai maksimum (8-bit, 16-bit, atau lainnya).&lt;/li&gt;
&lt;li&gt;Compare Match: Nilai perbandingan yang memicu interrupt ketika tercapai.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Keuntungan Penggunaan Timer Interrupt&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Efisiensi Waktu: Menghindari fungsi delay(), sehingga loop utama dapat
digunakan untuk tugas lain.&lt;/li&gt;
&lt;li&gt;Responsivitas Tinggi: Program dapat merespons peristiwa eksternal dengan lebih cepat.&lt;/li&gt;
&lt;li&gt;Multitasking: Memungkinkan pelaksanaan beberapa tugas secara bersamaan tanpa konflik waktu.&lt;/li&gt;
&lt;li&gt;Presisi Tinggi: Mengandalkan timer internal dengan ketelitian tinggi dibandingkan metode berbasis loop.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Tips Implementasi&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Minimalisasi ISR: ISR harus singkat untuk menghindari konflik dengan interrupt lain.&lt;/li&gt;
&lt;li&gt;Hati-Hati pada Variabel Bersama: Gunakan variabel yang aman terhadap interrupt (volatile).&lt;/li&gt;
&lt;li&gt;Pahami Datasheet Mikrokontroler: Setiap mikrokontroler memiliki konfigurasi timer yang berbeda.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;2.4.3 Contoh program pengendalian perangkat IoT.&lt;/strong&gt;&lt;br&gt;
Berikut adalah penjelasan program untuk pengendalian perangkat IoT menggunakan ESP32, sensor DHT11, dan buzzer.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#include "DHT.h"
#define DHTPIN 4
#define DHTTYPE DHT11
#define BUZZER_PIN 15
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(115200);
dht.begin();
pinMode(BUZZER_PIN, OUTPUT);
}
void loop() {
delay(2000);
float t = dht.readTemperature();
if (isnan(t)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
if (t &amp;gt; 30) {
digitalWrite(BUZZER_PIN, HIGH);
Serial.println("Buzzer ON - High Temperature!");
} else {
digitalWrite(BUZZER_PIN, LOW);
Serial.println("Buzzer OFF - Temperature Normal.");
}
Serial.print("Temperature: ");
Serial.print(t);
Serial.println("°C");
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Penjelasan Program&lt;/strong&gt;&lt;br&gt;
Kode ini bertujuan untuk membaca suhu dari sensor DHT11 menggunakan ESP32, kemudian memberikan respons berupa nyala atau mati buzzer berdasarkan suhu yang terbaca. Program juga mencetak data suhu ke serial monitor untuk monitoring.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Header File dan Definisi&lt;br&gt;
● #include "DHT.h"&lt;br&gt;
Pustaka DHT digunakan untuk membaca data suhu dari sensor DHT11.&lt;br&gt;
● #define DHTPIN 4 dan #define BUZZER_PIN 15&lt;br&gt;
Mendefinisikan pin yang terhubung dengan sensor dan buzzer:&lt;br&gt;
○ DHTPIN adalah pin yang menerima data dari sensor DHT11.&lt;br&gt;
○ BUZZER_PIN adalah pin yang mengontrol buzzer.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Objek Sensor&lt;br&gt;
&lt;code&gt;DHT dht(DHTPIN, DHTTYPE);&lt;/code&gt;&lt;br&gt;
Objek dht dibuat menggunakan pin data dan tipe sensor (DHT11). Objek ini akan digunakan untuk membaca suhu menggunakan fungsi bawaan pustaka.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Fungsi setup()&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;void setup() {
Serial.begin(115200);
dht.begin();
pinMode(BUZZER_PIN, OUTPUT);
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Fungsi &lt;code&gt;setup()&lt;/code&gt; dijalankan sekali saat ESP32 dihidupkan:&lt;br&gt;
● &lt;code&gt;Serial.begin(115200)&lt;/code&gt;: Inisialisasi komunikasi serial dengan baud rate 115200, untuk&lt;br&gt;
mengirimkan data ke komputer.&lt;br&gt;
● &lt;code&gt;dht.begin()&lt;/code&gt;: Inisialisasi sensor DHT agar siap digunakan.&lt;br&gt;
● &lt;code&gt;pinMode(BUZZER_PIN, OUTPUT)&lt;/code&gt;: Menyiapkan pin buzzer sebagai output,&lt;br&gt;
sehingga ESP32 dapat mengontrolnya.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Fungsi loop()
Fungsi loop() berisi logika utama yang berjalan terus-menerus.
4.1 Membaca Suhu
&lt;code&gt;float t = dht.readTemperature();&lt;/code&gt;
● Fungsi &lt;code&gt;dht.readTemperature()&lt;/code&gt; membaca suhu dari sensor DHT11 dan
menyimpannya dalam variabel t bertipe float.
4.2 Validasi Pembacaan
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;if (isnan(t)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;● Fungsi isnan(t) memeriksa apakah pembacaan suhu berhasil. Jika gagal, akan mencetak pesan kesalahan di serial monitor dan keluar dari fungsi loop.&lt;br&gt;
4.3 Logika Kontrol untuk Buzzer&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;if (t &amp;gt; 30) {
digitalWrite(BUZZER_PIN, HIGH);
Serial.println("Buzzer ON - High Temperature!");
} else {
digitalWrite(BUZZER_PIN, LOW);
Serial.println("Buzzer OFF - Temperature Normal.");
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;● Jika suhu lebih dari 30°C, buzzer menyala dengan mengatur pin buzzer ke HIGH.&lt;br&gt;
● Jika suhu 30°C atau lebih rendah, buzzer mati dengan mengatur pin buzzer ke LOW.&lt;br&gt;
● Status suhu dan kondisi buzzer dicetak ke serial monitor.&lt;br&gt;
4.4 Menampilkan Suhu&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Serial.print("Temperature: ");
Serial.print(t);
Serial.println("°C");
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;● Menampilkan nilai suhu dalam format "Temperature: X°C" untuk memantau&lt;br&gt;
pembacaan sensor. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sumber:&lt;/strong&gt;&lt;br&gt;
● &lt;a href="https://www.youtube.com/watch?si=cbzzqJs01X8FY26o&amp;amp;v=2kr5A350H7E&amp;amp;feature=youtu.be" rel="noopener noreferrer"&gt;https://www.youtube.com/watch?si=cbzzqJs01X8FY26o&amp;amp;v=2kr5A350H7E&amp;amp;feature=youtu.be&lt;/a&gt;&lt;br&gt;
● &lt;a href="https://www.youtube.com/watch?v=ZOllXMxLRqc&amp;amp;ab_channel=CurioRes" rel="noopener noreferrer"&gt;https://www.youtube.com/watch?v=ZOllXMxLRqc&amp;amp;ab_channel=CurioRes&lt;/a&gt;&lt;br&gt;
● &lt;a href="https://www.javatpoint.com/arduino-syntax-and-program-flow" rel="noopener noreferrer"&gt;https://www.javatpoint.com/arduino-syntax-and-program-flow&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Introduction of Internet of Things</title>
      <dc:creator>Glaezz.</dc:creator>
      <pubDate>Tue, 21 Jan 2025 22:19:26 +0000</pubDate>
      <link>https://dev.to/glaezz/penjelasan-lengkap-internet-of-things-45bp</link>
      <guid>https://dev.to/glaezz/penjelasan-lengkap-internet-of-things-45bp</guid>
      <description>&lt;p&gt;Internet of Things (IoT) adalah jaringan perangkat fisik yang saling terhubung melalui internet untuk memungkinkan pertukaran data secara otomatis. Perangkat-perangkat ini meliputi sensor, aktuator, dan perangkat lunak yang dirancang untuk mengumpulkan, memproses, dan mengambil keputusan berbasis data tanpa memerlukan campur tangan manusia. Teknologi IoT menjadi sangat penting dalam era digital karena memiliki kemampuan untuk meningkatkan efisiensi operasional, mendukung otomatisasi proses di berbagai bidang, serta memungkinkan pengambilan keputusan berbasis data real-time.&lt;/p&gt;

&lt;h3&gt;
  
  
  1.1.1 Perkembangan Teknologi IoT: Sejarah dan Tren Terkini
&lt;/h3&gt;

&lt;p&gt;IoT memiliki sejarah panjang yang dimulai dengan konsep awal Machine-to-Machine (M2M) yang memungkinkan perangkat berkomunikasi melalui jaringan. Perkembangan teknologi ini semakin pesat dengan penerapan teknologi seperti Radio Frequency Identification (RFID), sensor pintar, dan konektivitas internet, yang memperluas kemampuan IoT secara signifikan. Pada saat ini, IoT berkembang dengan dukungan berbagai tren terkini.&lt;br&gt;
Salah satu tren utama adalah teknologi 5G yang mempercepat konektivitas dan mendukung pengolahan data secara real-time, sehingga sangat cocok untuk aplikasi yang membutuhkan latensi rendah, seperti kendaraan otonom dan telemedicine. Selain itu, teknologi Edge Computing menjadi kunci dalam mengurangi latensi dengan memproses data langsung di perangkat atau jaringan lokal tanpa harus mengirimkan data ke cloud. Artificial Intelligence (AI) dan Big Data juga semakin diintegrasikan dengan IoT untuk mengoptimalkan analisis data dalam menghasilkan wawasan yang lebih cerdas dan prediksi yang akurat. Tren lainnya adalah integrasi IoT dalam infrastruktur pintar, seperti kota pintar, sistem transportasi, dan manajemen energi, yang memberikan solusi efisiensi dan keberlanjutan untuk kehidupan modern.&lt;/p&gt;

&lt;h3&gt;
  
  
  1.1.2 Manfaat IoT dalam Kehidupan Sehari-hari
&lt;/h3&gt;

&lt;p&gt;IoT memberikan berbagai manfaat yang nyata dalam kehidupan sehari-hari di&lt;br&gt;
berbagai bidang. Dalam rumah pintar, perangkat IoT memungkinkan kendali otomatis atau jarak jauh terhadap lampu, pendingin ruangan (AC), dan kunci pintu, memberikan kenyamanan, keamanan, serta efisiensi energi. Dalam bidang kesehatan, IoT mendukung telemedicine dan pemantauan kesehatan secara real-time melalui perangkat medis pintar, sehingga memungkinkan deteksi dini penyakit dan meningkatkan kualitas layanan kesehatan. Pada skala yang lebih luas, IoT mendukung pengembangan kota pintar melalui sistem pemantauan lalu lintas, parkir pintar, dan pengelolaan energi yang lebih efisien. Dalam sektor agrikultur, IoT memfasilitasi penggunaan sistem irigasi otomatis dan pemantauan kesehatan&lt;br&gt;
tanaman, yang membantu petani mengelola sumber daya secara efektif dan meningkatkan hasil produksi. Di bidang manufaktur, IoT mendorong otomasi proses industri, pemantauan real-time terhadap kondisi mesin, serta pemeliharaan prediktif, sehingga meningkatkan produktivitas dan mengurangi waktu henti produksi. Manfaat IoT juga terasa dalam bidang keamanan, di mana sistem keamanan pintar, seperti kamera pengawas (CCTV) dan alarm otomatis, memberikan perlindungan tambahan untuk rumah dan kantor. Teknologi ini memungkinkan pemantauan real-time dan respon cepat&lt;br&gt;
terhadap potensi ancaman, menciptakan rasa aman yang lebih besar bagi pengguna. Secara keseluruhan, IoT telah menjadi salah satu pilar utama dalam mendukung transformasi digital dan meningkatkan kualitas hidup masyarakat modern.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;REFERENSI:&lt;/strong&gt;&lt;br&gt;
● &lt;a href="https://www.geeksforgeeks.org/introduction-to-internet-of-things-iot-set-1/" rel="noopener noreferrer"&gt;https://www.geeksforgeeks.org/introduction-to-internet-of-things-iot-set-1/&lt;/a&gt;&lt;br&gt;
● &lt;a href="https://www.geeksforgeeks.org/internet-things-iot-2/" rel="noopener noreferrer"&gt;https://www.geeksforgeeks.org/internet-things-iot-2/&lt;/a&gt;&lt;br&gt;
● &lt;a href="https://www.geeksforgeeks.org/internet-things-iot/?ref=oin_asr1" rel="noopener noreferrer"&gt;https://www.geeksforgeeks.org/internet-things-iot/?ref=oin_asr1&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  1.2 Arsitektur dan Protokol IoT
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1.2.1 Pengertian Arsitektur IoT
&lt;/h3&gt;

&lt;p&gt;Arsitektur IoT merujuk pada struktur organisasi yang terdiri dari berbagai lapisan atau komponen yang berfungsi secara bersama-sama untuk memungkinkan perangkat IoT beroperasi secara efisien dan terhubung satu sama lain. Tujuan utama dari arsitektur ini adalah untuk menghubungkan berbagai perangkat dan sistem yang tersebar di seluruh dunia, sehingga memungkinkan pertukaran data dan informasi secara otomatis serta real-time. Arsitektur ini mencakup penginderaan data, pengolahan data, komunikasi antar perangkat, serta interaksi dengan aplikasi pengguna yang memungkinkan akses dan kontrol terhadap perangkat IoT. Arsitektur yang baik dapat meningkatkan efisiensi dan kinerja sistem IoT secara keseluruhan, memastikan data yang dikumpulkan dapat diproses dan dimanfaatkan dengan cara yang optimal.&lt;/p&gt;

&lt;h3&gt;
  
  
  1.2.2 Model Arsitektur IoT
&lt;/h3&gt;

&lt;p&gt;Arsitektur IoT dapat diterapkan dalam berbagai pendekatan, dengan dua model arsitektur yang paling umum digunakan, yaitu model 3-layer dan model 5-layer.&lt;br&gt;
&lt;strong&gt;1. Model 3-Layer&lt;/strong&gt;&lt;br&gt;
Model 3-layer merupakan pendekatan arsitektur IoT yang paling sederhana dan terdiri dari tiga lapisan utama yang saling berinteraksi, yaitu:&lt;br&gt;
● Perception Layer (Lapisan Penginderaan)&lt;br&gt;
Lapisan ini bertugas untuk mengumpulkan data dari lingkungan melalui sensor dan aktuator yang dipasang pada perangkat IoT. Data yang terkumpul akan diteruskan ke lapisan jaringan untuk diproses lebih lanjut.&lt;br&gt;
● Network Layer (Lapisan Jaringan)&lt;br&gt;
Lapisan ini bertanggung jawab untuk menyediakan konektivitas dan komunikasi antar perangkat IoT serta menghubungkan perangkat dengan jaringan yang lebih luas, seperti internet. Teknologi yang digunakan dalam lapisan ini termasuk Wi-Fi, Bluetooth, Zigbee, dan 5G.&lt;br&gt;
● Application Layer (Lapisan Aplikasi)&lt;br&gt;
Lapisan aplikasi berfungsi untuk menyajikan data yang telah diproses dalam format yang mudah dipahami dan digunakan oleh pengguna akhir. Lapisan ini juga berfungsi untuk mengelola interaksi antara perangkat IoT dan aplikasi yang digunakan oleh pengguna.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Model 4-Layer&lt;/strong&gt;&lt;br&gt;
Model 4-layer menambahkan lapisan tambahan untuk meningkatkan efisiensi dan fleksibilitas sistem IoT. Lapisan ini terdiri dari:&lt;br&gt;
● Perception Layer (Lapisan Penginderaan)&lt;br&gt;
Sama seperti model 3-layer, lapisan ini berfungsi untuk mengumpulkan data dari lingkungan menggunakan sensor dan aktuator. Data yang diperoleh akan dikirim ke lapisan berikutnya untuk diproses lebih lanjut.&lt;br&gt;
● Network Layer (Lapisan Jaringan)&lt;br&gt;
Lapisan ini bertugas menyediakan komunikasi antar perangkat IoT melalui teknologi seperti Wi-Fi, Zigbee, Bluetooth, atau jaringan seluler seperti 4G dan 5G. Lapisan ini menghubungkan perangkat IoT dengan server atau cloud untuk penyimpanan dan pemrosesan data.&lt;br&gt;
● Data Processing Layer (Lapisan Pemrosesan Data)&lt;br&gt;
Lapisan ini bertanggung jawab untuk menganalisis, menyimpan, dan memproses data yang diterima dari lapisan jaringan. Pemrosesan bisa dilakukan secara lokal (edge computing) atau di cloud, tergantung pada kebutuhan sistem. Lapisan ini memberikan informasi yang lebih bermakna kepada aplikasi di lapisan berikutnya.&lt;br&gt;
● Application Layer (Lapisan Aplikasi)&lt;br&gt;
Lapisan aplikasi bertugas menyajikan data atau informasi yang telah diproses kepada pengguna akhir melalui antarmuka yang mudah dipahami, seperti aplikasi mobile, dashboard, atau laporan. Selain itu, lapisan ini memungkinkan pengguna untuk mengelola perangkat IoT dan mengambil keputusan berdasarkan data yang tersedia.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Model 5-Layer&lt;/strong&gt;&lt;br&gt;
Model 5-layer merupakan struktur yang lebih kompleks dan terperinci, mencakup tambahan lapisan-lapisan yang memberikan fleksibilitas serta kemampuan pengolahan data yang lebih canggih. Model ini terdiri dari lima lapisan utama, yaitu:&lt;br&gt;
● Perception Layer&lt;br&gt;
Bertugas untuk penginderaan data, dengan fungsi yang sama seperti pada model 3-layer.&lt;br&gt;
● Network Layer&lt;br&gt;
Berfungsi untuk menyediakan konektivitas antar perangkat IoT dan jaringan yang lebih besar, seperti pada model 3-layer.&lt;br&gt;
● Transport Layer&lt;br&gt;
Lapisan ini bertanggung jawab untuk pengaturan pengiriman data antar perangkat dan sistem.&lt;br&gt;
● Processing Layer&lt;br&gt;
Bertanggung jawab untuk menganalisis data yang dikumpulkan di lapisan sebelumnya dan memproses data tersebut untuk menghasilkan informasi yang berguna.&lt;br&gt;
● Business Layer&lt;br&gt;
Lapisan ini mengelola dan membuat keputusan strategis berdasarkan data yang telah diproses, serta mengelola kebijakan bisnis yang terkait dengan sistem IoT secara keseluruhan.&lt;/p&gt;

&lt;h3&gt;
  
  
  1.2.3 Protokol Komunikasi IoT
&lt;/h3&gt;

&lt;p&gt;Protokol komunikasi merupakan bagian penting dalam arsitektur IoT yang&lt;br&gt;
memungkinkan perangkat untuk saling berkomunikasi secara efisien dan aman. Protokol komunikasi IoT dapat dibagi menjadi beberapa kategori utama, sebagai berikut:&lt;br&gt;
&lt;strong&gt;1. Protokol Jaringan&lt;/strong&gt;&lt;br&gt;
Protokol jaringan memungkinkan perangkat IoT untuk berkomunikasi antar perangkat maupun dengan sistem yang lebih besar. Beberapa protokol yang umum digunakan antara lain:&lt;br&gt;
● MQTT (Message Queuing Telemetry Transport)&lt;br&gt;
Protokol berbasis publish/subscribe yang ringan dan efisien, dirancang untuk komunikasi data antar perangkat dengan konsumsi bandwidth yang minim.&lt;br&gt;
● CoAP (Constrained Application Protocol)&lt;br&gt;
Protokol yang dirancang untuk perangkat dengan sumber daya terbatas, memungkinkan komunikasi yang cepat dan efisien dalam aplikasi IoT.&lt;br&gt;
● HTTP/HTTPS&lt;br&gt;
Meskipun lebih berat dibandingkan dengan MQTT dan CoAP, HTTP/HTTPS masih banyak digunakan dalam aplikasi IoT berbasis web.&lt;br&gt;
● WebSocket&lt;br&gt;
Protokol ini memungkinkan komunikasi dua arah secara real-time antara perangkat IoT dan aplikasi.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Protokol Keamanan&lt;/strong&gt;&lt;br&gt;
Keamanan menjadi aspek yang sangat penting dalam komunikasi IoT untuk&lt;br&gt;
melindungi data dan perangkat dari ancaman dunia maya. Beberapa protokol keamanan yang digunakan dalam IoT antara lain:&lt;br&gt;
● TLS/SSL (Transport Layer Security / Secure Sockets Layer)&lt;br&gt;
Protokol ini digunakan untuk mengenkripsi komunikasi antara perangkat dan server, memastikan bahwa data yang ditransmisikan tetap aman.&lt;br&gt;
● OAuth&lt;br&gt;
Protokol otentikasi yang digunakan untuk memberikan akses terbatas dan aman ke aplikasi dan perangkat.&lt;br&gt;
● IPSec&lt;br&gt;
Protokol yang melindungi data yang ditransmisikan di lapisan jaringan, mengamankan komunikasi antar perangkat IoT.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Protokol Aplikasi&lt;/strong&gt;&lt;br&gt;
Protokol aplikasi digunakan untuk memastikan interoperabilitas antara perangkat IoT dan aplikasi yang digunakan oleh pengguna. Beberapa protokol yang umum digunakan adalah:&lt;br&gt;
● RESTful API&lt;br&gt;
Protokol ini memungkinkan perangkat IoT untuk terhubung dengan aplikasi atau platform&lt;br&gt;
berbasis web, memfasilitasi komunikasi antara perangkat dan sistem yang lebih besar.&lt;br&gt;
● WebSocket&lt;br&gt;
Selain digunakan dalam komunikasi jaringan, WebSocket juga digunakan pada&lt;br&gt;
lapisan aplikasi untuk mendukung komunikasi dua arah secara real-time.&lt;/p&gt;

&lt;h3&gt;
  
  
  1.2.4 Keamanan dalam Protokol IoT
&lt;/h3&gt;

&lt;p&gt;Keamanan adalah salah satu aspek terpenting dalam implementasi IoT karena&lt;br&gt;
perangkat IoT rentan terhadap berbagai ancaman dunia maya. Meskipun terdapat protokol keamanan yang diterapkan, tantangan utama dalam IoT tetap ada. Berikut ini adalah beberapa keuntungan dan tantangan yang terkait dengan keamanan dalam protokol IoT.&lt;br&gt;
&lt;strong&gt;1. Keuntungan Protokol Keamanan&lt;/strong&gt;&lt;br&gt;
● Efisiensi&lt;br&gt;
Protokol keamanan seperti TLS/SSL dan OAuth menyediakan enkripsi yang ringan namun kuat untuk melindungi data yang ditransmisikan antar perangkat IoT.&lt;br&gt;
● Interoperabilitas&lt;br&gt;
Protokol keamanan yang diterapkan memungkinkan perangkat dari berbagai&lt;br&gt;
produsen untuk berkomunikasi dengan aman, meskipun memiliki standar yang&lt;br&gt;
berbeda.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Tantangan Keamanan dalam IoT&lt;/strong&gt;&lt;br&gt;
● Kompleksitas Standarisasi&lt;br&gt;
Banyaknya jenis protokol yang berbeda dapat menimbulkan masalah interoperabilitas antara perangkat dari produsen yang berbeda, menghambat komunikasi yang efisien.&lt;br&gt;
● Keamanan Perangkat dengan Sumber Daya Terbatas&lt;br&gt;
Banyak perangkat IoT dengan sumber daya terbatas tidak mampu menerapkan&lt;br&gt;
pengamanan tingkat tinggi, sehingga rentan terhadap serangan siber.&lt;br&gt;
● Skalabilitas&lt;br&gt;
Beberapa protokol mungkin tidak dapat menangani jumlah perangkat IoT yang sangat besar, yang menjadi tantangan utama dalam pengembangan sistem IoT berskala besar.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;REFERENSI:&lt;/strong&gt;&lt;br&gt;
● &lt;a href="https://www.geeksforgeeks.org/architecture-of-internet-of-things-iot/" rel="noopener noreferrer"&gt;https://www.geeksforgeeks.org/architecture-of-internet-of-things-iot/&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  1.3 Platform &amp;amp; Contoh Penerapan IoT
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1.3.1 Platform Pengembangan IoT
&lt;/h3&gt;

&lt;p&gt;Platform pengembangan IoT adalah sistem yang memfasilitasi pengembangan&lt;br&gt;
perangkat IoT (Internet of Things), mulai dari pemrograman perangkat keras, komunikasi data, hingga pemrosesan informasi. Biasanya tiap mikrokomputer memiliki IDE (Integrated Development Environment) nya masing masing. Berikut adalah beberapa platform yang populer digunakan:&lt;br&gt;
&lt;strong&gt;1. Arduino (Uno)&lt;/strong&gt;&lt;br&gt;
Arduino Uno adalah salah satu platform mikrokontroler yang paling umum digunakan dalam pengembangan IoT. Keunggulan Arduino adalah kemudahan penggunaannya dengan bahasa pemrograman sederhana (berbasis C/C++), serta ketersediaan berbagai modul dan sensor yang kompatibel. Beberapa fitur Arduino Uno meliputi:&lt;br&gt;
● Mikrokontroler ATmega328P.&lt;br&gt;
● 14 pin input/output digital (6 di antaranya dapat digunakan sebagai output PWM).&lt;br&gt;
● 6 input analog.&lt;br&gt;
● Antarmuka USB untuk koneksi ke komputer.&lt;br&gt;
● Sangat cocok untuk proyek IoT sederhana seperti pemantauan suhu, sensor cahaya, atau kontrol LED.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. ESP32&lt;/strong&gt;&lt;br&gt;
ESP32 adalah mikrokontroler yang populer untuk proyek IoT yang memerlukan&lt;br&gt;
komunikasi nirkabel. Dilengkapi dengan modul WiFi dan Bluetooth, ESP32 menjadi pilihan yang sangat efisien untuk pengembangan IoT. Beberapa fitur utama dari ESP32:&lt;br&gt;
● Dual-core CPU yang mendukung tugas-tugas paralel.&lt;br&gt;
● Modul WiFi dan Bluetooth terintegrasi.&lt;br&gt;
● Konsumsi daya rendah, cocok untuk perangkat IoT berbasis baterai.&lt;br&gt;
● Mendukung pemrograman dengan Arduino IDE dan platform lainnya.&lt;br&gt;
● Cocok untuk aplikasi seperti smart home, sistem pemantauan lingkungan, atauperangkat wearable.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Raspberry Pi&lt;/strong&gt;&lt;br&gt;
Raspberry Pi adalah komputer mini yang memiliki kemampuan seperti komputer desktop biasa. Berbeda dengan Arduino yang hanya merupakan mikrokontroler, Raspberry Pi dapat menjalankan sistem operasi lengkap (seperti Linux). Beberapa keunggulan Raspberry Pi:&lt;br&gt;
● Prosesor yang lebih kuat dibandingkan mikrokontroler, memungkinkan penggunaan dalam proyek IoT yang lebih kompleks.&lt;br&gt;
● Dilengkapi dengan port GPIO (General Purpose Input Output) untuk menghubungkan berbagai sensor dan modul.&lt;br&gt;
● Dukungan untuk pemrograman Python, Java, dan berbagai bahasa lainnya.&lt;br&gt;
● Cocok untuk proyek IoT yang memerlukan pengolahan data, seperti kamera&lt;br&gt;
pengawas, smart home, atau server web.&lt;/p&gt;

&lt;h3&gt;
  
  
  1.3.2 Platform Simulasi IoT Online
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;1. TinkerCAD&lt;/strong&gt;&lt;br&gt;
Tinkercad adalah perangkat lunak desain 3D, simulasi sirkuit/elektronis, dan pengkodean blok berbasis browser yang dikembangkan oleh Autodesk, perusahaan di balik AutoCAD, Maya, dan 3ds Max.&lt;br&gt;
● Model Desain 3D: Tinkercad diluncurkan pada tahun 2011 untuk membuat desain 3D tersedia untuk masyarakat umum. Mendesain di Tinkercad adalah cara yang bagus untuk mempelajari dasar pemodelan solid. Pemodelan solid adalah praktik membangun objek dengan bentuk primitif.&lt;br&gt;
● Simulasi Sirkuit / Elektronis: Desain yang unik juga dapat memanfaatkan gerakan dan cahaya dengan menggunakan fitur sirkuit bawaan Tinkercad.&lt;br&gt;
● Pengkodean blok: Tinkercad menggunakan fitur drag and drop blok kode yang telah dibuat sebelumnya untuk membuat bentuk khusus. Blok kode memungkinkan pembuatan desain 3D menggunakan pemrograman visual.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Wokwi&lt;/strong&gt;&lt;br&gt;
Wokwi adalah simulator elektronik online yang dirancang untuk menghadirkan elektronik yang kompleks ke tangan para pemula dan pengguna berpengalaman. Dengan antarmuka yang mudah digunakan. Wokwi mensimulasikan papan, komponen, dan sensor yang populer seperti Arduino, ESP32, STM32, LED Matrix, dan banyak lagi tanpa memerlukan komponen fisik atau pengaturan perangkat lunak yang rumit.&lt;br&gt;
● Menawarkan simulasi WiFi, penganalisis logika virtual, simulasi kartu SD: Ketika menggunakan Wokwi, pengguna bisa melakukan simulasi sistem tertanam tanpa memegang perangkat keras secara langsung.&lt;br&gt;
● Tidak ada batasan pada komponen perangkat keras virtual: Pada penggunaannya, Wokwi tidak terdapat batasan dalam memasang komponen secara virtual selama komponen tersebut tersedia.&lt;br&gt;
● Mendukung multi-platform: Windows, Mac, Android: Wokwi dibuat untuk tujuan pembelajaran. Jadi, penggunaan Wokwi sangat mudah dan tersedia di berbagai platform.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;blynk
Blynk merupakan sebuah platform Internet of Things (IoT) yang dapat digunakan untuk menghubungkan perangkat keras IoT dengan sebuah platform IoT. Dengan menggunakan platform ini kita dapat mengontrol dan memonitor perangkat keras dari jarak jauh. Selain itu platform ini dapat menyimpan data-data dari sensor serta dapat menampilkan hasil pengukuran datanya.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;4. Thingspeak&lt;/strong&gt;&lt;br&gt;
Thingspeak.com merupakan platform Internet of Things dibagian cloud dimana kita dapat mengirim atau menerima suatu data dengan protokol komunikasi HTTP dan juga dapat menampilkan nilai data melalui dashboard gratis yang diberikan. Thingspeak.com berfungsi sebagai pengumpul data yang berasal dari perangkat node berupa sensor-sensor yang sudah terhubung ke internet dan juga memungkinkan pengambilan data dari perangkat lunak untuk keperluan visualisasi, notifikasi, kontrol dan&lt;br&gt;
analisis historis data. Unsur utama dari ThingSpeak adalah saluran, yang berisi bidang data, bidang lokasi, dan bidang status. Setelah membuat saluran ThingSpeak, kita bisa menulis data ke saluran proses dan melihat hasil data lewat MATLAB. Dari situ dapat dilihat reaksi terhadap data&lt;br&gt;
dengan tweet dan alert lainnya.&lt;/p&gt;

&lt;h2&gt;
  
  
  1.3.3 Contoh Penerapan IoT
&lt;/h2&gt;

&lt;p&gt;IoT (Internet of Things) adalah konsep dimana perangkat fisik dihubungkan satu sama lain melalui internet, memungkinkan mereka untuk mengumpulkan, berbagi, dan bertukar data tanpa memerlukan campur tangan manusia.&lt;br&gt;
Salah satu aspek utama dalam IoT adalah aspek konektivitas, dimana setiap&lt;br&gt;
perangkat dalam sistem IoT harus dapat terhubung dengan perangkat lain atau server melalui jaringan komunikasi jadi, suatu sistem dikatakan sebagai sistem IoT apabila telah memenuhi aspek konektivitas ini.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Contoh Penerapan IoT di Lingkup Sekolah&lt;/strong&gt;&lt;br&gt;
● Smart Classroom: Penggunaan sensor cahaya dan suhu untuk mengatur&lt;br&gt;
pencahayaan dan pendingin ruangan secara otomatis.&lt;br&gt;
● Papan Pengumuman Digital: IoT digunakan untuk mengatur papan pengumuman&lt;br&gt;
digital yang dapat diperbarui dari jarak jauh.&lt;br&gt;
● Keamanan Sekolah: Penerapan kamera CCTV berbasis IoT untuk memantau aktivitas di sekitar sekolah, yang dapat diakses melalui aplikasi.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Contoh Penerapan IoT di Lingkup industri
● Industrial Automation: Penggunaan sensor dan aktuator yang terhubung dengan jaringan untuk mengontrol proses manufaktur.
● Predictive Maintenance: Sensor IoT digunakan untuk memantau kondisi mesin secara real-time, sehingga kerusakan dapat diprediksi dan dicegah sebelum terjadi.
● Supply Chain Management: Pemanfaatan IoT untuk melacak lokasi dan status barang dalam rantai pasokan.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;3. Contoh Penerapan IoT di Lingkup masyarakat&lt;/strong&gt;&lt;br&gt;
● Smart City: Implementasi sensor IoT untuk memantau lalu lintas, pencahayaan jalan, dan pengelolaan sampah kota secara otomatis.&lt;br&gt;
● Sistem Parkir Pintar: Penggunaan sensor untuk mendeteksi slot parkir yang kosong dan memberikan informasi kepada pengguna melalui aplikasi.&lt;br&gt;
● Monitoring Kualitas Udara: Sensor IoT digunakan untuk mengukur polusi udara di daerah perkotaan dan memberikan data yang bisa diakses oleh masyarakat.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Contoh Penerapan IoT di Lingkup pertanian&lt;/strong&gt;&lt;br&gt;
● Smart Irrigation: Penggunaan sensor kelembaban tanah untuk mengatur sistem irigasi secara otomatis, sehingga penggunaan air menjadi lebih efisien.&lt;br&gt;
● Pemantauan Tanaman: Sensor IoT untuk memantau kondisi tanaman, seperti suhu, kelembaban, dan tingkat cahaya, sehingga memudahkan pengelolaan tanaman.&lt;br&gt;
● Kendali Pemupukan: Sistem IoT yang memantau nutrisi tanah dan mengendalikan pemupukan berdasarkan kebutuhan aktual.&lt;/p&gt;

&lt;h3&gt;
  
  
  1.3.4 Advantages and Disadvantages of IoT
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Advantages of IoT&lt;/strong&gt;&lt;br&gt;
● Peningkatan Efisiensi: IoT memungkinkan otomatisasi dan pemantauan secara real- time, yang dapat secara signifikan meningkatkan efisiensi di berbagai sektor seperti industri, pertanian, dan kesehatan.&lt;br&gt;
● Penghematan Biaya: Otomatisasi dan pemeliharaan prediktif melalui IoT dapat mengurangi biaya operasional dan mencegah kerusakan yang mahal.&lt;br&gt;
● Peningkatan Pengumpulan Data: Perangkat IoT menyediakan data yang detail dan akurat yang dapat dianalisis untuk pengambilan keputusan yang lebih baik.&lt;br&gt;
● Kemudahan: IoT memungkinkan pemantauan dan pengendalian perangkat dari jarak jauh, menawarkan kenyamanan yang lebih besar dalam mengelola berbagai sistem, seperti rumah pintar atau kota pintar.&lt;br&gt;
● Peningkatan Kualitas Hidup: Aplikasi IoT di bidang kesehatan, kota pintar, dan bidang lainnya dapat meningkatkan kondisi hidup dan memperbaiki keselamatan.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Disadvantages of IoT&lt;/strong&gt;&lt;br&gt;
● Risiko Keamanan: Penggunaan perangkat IoT yang luas menciptakan potensi&lt;br&gt;
kerentanan yang dapat dimanfaatkan oleh penjahat siber jika tidak diamankan dengan benar.&lt;br&gt;
● Masalah Privasi: Perangkat IoT sering mengumpulkan data pribadi yang sensitif, yang menimbulkan kekhawatiran tentang privasi data dan potensi penyalahgunaan.&lt;br&gt;
● Kompleksitas: Menerapkan solusi IoT bisa rumit, membutuhkan keahlian di bidang perangkat keras, perangkat lunak, jaringan, dan analitik data.&lt;br&gt;
● Biaya Awal yang Tinggi: Penerapan infrastruktur IoT bisa mahal, terutama untuk implementasi skala besar.&lt;br&gt;
● Ketergantungan pada Konektivitas: Perangkat IoT bergantung pada koneksi internet yang stabil; gangguan apapun dapat menghambat fungsi sistem IoT.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sumber :&lt;/strong&gt;&lt;br&gt;
● &lt;a href="https://www.hashmicro.com/id/blog/platform-iot-terbaik-yang-cocok-diintegrasikan-dengan-sistem-erp/" rel="noopener noreferrer"&gt;https://www.hashmicro.com/id/blog/platform-iot-terbaik-yang-cocok-diintegrasikan-dengan-sistem-erp/&lt;/a&gt;&lt;br&gt;
● &lt;a href="https://deriota.com/news/read/1366/mengenal-kelebihan-dan-kekurangan-tinkercad-dan-wokwi-untuk-simulasi-iot.html" rel="noopener noreferrer"&gt;https://deriota.com/news/read/1366/mengenal-kelebihan-dan-kekurangan-tinkercad-dan-wokwi-untuk-simulasi-iot.html&lt;/a&gt;&lt;br&gt;
● &lt;a href="https://el.iti.ac.id/apa-itu-blynk-iot/" rel="noopener noreferrer"&gt;https://el.iti.ac.id/apa-itu-blynk-iot/&lt;/a&gt;&lt;br&gt;
● &lt;a href="https://www.anakteknik.co.id/krysnayudhamaulana/articles/thingspeakcom-web-server-iot-gratis-buat-kamu-yang-suka-gratisan?srsltid=AfmBOooT1X7Enqk5VbJWr6JnkR0slSbbb9kCtSqEBUNL1px_K2xuGhtM#google_vignette" rel="noopener noreferrer"&gt;https://www.anakteknik.co.id/krysnayudhamaulana/articles/thingspeakcom-web-server-iot-gratis-buat-kamu-yang-suka-gratisan?srsltid=AfmBOooT1X7Enqk5VbJWr6JnkR0slSbbb9kCtSqEBUNL1px_K2xuGhtM#google_vignette&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  1.4 Gambaran Umum Komponen IoT dan Teknologi Komunikasi
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. Sensor / Input device&lt;/strong&gt;&lt;br&gt;
Sensor adalah perangkat yang berfungsi untuk mendeteksi perubahan fisik atau kondisi lingkungan di sekitarnya dan mengubahnya menjadi sinyal elektrik atau data digital. Sensor berfungsi sebagai perangkat input dalam sistem IoT, karena mereka mengumpulkan informasi dari lingkungan fisik yang kemudian dikirim untuk diproses lebih lanjut. Selain sensor, data yang masuk bisa melalui perangkat lain seperti switch, keypad,&lt;br&gt;
mic, dan lain lain.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Aktuator / output device&lt;/strong&gt;&lt;br&gt;
Aktuator adalah perangkat yang menerima sinyal dari sistem kontrol IoT dan bertindak sesuai instruksi yang diterima. Aktuator berfungsi sebagai perangkat output dalam sistem IoT karena mereka memungkinkan sistem untuk memberikan respons atau melakukan tindakan fisik berdasarkan data yang telah diproses. aktuator ini bisa berupa servo, relay, led, lcd,&lt;br&gt;
speaker/buzzer, dan lain lain.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. IDE (Integrated Development Environment)&lt;/strong&gt;&lt;br&gt;
IDE atau Lingkungan Pengembangan Terpadu adalah perangkat lunak yang&lt;br&gt;
digunakan untuk menulis, mengedit, menguji, dan mengunggah kode pemrograman ke perangkat IoT. IDE menyediakan alat-alat yang memudahkan pengembang dalam membuat program untuk perangkat keras IoT.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Connection&lt;/strong&gt;&lt;br&gt;
Koneksi dalam sistem IoT mengacu pada teknologi komunikasi yang digunakan untuk menghubungkan perangkat IoT satu sama lain atau ke server pusat. Koneksi ini memungkinkan perangkat untuk bertukar data, memantau, dan mengontrol dari jarak jauh. Ada berbagai jenis teknologi komunikasi yang dapat digunakan dalam IoT, bergantung pada kebutuhan aplikasi dan kondisi lingkungan. Bisa melalui koneksi wired maupun wireless seperti wifi, bluetooth, ethernet.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sumber:&lt;/strong&gt;&lt;br&gt;
● &lt;a href="https://www.arduinoindonesia.id/2022/11/sensor-cahaya-ldr-pengertian-dan-cara-kerjanya.html" rel="noopener noreferrer"&gt;https://www.arduinoindonesia.id/2022/11/sensor-cahaya-ldr-pengertian-dan-cara-kerjanya.html&lt;/a&gt;&lt;br&gt;
● &lt;a href="https://www.arduinoindonesia.id/2020/09/cara-mengakses-dan-pemrograman-sensor.html" rel="noopener noreferrer"&gt;https://www.arduinoindonesia.id/2020/09/cara-mengakses-dan-pemrograman-sensor.html&lt;/a&gt;&lt;br&gt;
● &lt;a href="https://projecthub.arduino.cc/arcaegecengiz/using-dht11-12f621" rel="noopener noreferrer"&gt;https://projecthub.arduino.cc/arcaegecengiz/using-dht11-12f621&lt;/a&gt;&lt;br&gt;
● &lt;a href="https://iotkece.com/cara-mudah-mengakses-sensor-mq-135-pendeteksi-kualitas-udara/" rel="noopener noreferrer"&gt;https://iotkece.com/cara-mudah-mengakses-sensor-mq-135-pendeteksi-kualitas-udara/&lt;/a&gt;&lt;br&gt;
● &lt;a href="https://circuitdigest.com/microcontroller-projects/interfacing-mq5-gas-sensor-with-arduino" rel="noopener noreferrer"&gt;https://circuitdigest.com/microcontroller-projects/interfacing-mq5-gas-sensor-with-arduino&lt;/a&gt;&lt;br&gt;
● &lt;a href="https://deriota.com/news/read/1305/mikrokontroler-dalam-iot-pengertian-jenis-dan-fungsi.html" rel="noopener noreferrer"&gt;https://deriota.com/news/read/1305/mikrokontroler-dalam-iot-pengertian-jenis-dan-fungsi.html&lt;/a&gt;&lt;br&gt;
● &lt;a href="https://synapsis.id/sensor-iot.html" rel="noopener noreferrer"&gt;https://synapsis.id/sensor-iot.html&lt;/a&gt;&lt;br&gt;
● &lt;a href="https://indobot.co.id/belajar-iot-untuk-komponen-iot/" rel="noopener noreferrer"&gt;https://indobot.co.id/belajar-iot-untuk-komponen-iot/&lt;/a&gt;&lt;br&gt;
● &lt;a href="https://www.kmtech.id/post/contoh-penggunaan-sensor-dan-aktuator-dalam-mengembangkan-proyek-iot-dengan-arduino" rel="noopener noreferrer"&gt;https://www.kmtech.id/post/contoh-penggunaan-sensor-dan-aktuator-dalam-mengembangkan-proyek-iot-dengan-arduino&lt;/a&gt;&lt;br&gt;
● &lt;a href="https://www.arduinoindonesia.id/2023/01/penjelasan-tentang-aktuator-elektrik.html" rel="noopener noreferrer"&gt;https://www.arduinoindonesia.id/2023/01/penjelasan-tentang-aktuator-elektrik.html&lt;/a&gt;&lt;br&gt;
● &lt;a href="https://ozami.co.id/cara-kerja-iot-pada-sensor-gerak/" rel="noopener noreferrer"&gt;https://ozami.co.id/cara-kerja-iot-pada-sensor-gerak/&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Encryption in IOT</title>
      <dc:creator>Glaezz.</dc:creator>
      <pubDate>Tue, 21 Jan 2025 08:33:58 +0000</pubDate>
      <link>https://dev.to/glaezz/encryption-in-iot-3k69</link>
      <guid>https://dev.to/glaezz/encryption-in-iot-3k69</guid>
      <description>&lt;h2&gt;
  
  
  1. Penjelasan dan Contoh Perhitungan
&lt;/h2&gt;

&lt;h3&gt;
  
  
  RSA
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Studi Kasus:&lt;/strong&gt;&lt;br&gt;
Misalkan kita ingin mengenkripsi dan mendekripsi pesan "HELLO" menggunakan RSA.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Langkah Perhitungan:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Pilih Bilangan Prima:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;( p = 61 )&lt;/li&gt;
&lt;li&gt;( q = 53 )&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Hitung ( n ) dan ( ϕ(n) ):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;( n = p . q = 61 . 53 = 3233 )&lt;/li&gt;
&lt;li&gt;( ϕ(n) = (p-1)(q-1) = 60 . 52 = 3120 )&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Pilih ( e ):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;( e = 17 ) (relatif prima terhadap 3120)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Hitung ( d ):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;( d . e % ϕ(n) = 1 )&lt;/li&gt;
&lt;li&gt;( d = 2753 ) (invers dari ( e ))&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Enkripsi Pesan:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Pesan "HELLO" -&amp;gt; Konversi ke angka (contoh: A=0, B=1, ..., Z=25)&lt;/li&gt;
&lt;li&gt;"HELLO" = 7 4 11 11 14&lt;/li&gt;
&lt;li&gt;Enkripsi setiap karakter:

&lt;ul&gt;
&lt;li&gt;( c = m^e % n )&lt;/li&gt;
&lt;li&gt;Untuk H (7): ( c = 7^{17} % 3233 )&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Dekripsi:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;( m = c^d % n )&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Contoh Kode Python:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;mod_exp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;base&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;exp&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;mod&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nf"&gt;pow&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;base&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;exp&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;mod&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;p&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;61&lt;/span&gt;
&lt;span class="n"&gt;q&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;53&lt;/span&gt;
&lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;p&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;q&lt;/span&gt;
&lt;span class="n"&gt;phi_n&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;p&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;q&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;e&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;17&lt;/span&gt;
&lt;span class="n"&gt;d&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;2753&lt;/span&gt;

&lt;span class="c1"&gt;# Enkripsi
&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;HELLO&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="n"&gt;ciphertext&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nf"&gt;mod_exp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;ord&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;char&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;65&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;char&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

&lt;span class="c1"&gt;# Dekripsi
&lt;/span&gt;&lt;span class="n"&gt;decrypted&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;''&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;join&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;chr&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;mod_exp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;65&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;c&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;ciphertext&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Ciphertext: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ciphertext&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Decrypted: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;decrypted&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  AES
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Studi Kasus:&lt;/strong&gt;&lt;br&gt;
Kita akan mengenkripsi pesan "HELLO" menggunakan AES.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Langkah Perhitungan:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Kunci:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Kunci 128-bit: &lt;code&gt;0123456789abcdef&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Padded Data:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Pesan "HELLO" -&amp;gt; Padding hingga 16 byte: "HELLO\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b"&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Enkripsi:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Gunakan AES dalam mode CBC (Cipher Block Chaining).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Dekripsi:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Lakukan dekripsi menggunakan kunci yang sama.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Contoh Kode Python:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;Crypto.Cipher&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;AES&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;Crypto.Util.Padding&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;pad&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;unpad&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;

&lt;span class="n"&gt;key&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;0123456789abcdef&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;
&lt;span class="n"&gt;cipher&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;AES&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;new&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;AES&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;MODE_CBC&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;plaintext&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;HELLO&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;
&lt;span class="n"&gt;padded_data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;pad&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;plaintext&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;AES&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;block_size&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;ct_bytes&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;cipher&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;encrypt&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;padded_data&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Dekripsi
&lt;/span&gt;&lt;span class="n"&gt;cipher_dec&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;AES&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;new&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;AES&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;MODE_CBC&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;cipher&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;iv&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;decrypted&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;unpad&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;cipher_dec&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;decrypt&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ct_bytes&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="n"&gt;AES&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;block_size&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Ciphertext: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ct_bytes&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;hex&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Decrypted: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;decrypted&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;decode&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  DSA
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Studi Kasus:&lt;/strong&gt;&lt;br&gt;
Kita akan menandatangani pesan "HELLO" menggunakan DSA.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Langkah Perhitungan:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Kunci:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;( p ) dan ( q ) adalah bilangan prima yang sesuai.&lt;/li&gt;
&lt;li&gt;Pilih ( x ) secara acak sebagai kunci privat.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Tanda Tangan:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Hitung hash dari pesan.&lt;/li&gt;
&lt;li&gt;Hitung ( r ) dan ( s ) berdasarkan langkah-langkah DSA.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Contoh Kode Python:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;Crypto.Signature&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;DSS&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;Crypto.PublicKey&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;DSA&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;Crypto.Hash&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;SHA256&lt;/span&gt;

&lt;span class="n"&gt;key&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;DSA&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;generate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2048&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;message&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;HELLO&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;
&lt;span class="n"&gt;h&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;SHA256&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;new&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Tanda Tangan
&lt;/span&gt;&lt;span class="n"&gt;signature&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;DSS&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;new&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;fips-186-3&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;sign&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;h&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Verifikasi
&lt;/span&gt;&lt;span class="n"&gt;verifier&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;DSS&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;new&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;publickey&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;fips-186-3&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;verifier&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;verify&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;h&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;signature&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Signature: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;signature&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;hex&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  2. Studi Kasus Penggunaan di Arduino
&lt;/h2&gt;

&lt;h3&gt;
  
  
  RSA di Arduino
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Studi Kasus:&lt;/strong&gt;&lt;br&gt;
Menggunakan RSA untuk mengamankan komunikasi antara Arduino dan PC.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Contoh Kode:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="cp"&gt;#include&lt;/span&gt; &lt;span class="cpf"&gt;&amp;lt;Arduino.h&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;
#include&lt;/span&gt; &lt;span class="cpf"&gt;&amp;lt;RSAPublicKey.h&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;
&lt;/span&gt;
&lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;setup&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;Serial&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;begin&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;9600&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

    &lt;span class="c1"&gt;// Inisialisasi kunci publik&lt;/span&gt;
    &lt;span class="k"&gt;const&lt;/span&gt; &lt;span class="kt"&gt;char&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;publicKey&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"YOUR_PUBLIC_KEY_HERE"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="n"&gt;RSAPublicKey&lt;/span&gt; &lt;span class="n"&gt;rsaPublicKey&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;publicKey&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

    &lt;span class="c1"&gt;// Enkripsi pesan&lt;/span&gt;
    &lt;span class="k"&gt;const&lt;/span&gt; &lt;span class="kt"&gt;char&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"HELLO"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="n"&gt;byte&lt;/span&gt; &lt;span class="n"&gt;ciphertext&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;256&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
    &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;cipherLen&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;rsaPublicKey&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;encrypt&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="n"&gt;byte&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;strlen&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="n"&gt;ciphertext&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

    &lt;span class="n"&gt;Serial&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Ciphertext: "&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;cipherLen&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="n"&gt;Serial&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ciphertext&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="n"&gt;HEX&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="n"&gt;Serial&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;" "&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;loop&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  AES di Arduino
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Studi Kasus:&lt;/strong&gt;&lt;br&gt;
Menggunakan AES untuk mengenkripsi data sensor.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Contoh Kode:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="cp"&gt;#include&lt;/span&gt; &lt;span class="cpf"&gt;&amp;lt;AES.h&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;
#include&lt;/span&gt; &lt;span class="cpf"&gt;&amp;lt;Crypto.h&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;
&lt;/span&gt;
&lt;span class="n"&gt;AES&lt;/span&gt; &lt;span class="n"&gt;aes&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;setup&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;Serial&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;begin&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;9600&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="n"&gt;byte&lt;/span&gt; &lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;16&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="mh"&gt;0x01&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mh"&gt;0x02&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mh"&gt;0x03&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mh"&gt;0x04&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mh"&gt;0x05&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mh"&gt;0x06&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mh"&gt;0x07&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mh"&gt;0x08&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mh"&gt;0x09&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mh"&gt;0x0A&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mh"&gt;0x0B&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mh"&gt;0x0C&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mh"&gt;0x0D&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mh"&gt;0x0E&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mh"&gt;0x0F&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mh"&gt;0x10&lt;/span&gt;&lt;span class="p"&gt;};&lt;/span&gt;
    &lt;span class="n"&gt;byte&lt;/span&gt; &lt;span class="n"&gt;plaintext&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;16&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"HELLO WORLD!!!"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="n"&gt;byte&lt;/span&gt; &lt;span class="n"&gt;ciphertext&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;16&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;

    &lt;span class="n"&gt;aes&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;do_aes_encrypt&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;plaintext&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;16&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;ciphertext&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;128&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

    &lt;span class="n"&gt;Serial&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Ciphertext: "&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="mi"&gt;16&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="n"&gt;Serial&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ciphertext&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="n"&gt;HEX&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="n"&gt;Serial&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;" "&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;loop&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  DSA di Arduino
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Studi Kasus:&lt;/strong&gt;&lt;br&gt;
Menggunakan DSA untuk menandatangani data yang diterima dari sensor.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Contoh Kode:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="cp"&gt;#include&lt;/span&gt; &lt;span class="cpf"&gt;&amp;lt;DSA.h&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;
&lt;/span&gt;
&lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;setup&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;Serial&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;begin&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;9600&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="n"&gt;DSA&lt;/span&gt; &lt;span class="n"&gt;dsa&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="c1"&gt;// Gen kunci DSA&lt;/span&gt;
    &lt;span class="n"&gt;dsa&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;generateKeys&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

    &lt;span class="c1"&gt;// Tanda tangan pesan&lt;/span&gt;
    &lt;span class="k"&gt;const&lt;/span&gt; &lt;span class="kt"&gt;char&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"HELLO"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="n"&gt;byte&lt;/span&gt; &lt;span class="n"&gt;signature&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;40&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
    &lt;span class="n"&gt;dsa&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sign&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;signature&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

    &lt;span class="n"&gt;Serial&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Signature: "&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="mi"&gt;40&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="n"&gt;Serial&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;signature&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="n"&gt;HEX&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="n"&gt;Serial&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;" "&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;loop&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
    </item>
  </channel>
</rss>
