Índice:
- Etapa 1: Componentes
- Etapa 2: CONEXÕES
- Etapa 3: CODIFICAÇÃO
- Etapa 4: SAÍDA
- Etapa 5: Gráfico
- Etapa 6: Aqui está um vídeo de explicação do Breif
Vídeo: Detector de movimento usando Thingsai.io Iot Cloud Platform: 6 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:37
Neste tutorial, vou explicar sobre a detecção de movimento usando um sensor PIR e Esp32 junto com uma plataforma de nuvem IOT Thingai.io
Etapa 1: Componentes
COMPONENTES DE HARDWARE;
1.esp32 Conselho de Desenvolvimento
2. Sensor PIR
3. Fios de ligação
PROGRAMAS:
1. Arduino IDE
2. Conta Thingsai.io
Etapa 2: CONEXÕES
As conexões são bastante simples.
PINOS PIR ------------ PINOS ESP32
VCC ------------------- 3V3 em esp32
GND ------------------ GND em esp32
OUT ------------------- D22 em esp32
Etapa 3: CODIFICAÇÃO
Cole este código em seu IDE Arduino com alguma atualização, seu sensor de movimento dará a saída perfeita.
#incluir
#incluir
#incluir
contagem interna = 0, i, m, j, k;
int t, t1, t2, t3;
pino interno = 22;
//////////////////////////////////////////// TODAS AS DECLARAÇÕES para CLOUD ////// //////////////////////////
const char * host = "api.thingsai.io"; // OR host = devapi2.thethingscloud.com
const char * post_url = "/ devices / deviceData"; // OU / api / v2 / thingscloud2 / _table / data_ac
const char * time_server = "baas.thethingscloud.com"; // isso é para converter o carimbo de data / hora
const int httpPort = 80;
const int httpsPort = 443;
const char * server = "api.thingsai.io"; // URL do servidor
carimbo de data / hora char [10];
WiFiMulti WiFiMulti;
// Use a classe WiFiClient para criar conexões TCP
Cliente WiFiClient;
/////////////////////////////////////////// TIMESTAMP CALCULATION function //////// ///////////////////////////////////
int GiveMeTimestamp ()
{
tempo limite longo sem sinal = milis ();
// cliente WiFiClient;
enquanto (cliente.disponível () == 0)
{
if (milis () - tempo limite> 50000)
{
client.stop ();
return 0;
}
}
enquanto (cliente.disponível ())
{
String line = client.readStringUntil ('\ r'); // indexOf () é uma função para pesquisar smthng, ele retorna -1 se não for encontrado
int pos = line.indexOf ("\" timestamp / ""); // procure por "\" carimbo de data / hora / "" do início da resposta obtida e copie todos os dados depois disso, será seu carimbo de data / hora
if (pos> = 0)
{
int j = 0;
para (j = 0; j <10; j ++)
{
carimbo de data / hora [j] = linha [pos + 12 + j];
}
}
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////
void setup ()
{
Serial.begin (115200);
atraso (10);
pinMode (pin, INPUT);
// Começamos nos conectando a uma rede WiFi
WiFiMulti.addAP ("wifi_name", "Wifi_password");
Serial.println ();
Serial.println ();
Serial.print ("Aguarde WiFi…");
while (WiFiMulti.run ()! = WL_CONNECTED) {
Serial.print (".");
atraso (500);
}
Serial.println ("");
Serial.println ("WiFi conectado");
Serial.println ("endereço IP:");
Serial.println (WiFi.localIP ());
atraso (500);
}
void loop ()
{
int analogValue = analogRead (outputpin);
{
/////////////////////////////////////////// ENVIE A CONSULTA E RECEBA A RESPOSTA //// /////////////////////
{
bool isDetected = digitalRead (pin);
if (isDetected) {
Serial.println ("Presença detectada");
}
atraso (500);
}
Serial.print ("conectando a");
Serial.println (host); // upside definido: - host = devapi2.thethingscloud.com ou 139.59.26.117
///////////////////////////////////////// TIMESTAMP CODE SNIPPET ////////// /////////////////
Serial.println ("dentro de obter carimbo de data / hora / n");
if (! client.connect (time_server, {
Retorna; // * - * - * - * - * - * - * - * - * - *
}
client.println ("GET / api / timestamp HTTP / 1.1"); // O que esta parte está fazendo, eu não entendi
client.println ("Host: baas.thethingscloud.com");
client.println ("Cache-Control: no-cache");
client.println ("Postman-Token: ea3c18c6-09ba-d049-ccf3-369a22a284b8");
client.println ();
GiveMeTimestamp (); // chamará a função que obterá a resposta do carimbo de data / hora do servidor
Serial.println ("timestamp recebido");
Serial.println (carimbo de data / hora);
Serial.println ("dentro de ThingsCloudPost");
String PostValue = "{" device_id / ": 61121695839, \" slave_id / ": 2";
PostValue = PostValue + ", \" dts / ":" + carimbo de data / hora;
PostValue = PostValue + ", \" data / ": {" PIR / ":" + pin + "}" + "}";
Serial.println (PostValue);
/ * cria uma instância de WiFiClientSecure * /
Cliente WiFiClientSecure;
Serial.println ("Conectar ao servidor pela porta 443");
if (! client.connect (server, 443)) {
Serial.println ("Falha na conexão!");
} outro {
Serial.println ("Conectado ao servidor!");
/ * criar solicitação HTTP * /
client.println ("POST / devices / deviceData HTTP / 1.1");
client.println ("Host: api.thingsai.io");
//client.println("Connection: close ");
client.println ("Content-Type: application / json");
client.println ("cache-control: no-cache");
client.println ( Autorização: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaYW6OMj5cYlWNqC2Ptd);
client.print ("Content-Length:");
client.println (PostValue.length ());
client.println ();
client.println (PostValue);
//////////////////////////////////////// POSTAR os dados na nuvem está feito e agora obtenha o formulário de resposta na nuvem servidor//////////////////
Serial.print ("Aguardando resposta");
while (! client.available ()) {
atraso (50); //
Serial.print (".");
}
/ * se os dados estiverem disponíveis, receba e imprima no Terminal * /
while (client.available ()) {
char c = client.read ();
Serial.write (c);
}
/ * se o servidor for desconectado, pare o cliente * /
if (! client.connected ()) {
Serial.println ();
Serial.println ("Servidor desconectado"); javascript:;
client.stop ();
}
}
Serial.println ("////////////////////// O FIM ///////////////////////// ");
atraso (3000);
}
}
Etapa 4: SAÍDA
Esta é a representação do gráfico de barras dos valores lidos do sensor na plataforma de nuvem thingsai, io,
Etapa 5: Gráfico
Esta é a representação gráfica dos valores do sensor. A partir do gráfico acima, podemos analisar a aplicação do sensor. Obrigada
Recomendado:
Monitorando um Terrário Lagarto usando Adosia IoT WiFi Controller + Detecção de movimento: 17 etapas (com imagens)
Monitorando um terrário de lagarto usando Adosia IoT WiFi Controller + Detecção de movimento: neste tutorial, mostraremos como construir um terrário de lagarto simples para um punhado de ovos de lagarto que acidentalmente encontramos e perturbamos enquanto fazíamos jardinagem ao ar livre. Queremos que os ovos eclodam com segurança, então tudo o que faremos é criar um espaço seguro usando um plast
Detector de movimento usando NodeMCU: 5 etapas
Detector de movimento usando NodeMCU: Neste projeto, simplesmente usando um sensor de movimento você pode detectar a presença de qualquer ser humano ou animal. E pela plataforma chamada thingsio você pode monitorar a data e hora em que a presença foi detectada
LDR usando Thingsai Cloud: 13 etapas
LDR usando Thingsai Cloud: HEY ….. hoje vamos aprender sobre como medir a intensidade da luz e postar os valores na plataforma de nuvem IOT THINGSAI usando ESP32. Os requisitos para fazer este projeto são1. Placa de desenvolvimento ESP32 (usei ESP32 DEVKIT V1) 2. LD
Detector de fumaça IOT: Atualizar o detector de fumaça existente com IOT: 6 etapas (com imagens)
Detector de fumaça IOT: atualize o detector de fumaça existente com o IOT: Lista de colaboradores, Inventor: Tan Siew Chin, Tan Yit Peng, Tan Wee Heng Supervisor: Dra. Chia Kim Seng, Departamento de Engenharia Mecatrônica e Robótica, Faculdade de Engenharia Elétrica e Eletrônica, Universiti Tun Hussein Onn Malaysia.Distribut
Saída controlada por movimento - De uma luz com detecção de movimento: 6 etapas
Tomada controlada por movimento - a partir de uma luz com detecção de movimento: Imagine que você é um doce ou travessura indo para a casa mais assustadora do quarteirão. Depois de passar por todos os ghouls, fantasmas e cemitérios, você finalmente chega ao último caminho. Você pode ver o doce em uma tigela à sua frente! Mas de repente um gho