10 Idea Projek IoT untuk FYP dan Projek Tahun Akhir

Kartun telefon pintar memaparkan graf papan pemuka di tengah, dikelilingi enam modul sensor berbeza - DHT11 biru muda, HC-SR04 biru dengan dua silinder perak, PIR biru berkubah putih susu, probe tanah hitam, modul relay merah dan modul GPS biru dengan antena perak - dengan sudut papan ESP32 hitam kecil terpotong di tepi kiri

Setiap projek IoT yang benar-benar boleh disiapkan seorang diri dalam satu semester berkongsi rangka yang sama: satu sensor masuk, ESP32 membuat keputusan, Wi-Fi menghantar nilai keluar ke papan pemuka Blynk, dan satu relay boleh bertindak balas. Sepuluh idea di bawah ialah rangka itu dengan sensor yang ditukar — jadi kesukaran sebenar datang daripada tempat ia dipasang, bukan bilangan komponennya.

Panduan ini untuk pelajar universiti, politeknik dan diploma yang perlu memilih satu projek tahun akhir dan menyiapkannya sendiri. Setiap idea menghala ke panduan binaan penuh yang sudah ada di sini, supaya anda boleh terus ke pendawaian sebaik pilihan dibuat.

Jawapan ringkas: paling selamat untuk dibuat seorang diri ialah pemantau suhu dan kelembapan bilik, kawalan lampu atau kipas DC dari telefon, dan sistem siram pokok automatik — semuanya dipasang di dalam bilik yang ada soket. Yang paling kerap tidak siap ialah kehadiran pengecaman wajah, pemantau tenaga sesalur dan nod bateri yang perlu bertahan berbulan-bulan.

Apa rangka yang dikongsi oleh setiap projek IoT ini?

Rajah aliran kartun empat blok - modul DHT11 biru muda, papan ESP32 hitam, awan hijau mint dengan lengkung isyarat, dan telefon pintar memaparkan graf - dengan anak panah melengkung kembali ke modul relay merah di bawah
Sensor masuk, ESP32 memutuskan, nilai keluar ke pelayan Blynk dan turun ke telefon; arahan balik ke relay ialah gelung yang sama pada arah bertentangan.

ESP32 ialah mikropengawal dengan radio Wi-Fi di dalam pakej yang sama, dan itulah satu-satunya sebab senarai idea ini boleh sependek ini. Setiap projek di bawah ialah empat blok yang sama.

Blok pertama, sensor, menukar kuantiti fizikal kepada sesuatu yang boleh dibaca oleh papan: voltan yang didigitkan oleh ADC (probe tanah, TDS), lebar denyut yang diukur dengan pemasa (HC-SR04), atau bingkai data pada protokol bersiri (DHT11, DS18B20, GPS). Blok kedua ialah keputusan — hampir selalu satu perbandingan dengan satu aras had.

Blok ketiga inilah yang membuatkan ia “IoT”. ESP32 membuka sambungan TCP keluar ke pelayan Blynk dan menulis nilai pada pin maya; aplikasi telefon anda melanggan pelayan yang sama. Kerana kedua-dua belah mendail keluar ke pelayan di tengah, anda tidak perlu tahu alamat IP papan itu dan tidak perlu membuka apa-apa port pada router — sebab itu projek ini berfungsi dari luar rumah tanpa kerja rangkaian tambahan. Blok keempat, relay, membawa keputusan itu balik ke dunia fizikal.

Sepuluh idea projek IoT untuk FYP dan projek tahun akhir

Lajur tahap di bawah dikira daripada tempat projek itu perlu dipasang, bukan daripada bilangan komponennya.

Idea projek IoT Sensor teras Tahap Tambahan Panduan binaan
Pemantau suhu dan kelembapan bilik atau makmal DHT11 Mudah Tiada — sudah dalam teras Monitor suhu DHT11 + OLED
Kawalan lampu atau kipas DC voltan rendah dari telefon (contohnya 12 V) — (output sahaja) Mudah Tiada — sudah dalam teras Kawal relay guna Blynk
Sistem siram pokok automatik Sensor kelembapan tanah Mudah CAPSOIL, 5VWPUMP Sistem siram automatik
Penggera pencerobohan dengan notifikasi telefon PIR Mudah HCSR501 ESP32 web server + relay — bahagian output
Pemantau kualiti udara dan jerebu dalaman Sensor habuk Sederhana Ikut senarai dalam panduan itu Sensor kualiti udara
Pemantau paras air tangki Ultrasonik kalis air Sederhana Probe kalis air — ikut senarai dalam panduan itu Sensor paras air tangki
Pemantau suhu air akuakultur atau akuarium DS18B20 kalis air Sederhana DS18B20 + perintang 4.7 kΩ Sensor suhu kalis air
Meter kualiti air TDS untuk kolam atau paip Probe TDS Sederhana Ikut senarai dalam panduan itu Meter TDS
Kamera pemantauan jarak jauh Modul kamera Sederhana S3CAM56 Stream video ESP32-S3 CAM
Penjejak lokasi kenderaan atau aset GPS NEO-6M Sukar (kuasa di lapangan) GPS6MAN Modul GPS NEO-6M

