Maison  >  Article  >  base de données  >  Comment utiliser MongoDB pour développer un système simple de maison intelligente

Comment utiliser MongoDB pour développer un système simple de maison intelligente

PHPz
PHPzoriginal
2023-09-19 15:46:471011parcourir

Comment utiliser MongoDB pour développer un système simple de maison intelligente

Comment utiliser MongoDB pour développer un système de maison intelligente simple

Les systèmes de maison intelligente font désormais partie de la vie de famille moderne. Grâce aux systèmes de maison intelligente, nous pouvons contrôler à distance divers appareils de la maison, tels que les lumières, les appareils électroménagers, les serrures de porte, etc., via des téléphones portables ou d'autres appareils. Cet article expliquera comment utiliser MongoDB pour développer un système de maison intelligente simple et fournira des exemples de code spécifiques pour référence aux lecteurs.

1. Analyse de la configuration système requise

Avant de commencer le développement, nous devons d'abord clarifier la configuration système requise. Un simple système de maison intelligente doit avoir les fonctions suivantes :

  1. Connexion et enregistrement de l'utilisateur : les utilisateurs peuvent utiliser le système en créant un compte et en se connectant.
  2. Gestion des appareils : les utilisateurs peuvent ajouter, supprimer et contrôler divers appareils, tels que des lumières, des appareils électroménagers, des serrures de porte, etc.
  3. Tâches planifiées : les utilisateurs peuvent définir des tâches planifiées, telles que l'allumage et l'extinction des lumières ou des appareils électriques à des heures programmées.
  4. Historique : le système doit enregistrer l'historique de contrôle de l'utilisateur sur l'appareil pour que l'utilisateur puisse le consulter.

2. Conception de la base de données

Sur la base des exigences ci-dessus, nous pouvons concevoir la structure de base de données suivante :

  1. Table des utilisateurs (utilisateurs) :

    • _id : ID utilisateur
    • nom d'utilisateur : nom d'utilisateur
    • mot de passe : mot de passe
  2. Tableau des appareils (appareils) :

    • _id : ID de l'appareil
    • name : nom de l'appareil
    • type : type d'appareil
    • status : état de l'appareil (on/off)
    • user_id : ID utilisateur
  3. Tâches planifiées (tâches) :

    • _id : ID de la tâche
    • name : nom de la tâche
    • device_id : ID de l'appareil
    • user_id : ID de l'utilisateur
    • time : temps d'exécution de la tâche
  4. tableau d'enregistrement d'opération (enregistrements ):

    • _id : ID d'enregistrement
    • device_id : ID de l'appareil
    • user_id : ID utilisateur
    • action : opération (on/off)
    • time : heure de fonctionnement

3. Développement du système

Ensuite, nous utiliserons MongoDB et Node.js pour développer un système de maison intelligente.

  1. Préparation de l'environnement

Tout d'abord, assurez-vous d'avoir installé Node.js et MongoDB et démarrez le service MongoDB.

  1. Créer un projet et installer les dépendances

Exécutez les commandes suivantes dans la ligne de commande pour créer un nouveau projet Node.js et installer les dépendances correspondantes :

mkdir smart-home-system
cd smart-home-system
npm init -y
npm install express mongodb
  1. Créez une connexion à la base de données

Créez-en une dans le répertoire racine db.js et ajoutez le contenu suivant : db.js文件,并添加以下内容:

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 };
  1. 创建路由和控制器

在根目录下创建一个routes文件夹,并添加以下路由文件devices.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;

在根目录下创建一个controllers文件夹,并添加以下控制器文件devicesController.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,
};
  1. 创建入口文件

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

    Créez des routes et des contrôleurs

    Créez un routes dans le dossier du répertoire racine et ajoutez le fichier de routage suivant devices.js :

    rrreee

    Créez un dossier controllers dans le répertoire racine et ajoutez le fichier de contrôleur suivant devicesController :

    rrreee

      Créer un fichier d'entrée

      🎜🎜Créez un fichier index.js dans le répertoire racine et ajoutez le contenu suivant : 🎜rrreee🎜Ça y est, nous ont achevé le développement d'un système simple de maison intelligente, comprenant la connexion et l'enregistrement des utilisateurs, la gestion des appareils, les tâches planifiées et les fonctions d'enregistrement des opérations. 🎜🎜4. Résumé🎜🎜Cet article présente comment utiliser MongoDB pour développer un système de maison intelligente simple. En utilisant la combinaison de MongoDB et Node.js, nous pouvons facilement gérer le stockage et le traitement des données. Les lecteurs peuvent étendre davantage ce système et ajouter plus de fonctions en fonction de besoins spécifiques. 🎜🎜Les exemples de code fournis dans cet article sont uniquement à titre de référence. Les lecteurs doivent les modifier et les améliorer en fonction des besoins réels pendant le développement réel. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn