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?

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.
Teras FYP — dibeli sekali, guna untuk mana-mana idea
Papan ESP32 dengan Wi-Fi terbina, kabel data Type-C, breadboard 830 lubang, kedua-dua jantina wayar dupont, satu sensor pertama dan satu output relay. Ini rangka lengkap sebelum anda memilih idea.
Pilihan tambahan
Pilih satu atau dua sahaja mengikut idea yang anda pilih dalam jadual di bawah. Papan ESP32 30-pin menutup hampir seluruh lebar breadboard dan hanya meninggalkan kira-kira satu lajur lubang yang boleh diguna di sisinya, jadi papan pengembang di hujung senarai ialah jalan keluar apabila sesuatu idea perlukan banyak sambungan.
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?

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

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.



NodeMCU ESP32 Wi-Fi + Bluetooth Development Board CH340/CP2012 - For IOT Project - ESP-32 (CH340)
Data Cable Type-A Type-C MicroUSB Type-B 0.5m 1m 30cm 0.3m 100cm Data Transfer Upload Code - TYPE-A TO TYPE-C CABLE (1.0M)
MB102 Breadboard 170 400 830 Holes Breadboard Donut Board Arduino Prototype Multi Color - BREADBOARD (830 HOLES)
40pcs Dupont Wire 10cm 20cm 30cm for Breadboard DIY Experiment Jumper Wire Breadboard wire - DUPONT WIRE M-F 20CM
40pcs Dupont Wire 10cm 20cm 30cm for Breadboard DIY Experiment Jumper Wire Breadboard wire - DUPONT WIRE M-M 20CM
DHT 11 DHT 22 Temperature and Humidity Sensor DHT22 High Sensitivity Sensor DHT11 For Aduino IOT - DHT11 SENSOR
Relay Module 3.3V 5V 12V 1/2/4/8 Ways Optocoupler Trigger Relay Module 1 2 4 8 Channel Relay Module - 5V RELAY MODULE(1WAY)
Capacitive Soil Moisture Sensor V1.2 Corrosion Resistant with Cable For Arduino IOT Application
Mini Water Pump Submersible DC 3V-5V - 5V WATER PUMP
Ultrasonic Sensor HC-SR04 Ultrasonic Range Detection Distance Finder Obstacle avoidance For Arduino Application
Temperature Sensor DS18B20 Temperature Measurement Probe WaterProof 18B20
PIR Motion Sensor HC-SR501 MN-SR501 MINI Human Sensor Human Detector Motion Detector Arduino HCSR501 MNSR501 - HC-SR501 PIR MOTION SENSOR
GPS Module GY NEO 6M/8M with Ceramic Antenna Time and Location Tracking - For Arduino IOT Project - GY-NEO-6M GPS MODULE
ESP32-S3 WROOM CAM DEVELOPMENT BOARD OV5640 CAMERA MODULE WIFI BLUETOOTH DUAL USB-C IOT AI
ESP32 Expansion Board 30P Expansion Board ESP32 Shield GPIO Expansion Development Kit