Satu nota tentang baris tangki: HC-SR04 dalam senarai pilihan ialah sensor udara kering — dua transdusernya terdedah, dan udara lembap di dalam tangki air memakannya. Simpan ia untuk ukuran jarak di atas meja atau paras sampah dalam tong; untuk tangki air, panduan kami menggunakan probe ultrasonik yang bersalut penuh.

Kos setiap idea mengikut corak yang sama: teras dibeli sekali, kemudian satu atau dua barang daripada senarai pilihan. Kedua-dua senarai di atas memaparkan harga semasa secara langsung, jadi anggaran kos bagi mana-mana baris ialah teras campur bahagian yang dinamakan dalam baris itu.

Untuk projek peringkat sekolah menengah — Tingkatan 1 hingga 3, kerja kursus RBT — senarai yang lebih sesuai ada dalam panduan idea projek elektronik RBT.

Kod rangka yang sama untuk semua idea

Sketch di bawah ialah rangka penuh untuk idea pertama dalam jadual: baca DHT11, hantar dua nilai ke papan pemuka, dan cetuskan notifikasi apabila melepasi aras had. Untuk menukarnya kepada idea lain, gantikan dua baris pembacaan dan perpustakaannya — selebihnya kekal.

// Rangka asas setiap projek IoT FYP: baca sensor -> putuskan -> hantar ke Blynk.
#define BLYNK_TEMPLATE_ID   "TMPL6xxxxxxxx"   // salin dari Blynk.Console
#define BLYNK_TEMPLATE_NAME "Projek FYP"
#define BLYNK_AUTH_TOKEN    "TokenAndaDiSini"

#include <WiFi.h>
#include <BlynkSimpleEsp32.h>
#include <DHT.h>

const char* SSID_WIFI = "NamaWiFiAnda";
const char* PASS_WIFI = "KataLaluanWiFi";

#define PIN_DHT  4          // GPIO4 pada ESP32 DevKit
#define JENIS_DHT DHT11

DHT dht(PIN_DHT, JENIS_DHT);
BlynkTimer pemasa;

const float HAD_SUHU = 32.0;   // aras cetusan, dalam Celsius
bool amaranAktif = false;

void hantarBacaan() {
  float suhu   = dht.readTemperature();
  float lembap = dht.readHumidity();

  // DHT11 kadang-kadang tak jawab; langkau pusingan itu, jangan hantar sampah.
  if (isnan(suhu) || isnan(lembap)) {
    Serial.println("Bacaan DHT gagal - langkau pusingan ini");
    return;
  }

  Blynk.virtualWrite(V0, suhu);
  Blynk.virtualWrite(V1, lembap);

  // Hysteresis 1 C supaya bacaan yang bergetar di aras had tidak menghantar
  // puluhan notifikasi berturut-turut.
  if (suhu >= HAD_SUHU && !amaranAktif) {
    Blynk.logEvent("suhu_tinggi", String("Suhu ") + suhu + " C");
    amaranAktif = true;
  } else if (suhu < HAD_SUHU - 1.0) {
    amaranAktif = false;
  }
}

void setup() {
  Serial.begin(115200);
  dht.begin();
  Blynk.begin(BLYNK_AUTH_TOKEN, SSID_WIFI, PASS_WIFI);
  pemasa.setInterval(120000L, hantarBacaan); // 2 nilai / 2 minit - lihat kiraan kuota di bawah
}

void loop() {
  Blynk.run();
  pemasa.run();
}

Dua perkara di luar kod ini gagal secara senyap kalau terlepas. Di Blynk.Console, cipta satu template, datastream V0 dan V1, dan satu event berkod suhu_tinggi; kalau nama itu tidak wujud, Blynk.virtualWrite dan Blynk.logEvent tidak memulangkan sebarang ralat — papan pemuka anda cuma kekal kosong. Dalam Arduino IDE pula, DHT sensor library bergantung pada Adafruit Unified Sensor, dan tanpanya kompilasi berhenti dengan ralat Adafruit_Sensor.h: No such file or directory.

