Pesquisar neste blog

29/05/2025

Sistema para coleta de águas pluviais



A coleta de água da chuva é uma técnica ancestral presente em todo o mundo. Permite conservar recursos hídricos e aproveitar a água de forma eficiente em residências e fazendas. É essencial em regiões com escassez ou secas frequentes.

26/04/2025

Bloco inteligente de Rede Lógica no AutoCad

Demonstração do arquivo























Clique aqui para fazer o download do arquivo

Palavras chave: 

Logical Network Smart Block in AutoCad
Bloque inteligente de red lógica en AutoCad
Logisch netwerk slimme blok in AutoCad
בלוק חכם ברשת לוגי באוטוקאד
Logiese netwerk slimblok in AutoCad
Inteligentny blok sieci logicznej w programie AutoCad
Логическая сеть Smart Block в AutoCad
Blok Pintar Jaringan Logis di AutoCad
Logisk nätverkssmart block i AutoCad

18/12/2024

Bloco de concreto inteligente 14x19x39 no AutoCad

 

Clique aqui para fazer o Download do arquivo


Palavras Chave :

Concrete block 14x19x39 in AutoCad

Bloque de concreto 14x19x39 en AutoCad

ბეტონის ბლოკი 14x19x39 AutoCad-ში

Betonski blok 14x19x39 u AutoCad-u

AutoCad හි කොන්ක්රීට් බ්ලොක් 14x19x39

Betonblok 14x19x39 in AutoCad

Betonblokk 14x19x39 az AutoCadben

14х19х39 автокадта бетон блок

גוש בטון 14x19x39 באוטוקאד

Blok betonowy 14x19x39 w AutoCad

24/11/2024

Distribuição de Frequências

ni = Quantidade de ocorrências
fi = Frequência Relativa
fi (%) = Frequência Percentual
fac = Frequência Acumulada
fac (%) = Frequência Percentual Acumulada


Fonte - Magalhães e Lima (2001) - Noções de Probabilidade e
Estatística Nota - Tabela parcial retirada da tabela original





























Resolução:

1. Ordenação da tabela em ordem crescente com base na classificação da coluna Peso































n = 50 observações

k = √n = √50 = 7,07 = 7 classes

h = ( maior valor - menor valor ) / 7 = ( 95 - 44 ) / 7 = 7,3

K = Número de classes :

K = √n = √50 = 7

h = Amplitude do intervalo

h = ( Maior valor - Menor valor ) / K

h = ( 95 - 44 ) / 7 = 7,28 

Li1 = Limite inferior da primeira classe, geralmente o menor valor da variável = 44,0

Ls1 = Limite superior da primeira classe  Ls1 = Li1 + h = 44,0 + 7,3 = 51,3

Li2 = Limite inferior da segunda classe = 51,3 

Ls2 = Limite superior da segunda classe  Ls2 = Li2 + h = 51,3 + 7,3 = 58,6


























fi1 = 10 / 50 = ,02
fi2 = 19 / 50 = 0,38
.
.
.

fac1 = ni1 = 10
fac2 = 10 + 19 = 29
fac3 = 29 + 7 = 36
.
.
.

fac1(%) = fi1(%) = 20
fac2(%) = 20 + 38 = 58
fac3(%) = 58 + 14 = 72
.
.
.






































21/09/2024

Gerar PDF do google docs e salvar na mesma pasta do drive

Código feito em JavaScript

function ExportGoogleDocAsPDF() {
  // Obtém o ID do documento atual
  var docId = DocumentApp.getActiveDocument().getId();
 
  // Obtém o arquivo do Google Drive usando o ID do documento
  var file = DriveApp.getFileById(docId);
 
  // Converte o documento em PDF
  var pdfBlob = file.getAs('application/pdf');
 
  // Obter a pasta do Google Drive onde o documento está localizado
  var folder = file.getParents().next(); // Obtém a pasta pai do arquivo
 
  // Salva o PDF na mesma pasta com o mesmo nome do documento, mas com extensão .pdf
  folder.createFile(pdfBlob).setName(file.getName() + ".pdf");
 
  Logger.log("PDF gerado e salvo na mesma pasta do Google Drive.");
}


14/09/2024

Caixas de diálogo no google sheets

Objetivo: Divulgar diferentes formas de gerar caixas de diálogo no google sheets

1. Caixa de diálogo para Alerta

Alerta


Código em JavaScript:

