Rumah pangkalan data MongoDB Cara menggunakan MongoDB untuk membangunkan sistem rumah pintar yang mudah

Cara menggunakan MongoDB untuk membangunkan sistem rumah pintar yang mudah

Sep 19, 2023 pm 03:46 PM
mongodb membangun Sistem rumah pintar

Cara menggunakan MongoDB untuk membangunkan sistem rumah pintar yang mudah

Cara menggunakan MongoDB untuk membangunkan sistem rumah pintar yang ringkas

Sistem rumah pintar telah menjadi sebahagian daripada kehidupan keluarga moden. Dengan bantuan sistem rumah pintar, kami boleh mengawal pelbagai peranti di rumah dari jauh, seperti lampu, peralatan, kunci pintu, dsb., melalui telefon mudah alih atau peranti lain. Artikel ini akan memperkenalkan cara menggunakan MongoDB untuk membangunkan sistem rumah pintar yang ringkas dan menyediakan contoh kod khusus untuk rujukan pembaca.

1. Analisis keperluan sistem

Sebelum memulakan pembangunan, kami perlu menjelaskan keperluan sistem terlebih dahulu. Sistem rumah pintar yang ringkas sepatutnya mempunyai fungsi berikut:

  1. Log masuk dan pendaftaran pengguna: Pengguna boleh menggunakan sistem dengan mendaftar akaun dan log masuk.
  2. Pengurusan Peranti: Pengguna boleh menambah, memadam dan mengawal pelbagai peranti, seperti lampu, perkakas, kunci pintu, dsb.
  3. Tugas berjadual: Pengguna boleh menetapkan tugas berjadual, seperti menghidupkan dan mematikan lampu atau peralatan elektrik pada masa yang dijadualkan.
  4. Sejarah: Sistem harus merekodkan sejarah kawalan pengguna peranti untuk dilihat oleh pengguna.

2. Reka bentuk pangkalan data

Berdasarkan keperluan di atas, kami boleh mereka bentuk struktur pangkalan data berikut:

  1. Jadual pengguna (pengguna):

    • _id: ID pengguna
    • nama pengguna kata laluan:
    • nama pengguna: kata laluan
  2. Meja peranti (peranti):

    • _id: ID peranti
    • nama: nama peranti
    • jenis: jenis peranti
    • status: status peranti (hidup/mati)
  3. Tugasan berjadual (tugas):
  4. _id: ID tugas
    • nama: nama tugas
    • device_id: ID peranti
    • user_id: ID pengguna
    • masa: rekod masa pelaksanaan tugas
    • s ):
  5. _id: ID rekod
  6. device_id: ID peranti

      user_id: ID pengguna
    • tindakan: operasi (hidup/mati)
    • masa: masa operasi
    • pembangunan sistem

kami akan menggunakan MongoDB dan Node.js untuk membangunkan sistem rumah pintar.

    Persediaan alam sekitar
Pertama, pastikan anda telah memasang Node.js dan MongoDB dan mulakan perkhidmatan MongoDB.

    Buat projek dan pasang kebergantungan
Laksanakan arahan berikut dalam baris arahan untuk mencipta projek Node.js baharu dan pasangkan kebergantungan yang sepadan:

mkdir smart-home-system
cd smart-home-system
npm init -y
npm install express mongodb
Salin selepas log masuk

    Buat sambungan pangkalan data
Creyate satu dalam direktori root db.js fail dan tambah kandungan berikut:

const { MongoClient } = require('mongodb');

async function connect() {
    try {
        const client = await MongoClient.connect('mongodb://localhost:27017');
        const db = client.db('smart-home-system');
        console.log('Connected to the database');
        return db;
    } catch (error) {
        console.log('Failed to connect to the database');
        throw error;
    }
}