Empat keputusan dalam kod itu ialah empat kesilapan yang paling kerap merosakkan projek FYP. Pertama, BlynkTimer dan bukan delay(): Blynk.run() mesti dipanggil berterusan supaya ia sempat menjawab ping pelayan. Perpustakaan Blynk menghantar ping setiap 40 saat dan memutuskan sambungan apabila tiada apa-apa masuk selama 40 saat campur tiga kali tamat masa 6 saat, iaitu kira-kira 58 saat (BlynkConfig.h). Jadi delay() panjang di dalam loop() menjatuhkan sambungan dan peranti kelihatan “offline” pada telefon walaupun ia sebenarnya hidup, manakala delay() pendek pula melambatkan tindak balas butang papan pemuka. BlynkTimer mengelak kedua-duanya.

Kedua, semakan isnan. DHT11 menghantar datanya sebagai denyut yang panjangnya menentukan nilai bit, dan ESP32 mesti mengira masa denyut itu. Apabila kerja Wi-Fi menyampuk di tengah bingkai, pemasaan itu terpesong dan perpustakaan memulangkan NaN. Melangkau pusingan itu lebih baik daripada menolak nilai sampah ke graf anda.

Ketiga, hysteresis satu darjah. Bacaan sebenar bergetar sedikit di sekitar aras had, jadi tanpa jarak antara “hidupkan amaran” dan “matikan amaran”, satu suhu yang duduk tepat pada 32 °C akan menghantar notifikasi berulang kali.

Keempat, selang dua minit dan bukan dua saat. Perpustakaan DHT hanya membenarkan satu bacaan baharu setiap 2 saat; panggilan yang lebih awal memulangkan nilai lama yang sama, bukan ralat (DHT.cpp). Lebih penting lagi untuk projek yang dibiarkan berjalan: pelan percuma Blynk mengira 100,000 mesej peranti sebulan (senarai pelan Blynk). Dua nilai setiap dua saat ialah kira-kira 86,400 mesej sehari, jadi kuota sebulan habis dalam kira-kira sehari dan graf anda berhenti dikemas kini di tengah semester; dua nilai setiap dua minit ialah kira-kira 43,000 sebulan. Turunkan selang itu sementara semasa menguji di atas meja, kemudian naikkan semula sebelum projek ditinggalkan berjalan.

Video pendek ini menunjukkan bacaan itu muncul di telefon buat kali pertama — bahagian yang paling sukar digambarkan dengan teks.

Apa yang sebenarnya memakan minggu?

Kartun tiga senario - kiri breadboard putih dengan papan ESP32 hitam dan sensor DHT11 di atas meja, tengah litar yang sama dalam kotak kalis cuaca kelabu di sebelah pasu tanah liat dengan probe tanah hitam, kanan kotak kelabu pada tiang di luar dengan panel solar biru gelap dan kotak bateri di kaki tiang
Litar yang sama, tiga persekitaran: di atas meja ia siap dalam satu hujung minggu, di dalam pasu ia perlu kalis air, di atas tiang ia perlu kuasa sendiri.

Sensor bukan bahagian yang mahal dari segi masa. Membaca DHT11 atau probe tanah di atas meja ialah kerja satu petang, kerana perpustakaannya sudah ditulis dan pendawaiannya tiga wayar. Yang menghabiskan minggu ialah empat perkara di luar litar itu.

Faktor Kenapa ia memakan masa Cara mengecilkannya
Persekitaran pemasangan Setiap langkah keluar dari meja — ke dalam pasu, ke dalam tangki, ke atas tiang — menambah kalis air, pemasangan dan capaian Pilih tempat yang anda boleh capai dalam masa lima minit
Kalis air dan kotak Kotak, gland kabel dan pengedapan ialah kerja mekanikal, bukan kerja elektronik Letak elektronik di dalam, hanya probe di luar
Kuasa di lapangan Tiada soket bermakna bateri, cas dan belanjawan arus — satu subprojek penuh Kekal pada bekalan USB kalau boleh
Antara muka pengguna sendiri Aplikasi telefon atau pelayan sendiri ialah projek kedua dengan pepijatnya sendiri Guna papan pemuka Blynk yang sudah siap

Sebab itulah dua baris terakhir jadual idea di atas bertanda lebih tinggi. Kamera dan GPS bukan lebih sukar untuk didawai daripada DHT11; ia lebih sukar kerana kedua-duanya biasanya berakhir di luar bilik.