function Alerta() {
  var ui = SpreadsheetApp.getUi();  // Obtém a interface do usuário para o Google Sheets.
 
  // Mostra um alerta simples
  ui.alert('Aviso!', 'Esta é uma caixa de alerta simples.', ui.ButtonSet.OK);
}


2, Caixa de diálogo para Confirmação

Confirmação


function Confirmation() {
  var ui = SpreadsheetApp.getUi();
 
  // Mostra uma caixa de confirmação
  var response = ui.alert('Confirmação', 'Você deseja continuar?',
    ui.ButtonSet.YES_NO);
 
  // Verifica a resposta
  if (response == ui.Button.YES) {
    ui.alert('Você escolheu "Sim".');
  } else {
    ui.alert('Você escolheu "Não".');
  }
}


3. Caixa de prompt para senha

Entrada


Saída gerada


function showPrompt() {
  var ui = SpreadsheetApp.getUi();
 
  // Mostra um prompt para o usuário inserir algo
  var response = ui.prompt('Entrada do usuário', 'Digite seu nome:',
    ui.ButtonSet.OK_CANCEL);
 
  // Verifica se o usuário clicou em "OK"
  if (response.getSelectedButton() == ui.Button.OK) {
    var nome = response.getResponseText();
    ui.alert('Olá, ' + nome + '!');
  } else {
    ui.alert('Ação cancelada.');
  }
}


Vá em Extensões > Apps Script e crie um novo arquivo HTML chamado dialog.html

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
  </head>
  <body>
    <h3>Caixa de Diálogo Personalizada</h3>
    <p>Esta é uma caixa de diálogo personalizada criada com HTML.</p>
    <button onclick="google.script.host.close()">Fechar</button>
  </body>
</html>


Com html


function CustomDialog() {
  var html = HtmlService.createHtmlOutputFromFile('dialog')
      .setWidth(300)
      .setHeight(200);
 
  SpreadsheetApp.getUi().showModalDialog(html, 'Minha Caixa de Diálogo');
}


5. Caixa de diálogo Não Modal ( Flutuante )


Flutuante


function NonModalDialog() {
  var html = HtmlService.createHtmlOutputFromFile('dialog')
      .setWidth(500)
      .setHeight(100);
 
  SpreadsheetApp.getUi().showSidebar(html);//Abre a caixa de diálogo como uma barra lateral
}

Palavras chave:

Dialog boxes in google sheets
Dialoglodziņi google lopuos .
Диалогон æвæрæнтæ google sheets-ы
Blychau deialog mewn dalennau google
תיבות דו-שיח ב-google sheets
Dialogová okna v google listech
Диалоговые окна в таблицах Google
Dialogfelder in Google Sheets
Ekkewe pworun poraus non ekkewe taropwen google
Casete de dialog în foi de calcul Google

02/08/2024

Senha no google sheets

Objetivo : Desenvolver um código para o google sheetss que solicite a senha, caso a senha seja verdadeira então imprima "Senha correta !" caso contrário imprima "Senha incorreta".

Figura 1: Autenticação


Figura 2: Senha correta

Código


function SolicitarSenha() {
  var senhaCorreta = "123"; // Defina a senha correta aqui
  var ui = SpreadsheetApp.getUi();
 
  var resposta = ui.prompt('Autenticação', 'Por favor, digite a senha:',
     ui.ButtonSet.OK_CANCEL);
 
  // Verifica se o usuário clicou em OK
  if (resposta.getSelectedButton() == ui.Button.OK) {
    var senhaDigitada = resposta.getResponseText();
   
    if (senhaDigitada === senhaCorreta) {
      ui.alert('Senha correta !');
    } else {
      ui.alert('Não autorizado !');
    }
  } else {
    ui.alert('Operação cancelada.');
  }
}


06/07/2024

Atalhos de comandos em HTML5

1. div(header>ul>li*3)+section+footer>p

<div></div>
<header>
    <ul>
        <li></li>
        <li></li>
        <li></li>
    </ul>
</header>
<section></section>
<footer>
    <p></p>
</footer>


2. div(header>ul>p*2>li*5)+section+footer*2>p+(div*2)

<div></div>
<header>
    <ul>
        <p>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
        </p>
        <p>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
        </p>
    </ul>
</header>
<section></section>
<footer>
    <p></p>
    <div></div>
    <div></div>
