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

Cara menggunakan MongoDB untuk membangunkan sistem rumah pintar yang mudah

PHPz
PHPzasal
2023-09-19 15:46:471089semak imbas

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

    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 };

    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;
    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,
    };

    在根目录下创建一个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');
    });
    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:
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