विषयसूची:

पेक्वेनो प्रोजेटो डी उमा कासा इंटेलिजेंट: 5 कदम
पेक्वेनो प्रोजेटो डी उमा कासा इंटेलिजेंट: 5 कदम

वीडियो: पेक्वेनो प्रोजेटो डी उमा कासा इंटेलिजेंट: 5 कदम

वीडियो: पेक्वेनो प्रोजेटो डी उमा कासा इंटेलिजेंट: 5 कदम
वीडियो: एनएलएस Español रॉबर्ट एडवर्ड ग्रांट 2024, नवंबर
Anonim
पेक्वेनो प्रोजेतो डी उमा कासा इंटेलिजेंट
पेक्वेनो प्रोजेतो डी उमा कासा इंटेलिजेंट

ओ प्रोजेक्ट क्यू फ़ारेमोस ई डे उमा कासा इंटेलिजेंट। पोस्सुई बेसिकामेंटे डूइस ग्रूपोस डे फंकियोनिलिडेड्स:· डी मॉनिटरामेंटो डी इल्यूमिनाकाओ ई टेम्पेरेटुरा डॉस कोमोडोस।

· डि मॉनिटरामेंटे डे लिस्टा डे एलिमेंटोस ई निवेल डे अगुआ फिल्ट्राडा ना गेलेडेरा।

नो एस्क्रेवेरमोस ओएस फ़र्मवेयर डॉस डिस्पोज़िटिवोस IoT da Geladeira nem dos cômodos; porém assumiremos que os dispositivos fazem o seguinte:

- ए जेलडेइरा पॉसुई उम डिस्पोजिटिवो कॉम टचस्क्रीन एम क्यू ई पॉसिबल एंट्री कॉम डैडोस डी एलिमेंटोस: ओ नोम डे उम एलिमेंटो ई सुआ क्वांटिडेड;

- ए गेलडेइरा पोसुई उम सेंसर डे निवेल एम उम पेक्वेनो टैनके डे अगुआ एम्बुटिडो ना जेलादेइरा;

- ओएस कोमोडोस टर्म-मेट्रोस ई सेंसर्स डी इल्यूमिनानिया;

- ओएस कोमोडोस टुम अर कंडिशनैडो क्यू से कॉम्यूनिकैम पेला रेड वाईफाई;

- as lâmpadas dos cômodos podem ter o brilho ajustado por dispositivo que se comunica pela rede wifi;

आवश्यकताएँ:

- कॉन्हेसिमेंटो बेसिको एम पायथन, जावास्क्रिप्ट, यूसो डू सिस्टेमा ऑपरेशियन, कोमांडो बेसिक्स नो शेल

- टेर इंस्टालाडो: नोडज, पायथन

- स्थापित करें (वैकल्पिक): docker, emulador de dispositivo mobile, gerenciador de sdk do Android (डिस्पोंनिवेल नो एंड्रॉइड स्टूडियो)

O desenvolvimento desse projeto foi feito no Linux. विंडोज के लिए आवश्यक है।

चरण 1: Configurando O Ambiente

कॉन्फिगुरैंडो ओ एंबिएंटे
कॉन्फिगुरैंडो ओ एंबिएंटे
कॉन्फिगुरैंडो ओ एंबिएंटे
कॉन्फिगुरैंडो ओ एंबिएंटे

वेमोस कॉन्फिगरर या एम्बिएंट डे डिसेनवोल्विमेंटो एम 2 भाग: सर्वर और मोबाइल।ओ सर्वर सेरा एस्क्रिटो एम पायथन ई ओ मोबाइल एम जावास्क्रिप्ट या टाइपस्क्रिप्ट, सेंडो यूटिलिजैडो रिएक्ट नेटिव पैरा ओ प्रोजेक्टो।

reactnative.dev/

वामोस इनिशियलमेंटे क्रिअर उमा एस्ट्रुटुरा डे पास्ता। एम डिरेटोरियो एस्कोल्हिडो (क्यू ए पार्टिर डे अगोरा सेरा एस्क्रिटो सेम्पर कॉमो $PROJECT_DIR कॉमो प्लेसहोल्डर - क्री कॉम नो लोकल क्यू अचर माईस एडक्वाडो ई कॉम ओ नोम डे सुआ प्रेफरेंशिया), वामोस क्रिअर उमा पास्ता "सर्विडोर":