module.exports = { connect };
Salin selepas log masuk
    db.js文件,并添加以下内容:

    const express = require('express');
    const { ObjectId } = require('mongodb');
    const { connect } = require('../db');
    
    const router = express.Router();
    
    router.get('/', async (req, res) => {
        try {
            const db = await connect();
            const devices = await db.collection('devices').find().toArray();
            res.json(devices);
        } catch (error) {
            res.status(500).json({ error: error.message });
        }
    });
    
    router.post('/', async (req, res) => {
        try {
            const { name, type, status, user_id } = req.body;
            const db = await connect();
            const result = await db.collection('devices').insertOne({
                name,
                type,
                status,
                user_id: ObjectId(user_id),
            });
            res.json(result.ops[0]);
        } catch (error) {
            res.status(500).json({ error: error.message });
        }
    });
    
    module.exports = router;
    Salin selepas log masuk
    1. 创建路由和控制器

    在根目录下创建一个routes文件夹,并添加以下路由文件devices.js

    const { connect } = require('../db');
    
    async function getDevices() {
        try {
            const db = await connect();
            const devices = await db.collection('devices').find().toArray();
            return devices;
        } catch (error) {
            throw error;
        }
    }
    
    async function createDevice(device) {
        try {
            const db = await connect();
            const result = await db.collection('devices').insertOne(device);
            return result.ops[0];
        } catch (error) {
            throw error;
        }
    }
    
    module.exports = {
        getDevices,
        createDevice,
    };
    Salin selepas log masuk

    在根目录下创建一个controllers文件夹,并添加以下控制器文件devicesController.js

    const express = require('express');
    const devicesRouter = require('./routes/devices');
    
    const app = express();
    
    app.use(express.json());
    
    app.use('/devices', devicesRouter);
    
    app.listen(3000, () => {
        console.log('Server is running on port 3000');
    });
    Salin selepas log masuk

    1. 创建入口文件

    在根目录下创建一个index.jsBuat laluan dan pengawal

    Buat laluan dalam folder direktori akar dan tambahkan fail penghalaan berikut devices.js:

    rrreee

    Buat folder controllers dalam direktori akar dan tambah fail pengawal berikut devicesController:

    rrreee

      Buat fail entri

      🎜Buat fail index.js dalam direktori akar dan tambah kandungan berikut: 🎜rrreee🎜Ini dia, kami telah menyelesaikan pembangunan sistem rumah pintar mudah, termasuk log masuk dan pendaftaran pengguna, pengurusan peranti, tugas berjadual dan fungsi rakaman operasi. 🎜🎜4. Ringkasan🎜🎜Artikel ini memperkenalkan cara menggunakan MongoDB untuk membangunkan sistem rumah pintar yang ringkas. Dengan menggunakan gabungan MongoDB dan Node.js, kami boleh mengendalikan penyimpanan dan pemprosesan data dengan mudah. Pembaca boleh mengembangkan lagi sistem ini dan menambah lebih banyak fungsi mengikut keperluan tertentu. 🎜🎜Contoh kod yang disediakan dalam artikel ini adalah untuk rujukan sahaja Pembaca harus mengubah suai dan memperbaikinya mengikut keperluan sebenar semasa pembangunan sebenar. 🎜

    Atas ialah kandungan terperinci Cara menggunakan MongoDB untuk membangunkan sistem rumah pintar yang mudah. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Arahan sembang dan cara menggunakannya
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimanakah ciri baharu fungsi PHP memudahkan proses pembangunan? Bagaimanakah ciri baharu fungsi PHP memudahkan proses pembangunan? May 04, 2024 pm 09:45 PM

Ciri baharu fungsi PHP sangat memudahkan proses pembangunan, termasuk: Fungsi anak panah: Menyediakan sintaks fungsi tanpa nama yang ringkas untuk mengurangkan lebihan kod. Pengisytiharan jenis harta: Tentukan jenis untuk sifat kelas, tingkatkan kebolehbacaan dan kebolehpercayaan kod, dan secara automatik melakukan semakan jenis pada masa jalan. operator null: Memeriksa dan mengendalikan nilai nol secara ringkas, boleh digunakan untuk mengendalikan parameter pilihan.

Apakah kegunaan net4.0 Apakah kegunaan net4.0 May 10, 2024 am 01:09 AM

.NET 4.0 digunakan untuk mencipta pelbagai aplikasi dan ia menyediakan pemaju aplikasi dengan ciri yang kaya termasuk: pengaturcaraan berorientasikan objek, fleksibiliti, seni bina berkuasa, penyepaduan pengkomputeran awan, pengoptimuman prestasi, perpustakaan yang luas, keselamatan, Kebolehskalaan, akses data dan mudah alih sokongan pembangunan.

Cara mengkonfigurasi pengembangan automatik MongoDB pada Debian Cara mengkonfigurasi pengembangan automatik MongoDB pada Debian Apr 02, 2025 am 07:36 AM