Dua butiran mengejutkan pelajar pada hari pertama: papan kamera ESP32-S3 datang dengan jalur pinnya belum dipateri, tetapi stream pertama hanya perlukan kabel USB-C jadi anda boleh bermula tanpa memateri apa-apa; dan modul GPS tidak akan mengunci kedudukan pertamanya di dalam bangunan — bawa ia ke tempat lapang dan beri beberapa minit sebelum menganggap ia rosak.

Satu lagi punca minggu yang hilang ialah papan yang tidak mahu menerima kod. Puncanya ada dalam panduan ESP32 tak detect dan upload gagal, dan papan yang mati sendiri semasa Wi-Fi menyala biasanya masalah rel kuasa — lihat panduan bekalan kuasa ESP32.

Idea yang nampak mudah tetapi patut dielakkan

Kartun tiga senario bertanda pangkah merah besar - kiri modul kamera hitam pada riben oren menghadap kad kelabu kosong, tengah kotak agihan elektrik rumah putih dengan segi tiga amaran kuning, kanan kotak kelabu di tanah dengan penunjuk bateri hampir kosong berjalur merah tunggal
Tiga idea yang selalu dipilih kerana bunyinya hebat, dan tiga sebab teknikal ia jarang siap dalam satu semester.

Sistem kehadiran pengecaman wajah. Modul kamera ESP32 boleh stream video, tetapi pengecaman wajah membandingkan satu vektor ciri kecil dengan sampel tersimpan. Tukar cahaya, sudut atau jarak, dan jarak antara dua gambar orang yang sama berubah lebih banyak daripada jarak antara dua orang berlainan — demo makmal lulus, bilik kuliah sebenar tidak. Kalau anda tetap membinanya, bina sebagai alat log dan notifikasi dengan pengesahan manusia, bukan sebagai kunci.

Pemantau tenaga sesalur. Mengukur penggunaan tenaga rumah bermakna bekerja pada pendawaian sesalur, dan itu kerja bervoltan tinggi yang di Malaysia memerlukan pendawai bertauliah. Panduan ini kekal pada DC voltan rendah. Kalau tenaga memang tema anda, ukur bahagian DC sesuatu beban — panel solar, pek bateri — menggunakan modul pengukur DC, dan biarkan sesalur di luar skop.

Nod bateri sahaja yang perlu bertahan berbulan-bulan. Cip ESP32 memang boleh turun ke sekitar 10 µA dalam deep sleep (helaian data Espressif), tetapi papan DevKit bukan cip sahaja. Pengatur voltan AMS1117 di atasnya menarik arus pegun 5 mA tipikal (helaian datanya) walaupun cip itu tidur, dan cip USB-bersiri juga kekal berkuasa. Jadi lantai penggunaan papan ialah beberapa mA, bukan mikroampere: pek 2000 mAh dibahagi 5 mA memberi 400 jam, iaitu lebih kurang 17 hari — dan itu mengira pengatur voltan sahaja, jadi dengan cip USB-bersiri pada papan yang sama angka sebenar lebih pendek lagi. Bukan berbulan. Kalau projek anda mesti berdiri sendiri, rancang solar dan kitaran tugas dari awal (panel solar dan 18650, jenis bateri lithium).

Membina aplikasi telefon sendiri. Papan pemuka dan notifikasi tolak sudah datang percuma dengan Blynk. Menulis aplikasi anda sendiri menambah rantai pembinaan, kebenaran Android, pengedaran fail dan satu protokol baharu antara telefon dan papan — semuanya di luar sistem yang anda sepatutnya tunjukkan.

Kesilapan biasa yang kami lihat

Menyambung modul relay atau pam terus kepada pin 3.3 V. Modul relay 5 V mengambil DC+ daripada pin VIN atau 5V papan dengan GND dikongsi, dan pin IN boleh dipandu terus daripada GPIO 3.3 V kerana opto-coupler di dalamnya hanya perlukan arus yang cukup untuk menyalakan LED dalamannya. Pam mini menarik 0.1–0.2 A, jauh melebihi kemampuan satu pin GPIO, jadi ia mesti disuis melalui terminal beban relay dan tidak sekali-kali terus ke pin. Panduan ini kekal pada beban DC voltan rendah; pendawaian penuh dan kedudukan jumper trigger H/L ada dalam panduan relay module.

