תוכן עניינים:
- שלב 1: Configurando O Ambiente
- שלב 2: WebSocket
- שלב 3: Escrevendo O Servidor
- שלב 4: Testando O Servidor
- שלב 5: נייד Aplicação
וִידֵאוֹ: Pequeno Projeto De Uma Casa Inteligente: 5 שלבים
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:12
O projeto que faremos é de uma casa inteligente. Possui basicamente dois grupos de funcionalidades: · De monitoramento de iluminação e temperatura dos cômodos.
· מעקב אחר הרשימה של התזונה והחדשות של מסננים.
Não escreveremos os firmwares dos dispositivos IoT da geladeira nem dos cômodos; porém assumiremos que os dispositivos fazem o seguinte:
- מסך מגע עם אחיזה במסך המגע, כי אפשר להזין את כל המאכלים: o nome de um alimento e sua quantidade;
- A geladeira possui um sensor de nível em um pequeno tanque de água embutido na geladeira;
- Os cômodos têm termômetros e sensores de iluminância;
- Os cômodos têm ar condicionado que se comunicam pela rede wifi;
- As lâmpadas dos cômodos podem ter o brilho ajustado por dispositivo que se comunica pela rede wifi;
דרישות:
- Conhecimento básico em python, javascript, uso do sistema operacional, comandos básicos no shell
- התקנה: nodejs, python
- התקנה (אופציונאלי): עגינה, אמולדור לדיסאוזי נייד, אחסון sdk לאנדרואיד (ללא אנדרואיד סטודיו)
O desenvolvimento desse projeto foi feito no Linux. אתה יכול להשתמש במאפיינים המתאימים ביותר עבור Windows.
שלב 1: Configurando O Ambiente
ניתן להגדיר את התצורה של 2 חלקים: servidor e mobile. O servidor será escrito em python e o mobile em javascript ou typescript, sendo utilizado React Native for a projeto.
reactnative.dev/
Vamos inicialmente criar uma estrutura de pastas. Em um diretório escolhido (que a partir de agora será escrito semper como $ PROJECT_DIR como placeholder - crie com no local que achar mais adequado e com o nome de sua preferência), vamos criar uma pasta "servidor":
$ mkdir $ PROJECT_DIR && cd $ PROJECT_DIR
$ mkdir servidor
CONFIGURANDO O AMBIENTE DE DESENVOLVIMENTO PARA O SERVER
Podemos utilizar um ambiente conteinerizado com Docker ou ambiente python וירטואלי (venv). Caso deseje utilizar ambiente conteinerizado, criaremos and imagem segundo o dockerfile:
$ cd $ PROJECT_DIR
קובץ docker של $ touch
אפשר להדפיס קובץ docerfile.
Caso prefira utilizar ambiente וירטואלי לעשות פייתון, ניתן להשתמש בו לפי הוראות
אנו יכולים לקרוא את כל התנאים והרשימות התלויים במגוון השירותים:
דרישות $ touch.txt
Veja imagem do requirements.txt.
Caso tenha optado por utilizar um ambiente conteinerizado, construa a imagem e entre no container:
בניית דוקר. -t smarthouse $ docker run -it -p 3000: 3000 -v $ (pwd):/app smarthouse bash
למידע נוסף על קובץ docker ו cli do docker:
CONFIGURANDO O AMBIENTE DE DESENVOLVIMENTO נייד
Um passo a passo de como configurar o ambiente de desenvolvimento mobile com React Native pode ser visto no link:
תפריט אווירת תצורה, ופסטה לפרוייקט יכול להכין מנהלים או קומנדו עבור ניידים ואפליקציות:
לקוח $ npx create-react-native-app
שלב 2: WebSocket
E interessant que o leitor conheça meno um pouco a respeito de websocket antes de prosseguir. Caso o leitor nunca tenha lido, trabalhado ou ouvido falar nada a respeito, separe alguns minutos fora entender como funciona o websocket através da documentação:
developer.mozilla.org/pt-BR/docs/WebSocket…
Usaremos uma biblioteca no cliente e no servidor que abstrai o protocolo de maneira que não precisemos pensar em detalhes de chamada e de armazenamento de identificadores e rotas. אנו יכולים לקרוא את הקצב של התורה כמקרא התנ ך ללא לקוחות ואין שירותים:
לקוחות:
Servidor:
שלב 3: Escrevendo O Servidor
Vamos criar uma estrutura inicial do projeto e escrever a interface que será utilizada como comunicação com or servidor:
$ mkdir src
$ touch app.py src/{בקר, socketconnection}.py
Primeiramente vamos escrever um módulo de inicalização do servidor:
תמונות של אפליקציות
Depois vamos escerver or módulo que estabelece as conexões via websocket e as redirecionam for a controlador.
ניתן להיראות באמצעות socketconnection.py
בקרות E שימושיות
O שליטור יכול לקבל מענה אחראי על התייחסות וכמשנה; será responsabilidade do controlador saber qual função de caso de uso chamar para cada envento recebido, bem como a partir da resposta do caso de uso enviar um pacote de resposta para a sala room de dispositivos conectados para atualização das informações.
אפשר להדפיס את controller.py.
סיום הזמן שלנו יכול להוביל אותנו לאירועי התאמה לאירועי אירועים ולסיפורים. אין caso desse sistema há somente atualização de valores (sejam numéricos, texto ou booleanos - no caso de ligar/desligar dispositivos de ambientação). Então não é de surpreender que os casos de uso tão somente chame funções do módulo responsável pela persistência de dados como se fosse essa a "regra de negócio".
Veja imagem do usecases.py
הערה: מדויק של התנהגותנו. אנו יכולים להשתמש בו כדי להבחין בארמזים או באתרים, להפעיל אותם כמו src/repository.py. אין שום תוכנה להדגמה למשל להתמקד ב- um arquivo json ללא מסד נתונים ישיר. אין מאגר של שרת פסטה/מסד נתונים של שרותי פסטה/מסד נתונים של מערכת ההפעלה או שרת הנתונים/מסד הנתונים.
שלב 4: Testando O Servidor
Podemos criar um script for a conectar ao servidor e enviar events conforme a estrutura esperada pelos controladores para fins de testes manuais. Vamos criar esse script e rodá-lo com o servidor*.
אפשר לראות תמונות של serverclient.py
Com o arquivo criado, verifique se o container está rodando, e dentro dele לבצע:
$ python app.py
עבור מיכל, אין אפשרות לנהל $ PROJECT_DIR/שרת:
$ python3 serverclient.py
No prompt ">" digite os eventsos encontrados no controlador seguido de ";" הערכות הזיהוי של e/ou valos 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
E para cada evento enviado verifique se foi persistido no banco de dados escolhido.
הערה: אמין כי ניתן לנתח את כל השירותים, אך לא להציג את התצוגה ולספק את התסריט.
שלב 5: נייד Aplicação
Não será demonstrado com muitos detalhes cada parte do desenvolvimento do cliente mobile. Não será explicitado aqui cada importação no módulo principal criado pelo React Native nem possíveis detalhes de configuração. לשם כך, נתיב של $ PROJECT_DIR/client and adicione a exactêemos para o projeto:
$ npm i socket.io
אנו יכולים להבחין ברכיבים של חלקים חשובים וכאשר הם יכולים לתפקד יחד עם שירותים.
ESCREVENDO A TELA
Em App.js, vamos escrever os componentes de GUI.
שימו לב que a função chamada pelo useEffect ainda não foi escrita! Também não foram escritos os reducers setDataReducer, setFoodReducer, setTemperatureReducer, setLightReducer e nem escritos os objetos com estados iniciais INITIAL_STATE, INITIAL_FOOD_MODAL, INITIAL_TEMPERATURE_MODAL_, Também ainda não foram escritas as funçõeses utilizadas pelos elementos de inteface gráfica para fazer chamadas for escrita no servidor: saveNewFoodValue, saveNewTemperature, saveNewLumininosity, toggleTemperatureForRoom, toggleLightForRoom
פורטנטו, אנו יכולים לראות את היסודות שלנו בדוגמא, ולמרות זאת.
אנו יכולים להעלות תמונות של App.js עם GUI
Por fim vamos escrever as funções needsárias para fazer a comunicação com o servidor e para utlização do mesmo pelos componentes de GUI.
אנו יכולים לדמיין את האפליקציות של App.js
מוּמלָץ:
Projeto IoT - גלאי סיסטמה דה פומסה: 5 שלבים
Projeto IoT - Sistema Detector De Fumaça: IntroduçãoO Sistema Detector de Fumaça consiste em uma solução IoT com o objetivo de permitir o monitoramento de alarmes de incêndio de residências através de um aplicativo Android. או שאפשר לבקר אותם במיקרו -בקרה, כיוון שבאמצעותה יש קומוניקה
Projeto CoCoa: Um Colete De Comunicação Alternativa: 8 שלבים
Projeto CoCoa: Um Colete De Comunicação Alternativa: פרויקט CoCoA הוא אפוד לביש המחובר לאינטרנט המאפשר צימוד של סמלים מישושיים של תקשורת אלטרנטיבית כדי לסייע לאנשים עם דיבור או לקויות לא מילוליות
Projeto Lumos: 8 שלבים
Projecto Lumos: אם אתה רוצה לבנות את כל האפשרויות של שליטה באור החכם או עם WiFi. עבור שליטה על תוכנת האנדרואיד האפשרית עבור תוכנת אנדרואיד, אפשר לאפשר תוכנה או תוכנה כלשהם
Projeto Fila Fácil: 7 שלבים
Projeto Fila Fácil: Em nosso dia a dia vamos diversas vezes em locais onde é הכרחי á ריה אומה גסט &אטילדה; Em alguns estabelecimentos podemos demorar alguns minutos ou at é mesmo horas במיוחד
Casa Inteligente Com Arduino: 6 שלבים
Casa Inteligente Com Arduino: Esse projeto é uma junção de vários pequenos projetos que podem ser feitos com Arduino. É um ótimo projeto para quem está começando no mundo do Arduino.Você vai aprender a fazer um system with medção de temperatura e umidade, alarme, acendimento de