</footer>
<footer>
    <p></p>
    <div></div>
    <div></div>
</footer>


4   .div$*4

<div class="div1"></div>
<div class="div2"></div>
<div class="div3"></div>
<div class="div4"></div>


5.    .div*4

<div class="div"></div>
<div class="div"></div>
<div class="div"></div>
<div class="div"></div>


6.    .div*5>p

<div class="div">
    <p></p>
</div>
<div class="div">
    <p></p>
</div>
<div class="div">
    <p></p>
</div>
<div class="div">
    <p></p>
</div>
<div class="div">
    <p></p>
</div>


7.   .div$*4>(p$)

<div class="div1">
    <p1></p1>
</div>
<div class="div2">
    <p2></p2>
</div>
<div class="div3">
    <p3></p3>
</div>
<div class="div4">
    <p4></p4>
</div>


05/06/2024

Bateria Carregando em HTML


Código em HTML

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Bateria</title>
    <link href="" rel="" integrity="" crossorigin="">
</head>
<style>
  .battery-top {
    width: 30px;
    height: 10px;
    background: black;
    margin: 0 auto;
    border: 3px solid silver;
    border-top-right-radius: 8px;
    border-top-left-radius: 8px;
  }
  .battery-content {
    width: 150px;
    height: 250px;
    background: black;
    position: relative;
    margin: 0 auto;
    border: 3px solid silver;
    border-radius: 18px;
  }
  .charge {
    width: 100%;
    position: absolute;
    bottom: 0;
    border-radius: 14px;
    animation: battery 8s linear infinite;
  }
  @keyframes battery {
    0% {
      height: 0%;
      background: red;
    }
    25% {
      height: 25%;
      background: orange;
    }
    50% {
      height: 50%;
      background: rgb(7, 195, 241);
    }
    75% {
      height: 75%;
      background: blue;
    }
    100%{
      height: 100%;
      background: rgb(0, 255, 0);
    }
  }
</style>
<body>
  <div class="main">
    <div class="battery-top"></div>
    <div class="battery-content">
    <div class="charge"></div>
  </div>
</body>
</html>


02/06/2024

Animação com Hélice rotacional em HTML















Código feito em HTML:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<style>
  body{
    height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
}

img{
    border: 20px solid aqua;
    padding: 50px;
    border-radius: 50%;
    animation: fananim linear infinite;
}

button{
    cursor: pointer;
    width: 100px;
    height: 100px;
    padding: 20px 30px;
    margin: 0 20px;
    font-size: 25px;
    font-weight: 550;
    border: none;
    background-color: silver;
    border-radius: 50%;
    transition: 0.1s;
}

button:active{
    box-shadow: 0px 10px 10px black;
    transform: scale(0.95);
}

.main button:nth-last-child(5){
    background-color: rgb(0, 255, 0);
}

.main button:nth-last-child(4){
    background-color: red;
}
@keyframes fananim {
    100%
    {
        transform: rotate(360deg);
    }
}
</style>
<body>
  <div>
    <img id="img" src="Fan.png" alt="" srcset="">
    <button onclick="myfunon()">ON</button>
    <button onclick="myfunoff()">OFF</button>
    <button onclick="myfun1()">1</button>
    <button onclick="myfun2()">2</button>
    <button onclick="myfun3()">3</button>
  </div>  
 
</body>
  <script>
    let a=document.getElementById("img");
    function myfunon()
    {a.style.animationDuration = 3+"s";}
    function myfunoff()
    {a.style.animationDuration=0+"s";}
    function myfun1()
    {a.style.animationDuration=1+"s";}
    function myfun2()
    {a.style.animationDuration=0.5+"s";}
    function myfun3()
    {a.style.animationDuration=0.1+"s";}
  </script>
</html>


Palavras chave:

Animation with Rotational Helix in HTML
Animación con Hélice Rotacional en HTML
Animasi karo Rotational Helix ing HTML
Animasjon med Rotational Helix i HTML
HTMLдеги Rotational Helix менен анимация
Анимация с использованием вращающейся спирали в HTML
אנימציה עם Rotational Helix ב-HTML
Animation leh Helix Rotational oo HTML ah
HTML의 회전 나선을 사용한 애니메이션

16/12/2023

Sensor DTH22 com ESP32




CÓDIGO

#include <WiFi.h>
#include <Wire.h>
#include "DHTesp.h"
#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h>

#define DHT_PIN 4  // Pin onde o sensor DHT22 está conectado