$mkdir $PROJECT_DIR && cd $PROJECT_DIR

$ mkdir servidor

कॉन्फिगुरांडो ओ एम्बिएंट डे डेसेनवोल्विमेंटो पैरा ओ सेविडोर

पॉडमोस यूटिलिज़र और एम्बिएंट कॉन्टिनरिज़ाडो कॉम डॉकर या एम्बिएंट वर्चुअल पायथन (वेनव)। Caso deseje utilizar परिवेश conteinerizado, criaremos a imagem segundo o dockerfile:

$ सीडी $PROJECT_DIR

$ टच डॉकरफाइल

वेजा इमेजम dockerfile.

कैसो प्रीफिरा यूटिलिज़र एम्बिएंट वर्चुअल डू पायथन, सिगा इन इंस्ट्रुकेज़ एम

वमोस एंताओ क्रिअर ओ आर्किवो क्यू पर्सिस्टिरा ए लिस्टा डे डिपेंडेन्सियास डो सर्विसिडोर ई कोलोकार एज़ डिपेंडेन्सियास नीसेरियास:

$ स्पर्श आवश्यकताएँ.txt

Veja imagem do आवश्यकताएँ.txt।

कैसो तेन्हा ऑप्टैडो पोर यूटिलिज़र उम एम्बिएंट कॉन्टिनरिज़ाडो, कॉन्स्ट्रुआ ए इमेजम ई एंटर नो कंटेनर:

$ डॉकर बिल्ड। -टी स्मार्थहाउस $ डॉकर रन -it -p 3000: 3000 -v $ (pwd): / ऐप स्मार्थहाउस बैश

इस बारे में पहले से ही जानकारी दी गई है कि डॉकरफाइल और कुछ डॉकर:

कॉन्फिगुरांडो ओ एम्बिएंट डे डेसेनवोल्विमेंटो मोबाइल

उम पासो ए पासो डे कॉमो कॉन्फिगरर ओ एम्बिएंट डे डेसेनवोल्विमेंटो मोबाइल कॉम रिएक्ट नेटिव पॉड सेर विस्टो नो लिंक:

अप्स टेर ओ एम्बिएंट कॉन्फिगुराडो, और पास्ता डो प्रोजेक्टो डेवे सेर पॉसिवेल एक्ज़ीक्यूटर ओ कॉमांडो पैरा क्रिअर ए एप्लीकाकाओ मोबाइल:

$ एनपीएक्स क्रिएट-रिएक्शन-नेटिव-ऐप क्लाइंट

चरण 2: वेबसॉकेट

इंटरेसेंट क्यू ओ लेइटर कॉन्हेका पेलो मेनोस उम पाउको ए रिस्पीटो डे वेबसोकेट एंट्स डे प्रोसेगुइर। कैसो ओ लेटर ननका तेन्हा लिडो, ट्रैबलहाडो या ओविडो फलार नाडा ए रिस्पीटो, अलग अल्गन्स मिनटोस पैरा एंटेन्डर कॉमो फंकियोना या वेबसोकेट एट्रैवेस दा डॉक्यूमेंटाकाओ:

developer.mozilla.org/pt-BR/docs/WebSocket…

उसारेमोस उमा बिब्लियोटेका नो क्लाइंट ई नो सर्विडोर क्यू एबस्ट्राई ओ प्रोटोकॉल डी मानेरा क्यू नाओ प्रिसिजनमोस पेनसर एम डिटेल्हेस डे चामाडा ई डे आर्मजेनामेंटो डी आइडेंटिफाडोरेस ई रोटास। अलग-अलग ताम्बे उम टेम्पो पैरा एस्टुडार के रूप में बिब्लियोटेकस यूटिलिज़ैडोस नो क्लाइंट ई नो सर्विडोर:

ग्राहक:

सर्वर:

चरण 3: एस्क्रेवेंडो ओ सर्विडोर

एस्क्रेवेंडो ओ सर्विडोर
एस्क्रेवेंडो ओ सर्विडोर
एस्क्रेवेंडो ओ सर्विडोर
एस्क्रेवेंडो ओ सर्विडोर
एस्क्रेवेंडो ओ सर्विडोर
एस्क्रेवेंडो ओ सर्विडोर
एस्क्रेवेंडो ओ सर्विडोर
एस्क्रेवेंडो ओ सर्विडोर