Membaca sensor analog pada pin ADC2 sambil Wi-Fi hidup. ADC2 pada ESP32 dikongsi dengan radio Wi-Fi (dokumentasi Espressif), jadi sebaik Wi-Fi bersambung, bacaan pada pin ADC2 seperti GPIO25, 26, 27, 12, 13 dan 14 boleh gagal atau memulangkan sifar. Ini menyerang tepat pada idea probe tanah dan meter TDS: litarnya betul, tetapi grafnya rata. Letakkan setiap sensor analog pada pin ADC1 — GPIO32, 33, 34, 35, VP dan VN.

Memilih sensor 5 V untuk ESP32 tanpa menurunkan voltannya. HC-SR04 dikuasakan 5 V dan pin ECHO-nya mengeluarkan hampir 5 V, sedangkan pin GPIO ESP32 ialah 3.3 V dan tidak toleran 5 V. Dua perintang sebagai pembahagi voltan (contohnya 1 kΩ dan 2 kΩ) menurunkan 5 V kepada kira-kira 3.3 V. Kalau anda mahu elak kerja itu buat sementara, jalankan sensor itu pada Arduino Uno yang memang 5 V dahulu — contohnya dalam projek tong sampah automatik. Bandingkan dengan HC-SR501: modul PIR itu mahu bekalan 5 V (pin VIN papan apabila dikuasakan melalui USB), tetapi keluarannya sudah pun aras 3.3 V, jadi ia masuk terus ke GPIO tanpa pembahagi.

Menyambung DS18B20 tanpa perintang tarik-naik. Bas 1-Wire ialah litar saliran terbuka: peranti hanya boleh menarik talian ke bawah, tidak menolaknya naik. Tanpa perintang 4.7 kΩ antara talian data dan 3.3 V, talian itu tidak pernah kembali tinggi dan papan membaca kosong atau −127 °C. Perintang itu tidak disertakan dengan probe, jadi sediakannya sebelum hari pemasangan.

Menyangka kabel USB apa-apa pun boleh. Banyak kabel Type-C hanya membawa wayar kuasa. Papan akan menyala, lampu PWR hidup, tetapi tiada port COM muncul kerana tiada laluan data. Guna kabel data, bukan kabel cas.

Menukar idea di pertengahan semester. Kerana kesemua sepuluh idea berkongsi rangka yang sama, menukar sensor pada minggu keenam biasanya tidak membuang kod anda — tetapi ia membuang kerja pemasangan, yang jauh lebih mahal. Tetapkan tempat pemasangan sebelum menetapkan sensor.

Kami membekalkan komponen dan panduan binaan langkah demi langkah; projek itu tetap projek anda dari mula sampai habis.

FAQ

Apa itu projek IoT?

Projek IoT ialah litar yang mengukur sesuatu di dunia fizikal dan menghantar bacaan itu melalui rangkaian supaya ia boleh dilihat atau dikawal dari tempat lain. Dalam projek pelajar, itu bermakna sensor, satu papan dengan Wi-Fi seperti ESP32, dan satu papan pemuka di telefon.

Idea projek IoT mana paling mudah untuk FYP?

Pemantau suhu dan kelembapan bilik, kerana ia menggunakan kandungan senarai teras sahaja dan dipasang di atas meja. Kesukaran dalam projek IoT datang daripada persekitaran pemasangan, bukan sensor, jadi projek dalam bilik sentiasa lebih pantas siap.

Berapa kos projek IoT untuk FYP?

Kos berbentuk teras campur tambahan: satu set teras yang sama untuk semua idea, kemudian satu atau dua barang mengikut idea pilihan anda. Kedua-dua senarai bahagian di atas memaparkan harga semasa, jadi anda boleh menjumlahkan baris idea anda sendiri.

ESP32 atau Arduino Uno untuk projek IoT?

ESP32, kerana radio Wi-Fi ada di dalam pakej cip yang sama — tiada modul rangkaian tambahan diperlukan. Arduino Uno perlukan papan rangkaian berasingan sebelum ia boleh menghantar apa-apa keluar. Perbandingan penuh ada dalam panduan beza ESP32, ESP8266 dan Arduino Uno, dan pilihan varian ESP32 dalam panduan ESP32 mana nak beli.

Bolehkah satu projek IoT disiapkan seorang diri dalam satu semester?

Boleh, kalau pemasangannya mudah dicapai. Rangka sensor-ke-papan-pemuka itu sendiri kerja beberapa hari; yang mengambil baki semester ialah kotak, kalis air, kuasa dan ujian berulang di tempat sebenar.

Kemas kini terakhir Ogos 2026. Tersangkut? Chat dengan kami di WhatsApp.

Leave a Reply

Your email address will not be published. Required fields are marked *