Artikel ini memperkenalkan cara mengkonfigurasi MongoDB pada sistem Debian untuk mencapai pengembangan automatik. Langkah -langkah utama termasuk menubuhkan set replika MongoDB dan pemantauan ruang cakera. 1. Pemasangan MongoDB Pertama, pastikan MongoDB dipasang pada sistem Debian. Pasang menggunakan arahan berikut: SudoaptDateSudoaptInstall-ImongoDB-Org 2. Mengkonfigurasi set replika replika MongoDB MongoDB Set memastikan ketersediaan dan kelebihan data yang tinggi, yang merupakan asas untuk mencapai pengembangan kapasiti automatik. Mula MongoDB Service: sudosystemctlstartmongodsudosys

Cara Memastikan Ketersediaan MongoDB Tinggi di Debian Cara Memastikan Ketersediaan MongoDB Tinggi di Debian Apr 02, 2025 am 07:21 AM

Artikel ini menerangkan cara membina pangkalan data MongoDB yang sangat tersedia pada sistem Debian. Kami akan meneroka pelbagai cara untuk memastikan keselamatan data dan perkhidmatan terus beroperasi. Strategi Utama: Replicaset: Replicaset: Gunakan replika untuk mencapai redundansi data dan failover automatik. Apabila nod induk gagal, set replika secara automatik akan memilih nod induk baru untuk memastikan ketersediaan perkhidmatan yang berterusan. Sandaran dan Pemulihan Data: Secara kerap Gunakan perintah Mongodump untuk membuat sandaran pangkalan data dan merumuskan strategi pemulihan yang berkesan untuk menangani risiko kehilangan data. Pemantauan dan penggera: Menyebarkan alat pemantauan (seperti Prometheus, Grafana) untuk memantau status MongoDB dalam masa nyata, dan

Kaedah Navicat untuk melihat kata laluan pangkalan data MongoDB Kaedah Navicat untuk melihat kata laluan pangkalan data MongoDB Apr 08, 2025 pm 09:39 PM

Tidak mustahil untuk melihat kata laluan MongoDB secara langsung melalui Navicat kerana ia disimpan sebagai nilai hash. Cara mendapatkan kata laluan yang hilang: 1. Tetapkan semula kata laluan; 2. Periksa fail konfigurasi (mungkin mengandungi nilai hash); 3. Semak Kod (boleh kata laluan Hardcode).

Kemas kini utama Pi Coin: Pi Bank akan datang! Kemas kini utama Pi Coin: Pi Bank akan datang! Mar 03, 2025 pm 06:18 PM

Pinetwork akan melancarkan Pibank, platform perbankan mudah alih revolusioner! Pinetwork hari ini mengeluarkan kemas kini utama mengenai Pimisrbank Elmahrosa (muka), yang disebut sebagai Pibank, yang mengintegrasikan dengan baik perkhidmatan perbankan tradisi C). Apakah pesona Pibank? Mari kita cari! Fungsi utama Pibank: Pengurusan sehenti akaun bank dan aset cryptocurrency. Menyokong urus niaga masa nyata dan mengamalkan biospesies

Sesuaikan rangka kerja Java untuk meningkatkan kecekapan pembangunan Sesuaikan rangka kerja Java untuk meningkatkan kecekapan pembangunan Jun 02, 2024 pm 08:00 PM

Menyesuaikan rangka kerja Java boleh meningkatkan kecekapan pembangunan dan memenuhi keperluan khusus. Langkah-langkah termasuk: Kenal pasti komponen teras. Buat struktur asas. Tentukan antara muka dan kelas biasa. Melaksanakan fungsi tertentu. Komponen rangka kerja bersepadu. Penyesuaian rangka kerja menyediakan fleksibiliti untuk memenuhi keperluan projek, seperti yang ditunjukkan dalam contoh penyesuaian rangka kerja SpringMVC.

MongoDB vs. Oracle: Pemodelan Data dan Fleksibiliti MongoDB vs. Oracle: Pemodelan Data dan Fleksibiliti Apr 11, 2025 am 12:11 AM

MongoDB lebih sesuai untuk memproses data yang tidak berstruktur dan lelaran yang cepat, sementara Oracle lebih sesuai untuk senario yang memerlukan konsistensi data yang ketat dan pertanyaan kompleks. Model dokumen 1.MongoDB adalah fleksibel dan sesuai untuk mengendalikan struktur data kompleks. 2. Model hubungan Oracle adalah ketat untuk memastikan konsistensi data dan prestasi pertanyaan yang kompleks.

See all articles