float temperatura, umidade;

DHTesp dht;
Adafruit_BME280 bme;

const char* ssid = "USUARIO";
const char* password = "SENHA";

void setup() {
  Serial.begin(115200);
  delay(1000);
  
  // Inicializa o sensor DHT22
  dht.setup(DHT_PIN, DHTesp::DHT22);

   //Inicializa o sensor BME280
  
  //Código acima esta como comentario para fins de simulação

   //Conecta-se à rede Wi-Fi
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.println("Conectando à rede WiFi...");
  }
  Serial.println("Conectado à rede WiFi");
}

void loop() {
  // Leitura do sensor DHT22
  temperatura = dht.getTemperature();
  umidade = dht.getHumidity();
  
  Serial.print("Temperatura: ");
  Serial.print(temperatura);
  Serial.println(" °C");
  Serial.print("Umidade: ");
  Serial.print(umidade);
  Serial.println(" %");

  delay(5000);
}

02/12/2023

Inserindo dados na tablela com PHP + ESP32 #10

Saída gerada no phpMyAdmin4















<?php
    $hostname = "localhost";
    $username = "root";
    $password = "";
    $database = "sensor_db";

    $conn = mysqli_connect($hostname, $username, $password, $database);

    if (!$conn) {
        die("Connection failed: ".mysqli_connect_error());
    }

    echo "Database connection is OK";
    echo ('<br>');

    $sql = "INSERT INTO dht11 (temperature, humidity) VALUES (24, 45)";

    if (mysqli_query($conn, $sql)) {
        # code...
        echo "\n";
        echo "\nNovo registro criado com sucesso !";
    }else {
        echo "\nErro: ". $sql . "<br>" .mysqli_error($conn);
    }
?>



Código em linguagem C para o ESP32:

//https://www.youtube.com/watch?v=VEN5kgjEuh8&ab_channel=AhmadLogs

#include <WiFi.h>
#include <HTTPClient.h>

String URL = "http://192.168.1.12/5 Esp32-Temperatura/test_data.php";

const char* ssid = "XXXX";
const char* password = "XXX";

int temperature = 50;
int humidity = 70;

void setup(){
  Serial.begin(115200);
  connectWiFi();
  
}

void connectWiFi(){
  WiFi.mode(WIFI_OFF);
  delay(1000);

  WiFi.mode(WIFI_STA);

  WiFi.begin(ssid, password);
  Serial.println("Conectando no WiFi");

  while(WiFi.status() != WL_CONNECTED){
    delay(500);
    Serial.print(".");
  }

  Serial.print("Conectado em: "); Serial.println(ssid);
  Serial.print("IP address: "); Serial.println(WiFi.localIP());
  delay(1000);
  
}

void loop(){
  if(WiFi.status() != WL_CONNECTED){
    connectWiFi();
 }

  String postData = "Temperatura = "+String(temperature)+"&humidity="+ String(humidity);

  HTTPClient http;
  http.begin(URL);

  int httpCode = http.POST(postData);
  String payload = http.getString();
  http.addHeader("Content-Type", "application/x-www-form-urlencoded");
  
  Serial.print("URL: ");Serial.print(URL);
  Serial.print("Data: ");Serial.print(postData);
  Serial.print("httpCode: ");Serial.print(httpCode);
  Serial.print("payload: ");Serial.print(payload);
  Serial.println("-------------------");
  delay(4000);
}

26/11/2023

Fonte linear retificadora

Objetivo: Desenvolver 1 fonte retificadora de 5 V .




Dados: 

Trafo = 24 V
Itrafo = 1 A
30% de Vcp


VCP:

Vp = Vs x 2 = 24 x √2
Vp = 33,94 V

Vcp = Vp - 2 x 0,7 = 33,94 - 2 x 0,2
Vcp = 32,54 V


CAPACITÂNCIA:

C = I / ( 2 x f x Vpp )
C = 1 / ( 2 x 60 (32,54 x 30% )
C = 853 uF = 900 uF

TENSÃO DE ISOLAÇÃO DO CAPACITOR:

Vcap = ( 32,54 x 50% ) + 32,43
Vcap = 48,81 V = 50 V


FUSÍVEL:

Psec = Vsec x Ic = 24 x 1
Psec = 24 W

Ipri = Vpri / Vpri = 24 / 127
Ipri = 378 mA


Saída gerada