Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Proses manufaktur

Membangun IoT dengan Java ME 8 pada Raspberry Pi: Bagian 1 – Integrasi Sensor GPIO

Temukan cara menghubungkan dan mengontrol sensor pada Raspberry Pi menggunakan Java ME 8, membuka kemampuan IoT yang canggih.

Diterbitkan September 2014

Rilis terbaru Java ME 8 memperkenalkan API Device I/O yang kuat yang menyederhanakan kontrol LED, relay, LCD, sensor, motor, dan saklar.

Artikel ini memulai seri tiga bagian tentang integrasi sensor elektronik dengan Raspberry Pi Model B melalui antarmuka GPIO, I²C, SPI, atau UART.

Dengan memanfaatkan Java ME 8 untuk menggerakkan perangkat melalui antarmuka ini, Anda dapat membangun ekosistem IoT yang fungsional sepenuhnya.

Dalam edisi ini kita fokus pada GPIO dan menyediakan kelas Java ME 8 siap pakai untuk:

Catatan: Proyek lengkap NetBeans IDE 8.0, termasuk semua berkas sumber, dapat diunduh di sini.

Ringkasan API Device I/O

Spesifikasi API Device I/O mendefinisikan antarmuka I/O periferal generik untuk aplikasi Java pada platform embedded. Ini mencakup perangkat umum seperti:

Pertimbangan Rangkaian Utama

Semua pin GPIO Raspberry Pi beroperasi pada 3,3 V. Sebelum menghubungkan sensor, verifikasi persyaratan tegangannya. Jika perangkat mengharapkan 5 V, gunakan konverter level logika (misalnya, penggeser berbasis MOSFET BSS138) untuk menerjemahkan sinyal dengan aman.

Menghubungkan Detektor Api

Sensor api DFR0076 mendeteksi panjang gelombang cahaya antara ~760 nm dan 1100 nm, dengan rentang deteksi 20–100 cm. Saat api ada, pin sinyal-nya menarik tinggi.

Rangkaikan sensor ke 3,3 V, GND, dan GPIO 22 Pi seperti yang diilustrasikan dalam Gambar 3, lalu buat kelas Java ME 8 untuk mengontrolnya.

Listing 1 – Kelas DFR0076Device

public class DFR0076Device { private GPIOPin pin = null; // Pin untuk kontrol sensor api }

Listing 2 – Inisialisasi pin GPIO

public DFR0076Device(int pinGPIO) { pin = (GPIOPin) DeviceManager.open(new GPIOPinConfig( 0, pinGPIO, GPIOPinConfig.DIR_INPUT_ONLY, GPIOPinConfig.MODE_INPUT_PULL_UP, GPIOPinConfig.TRIGGER_RISING_EDGE, false)); }

Listing 3 – Pendaftaran listener

public void setListener(PinListener flameListener) { if (pin != null) { pin.setInputListener(flameListener); } }

Listing 4 – Pembersihan sumber daya

public void close() { if (pin != null) { pin.setInputListener(null); pin.close(); } }

Listing 5 – MIDlet yang menggunakan sensor api

public class TestSensors extends MIDlet { private DFR0076Device flame; private static final int FLAME_DETECTOR_PIN = 22; public void startApp() { flame = new DFR0076Device(FLAME_DETECTOR_PIN); flame.setListener(new FlameSensor()); } public void destroyApp(boolean unconditional) { flame.close(); } private static int waitNext = 1; private class FlameSensor implements PinListener { public void valueChanged(PinEvent event) { if (event.getValue() && --waitNext == 0) { System.out.println("PERINGATAN Api terdeteksi!!!"); waitNext = 10; } } } }

Menghubungkan Detektor Gerak

Integrasikan sensor PIR HC-SR501, yang mengeluarkan pulsa 3,3 V saat gerak terdeteksi. Tiga pin sensor adalah GND, VCC (3–5 V), dan digital out.

Sesuaikan sensitivitas dan penundaan PIR melalui potensiometer-nya, dan atur jumper ke “L” untuk trigger tunggal atau “H” untuk trigger berulang.

Rangkaikan PIR ke 5 V, GND, dan GPIO 24, lalu perluas MIDlet dengan kelas HCSR501Device khusus.

Listing 6 – Kelas HCSR501Device

public class HCSR501Device { private GPIOPin pin = null; }

Listing 7 – Inisialisasi pin dengan penundaan 3 detik

public HCSR501Device(int pinGPIO) { pin = (GPIOPin) DeviceManager.open(new GPIOPinConfig( 0, pinGPIO, GPIOPinConfig.DIR_INPUT_ONLY, GPIOPinConfig.MODE_INPUT_PULL_DOWN, GPIOPinConfig.TRIGGER_RISING_EDGE, false)); I2CUtils.I2Cdelay(3000); // Tunggu stabilisasi sensor }

Listing 8 – Mendaftarkan listener gerak

public void setListener(PinListener pirListener) { if (pin != null) { pin.setInputListener(pirListener); } }

Listing 9 – Pembersihan

public void close() { if (pin != null) { pin.setInputListener(null); pin.close(); } }

Perluas TestSensors MIDlet untuk menangani peristiwa gerak:

Listing 10 – MIDlet dengan dukungan PIR

// Inisialisasi sensor PIR private HCSR501Device pir; private static final int MOTION_DETECTOR_PIN = 24; @Override public void startApp() { pir = new HCSR501Device(MOTION_DETECTOR_PIN); pir.setListener(new PirSensor()); } @Override public void destroyApp(boolean unconditional) { pir.close(); } private class PirSensor implements PinListener { public void valueChanged(PinEvent event) { if (event.getValue()) { System.out.println("PERINGATAN Gerak terdeteksi!!!"); } } }

Untuk penjelasan lebih dalam, baca seri lengkap: Java ME 8 + Raspberry Pi + Sensor = Dunia IoT (Bagian 1).

Proses manufaktur

  1. Java Hello World: Program Pertama Anda
  2. Membangun Pencatat Data Multisaluran dengan Raspberry Pi – Bagian 1: Persyaratan & Arsitektur
  3. Tutorial IoT untuk Pemula: Streaming Data Suhu dari Raspberry Pi
  4. Mengukur Sensor Analog pada Raspberry Pi dengan Satu Pin GPIO
  5. Mengukur Sensor Analog pada Raspberry Pi Tanpa ADC Bawaan
  6. Cara Menghubungkan Termometer Digital One-Wire DS18B20 ke Raspberry Pi – Panduan Langkah Demi Langkah
  7. Membangun IoT dengan Java ME 8 pada Raspberry Pi: Bagian 1 – Integrasi Sensor GPIO
  8. Membaca Sensor Hall Linier dengan Raspberry Pi: Panduan Java & Wawasan ADC0832
  9. Mahir dalam Sensor Raspberry Pi: Panduan Praktis Elektronika dan Protokol Komunikasi
  10. Memantau Suhu Rumah dengan Dashboard Raspberry Pi