वामोस क्रिअर उमा एस्ट्रुटुरा इनिशियल डू प्रोजेटो ई एस्क्रेवर ए इंटरफ़ेस क्यू सेरा यूटिलाइज़ाडा कोमो कम्युनिकाकाओ कॉम ओ सर्विसिडोर:

$ एमकेडीआईआर स्रोत

$ स्पर्श app.py src/{नियंत्रक, सॉकेटकनेक्शन}.py

प्राइमिरामेंटे वामोस एस्क्रेवर उम मोडुलो डे इनिकलिज़ाकाओ डो सर्विडोर:

वेजा इमेजम do app.py

Depois vamos escrever o modulo que estabelece as conexões as websocket e as redirecionam para um controlador.

वेजा इमेजम do socketconnection.py

नियंत्रक ई उपयोगकेस

ओ कंट्रोलाडोर रिसेबेरा उम पैकोटे डो मोडुलो रिस्पोंसवेल पोर एस्टाबेलर ई गेरेनसीर एज़ कॉन्क्सो; सेरा उत्तरदायित्व दो नियंत्रणकर्ता सेबर क्वाल फनकाओ डे कासो डी उसो चमार पैरा कैडा एन्वेंटो रिसेबिडो, बेम कोमो ए पार्टिर दा जवाब दो कासो डी उसो एनवियर उम पैकोटे डे प्रतिक्रिया पैरा ए साला रूम डे डिस्पोजिटिवोस कॉन्टेक्टाडोस पैरा एटुअलिजस।

Veja imagem do controler.py।

फ़ाइनलमेंट टेम्पोस ओएस कैसोस डी यूसो क्यू डेवेम गेरेनसीर कोमो डेवे सेर ट्रैटाडो ओएस डैडोस डू इवेंट टू रिसेबिडो ई क्रिअर ओएस नोवोस डैडोस ए पार्टिर डू डैडोस रिसेबिडोस पैरा क्यू ओ कंट्रोलडोर एस्टैडो डू सिस्टेमा। नो कैसो डेसे सिस्टेमा हा सोमेंटे एटुअलिज़ाकाओ डे वेलोरेस (सेजम न्यूमेरिकोस, टेक्स्टो या बूलियनोस - नो कासो डे लिगर/डेसलीगर डिस्पोजिटिवोस डे एम्बिएंटाकाओ)। Então não é de surpreender que os casos de uso tão somente chame funções do modulo responsável pelapersência de dados como se fosse essa a "regra de negócio"।

वेजा इमेजम do usecases.py

नोट: प्रीसीसामोस पर्सिस्टिर ओएस डैडोस डी अल्गुमा फॉर्मा। Fica a escolha do leitor como prefere armazenar os dados e portanto, कार्यान्वयनकर्ता as funções do src/repository.py। कोई प्रोजेटो डिसेनवोल्विडो कोमो उदाहरण उदाहरण के लिए कोई निरंतर डेटाबेस नहीं है। कोई रिपॉजिटरी नहीं है जो पहले से ही सत्यापित है और यह पास्ता सर्वर/डेटाबेस कॉम है, जिसमें सभी प्रकार के सर्वर/डेटाबेस-मॉडल शामिल हैं।

चरण 4: टेस्टांडो ओ सर्विडोर

टेस्टांडो ओ सर्विडोर
टेस्टांडो ओ सर्विडोर

पोडेमोस क्रिअर उम स्क्रिप्ट पैरा कोनेक्टर एओ सर्विडोर ई एनवीयर इवेंटोस कन्फर्म ए एस्ट्रुटुरा एस्पेरडा पेलोस कंट्रोलाडोरेस पैरा फिन्स डे टेस्टेस मैनुएइस। वामोस क्रिअर निबंध स्क्रिप्ट ई रोडा-लो कॉम ओ सर्विडोर *।

Veja imagem do serverclient.py

कॉम या आर्किवो क्रिआडो, वेरीफिक से ओ कंटेनर एस्टा रोडांडो, ई डेंट्रो डेले एक्जीक्यूट:

$ अजगर app.py

Fora do कंटेनर, कोई diretório $PROJECT_DIR/server निष्पादित नहीं:

$ python3 serverclient.py

कोई संकेत नहीं ">" डिजिट ओएस इवेंटोस एनकंट्राडोस नो कंट्रोलडोर सेगुइडो डे ";" e então valores de identificação e/ou novos valores. उदाहरण के लिए:

UPDATE_FRIDGE_WATER_LEVEL;80

UPDATE_ROOM_TEMPERATURE;1, 22.0

UPDATE_ROOM_TEMPERATURE_SETPOINT;1, 17.5

UPDATE_ROOM_LUMINOSITY;100

UPDATE_ROOM_LUMINOSITY_SETPOINT;0

TOGGLE_ROOM_TEMPERATURE;1

TOGGLE_ROOM_LIGHT;1

ई पैरा कैडा इवेंटो एनविआडो वेरिफिक से फोई पर्सिस्टिडो नो बैंको डे डैडोस एस्कोल्हिडो।

नोट: सत्यापित क्यू ए पोर्टा क्यू एस्टा सेंडो सर्विडो ए एप्लिकाकाओ, ए पोर्टा एक्सपोस्टा नो डॉकर रन ई ए पोर्टा डू स्क्रिप्ट डे टेस्ट डेम सेर ए मेस्मा।

चरण 5: एक आवेदन मोबाइल

एक एप्लिकेशन मोबाइल
एक एप्लिकेशन मोबाइल
एक एप्लिकेशन मोबाइल
एक एप्लिकेशन मोबाइल

नाओ सेरा डेमोंस्ट्राडो कॉम म्यूटोस डिटेल्स कैडा पार्ट दो डिसेनवोल्विमेंटो डू क्लाइंट मोबाइल। नाओ सेरा एक्सप्लिसैडो एक्वी कैडा इम्पोर्टाकाओ नो मोडुलो प्रिंसिपल क्रिआडो पेलो रिएक्ट नेटिव नेम पॉसिविस डिटेल्हेस डी कॉन्फिगुराकाओ। पैरा कॉमेकार, नेवेग एट $PROJECT_DIR/client e adicione a आश्रित que precisaremos para o projeto:

$ npm और सॉकेट.io

एम सेगुइडा वेमोस एस्क्रेवर ओएस कंपोनेंट्स ग्रैफिकोस ई के रूप में फंक्शंस क्यू इराओ से कम्युनिकर कॉम ओ सर्विसिडोर।

एस्क्रेवेंडो ए तेला

Em App.js, vamos escrever ओएस कंपोनेंट्स डे GUI।

ध्यान दें कि एक मजेदार चमादा पेलो उपयोग प्रभाव अब और नहीं फोई एस्क्रिटा! ताम्बे नो फोरम एस्क्रिटोस ओएस रेड्यूसर सेटडेटा रेड्यूसर, सेटफूड रेड्यूसर, सेटटेम्परेचर रेड्यूसर, सेटलाइट रेड्यूसर और निम एस्क्रिटोस ओब्जेटोस कॉम एस्क्रिटोस इनआईसीआईआईएसआईएसआईएसआईएसआईएसआईआईएसआईटीआईएएल_एसटीएटी, INITIAL_FOOD_MODAL, INITIAL_MODAL, INITIAL_MODAL, INITIAL_MODAL, INITIAL_MODAL

टैम्बे ऐंडा नो फोरम एस्क्रिटास एज़ फनकॉस यूटिलाइज़्डस पेलोस एलिमेंटोस डी इंटीफेस ग्रैफ़िका पैरा फ़ैज़र चामदास पैरा एस्क्रिटा नो सर्विडोर: सेव न्यू फ़ूड वैल्यू, सेव न्यू टेम्परेचर, सेव न्यू ल्यूमिनोसिटी, टॉगल टेम्परेचर फ़ॉर रूम, टॉगललाइट फ़ॉर रूम

पोर्टेंटो, से पहले टेस्टर ओएस एलिमेंटोस कॉम डैडोस फाल्सोस, एस्क्रेवा कैडा ओब्जेटो ई फंको डिटो एसिमा।

वेजा इमेजम do App.js com código da parte GUI

पोर fim vamos escrever as funções necessárias para fazer a comunicação com o servidor e para utlização do mesmo pelos components de GUI.

वेजा इमेजम do App.js com कोडिगो डा पार्ट लॉजिक/ऑपरेशनल

सिफारिश की: