Índice:
- Suprimentos
- Etapa 1: Defina seu cenário
- Etapa 2: (introdução) definir acionador - vários usuários
- Etapa 3: (introdução) definir acionador - usuários limitados
- Etapa 4: (configuração) - IFTTT
- Etapa 5: (configuração) Dispositivo IOT * opcional *
- Etapa 6: (Configuração) IFTTT Webhook Api * Usuários experientes *
- Etapa 7: (configuração) IFTTT Webhook Api * para iniciantes com fotos *
- Etapa 8: (Código) Programação do ESP32
- Etapa 9: (código) carregue o código para o ESP32
- Etapa 10: (código) carregue o código para o ESP32 * opcional *
- Etapa 11: coloque o ESP e calibre
- Etapa 12: Parabéns! Você terminou
Vídeo: Sensor de presença: 12 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:36
Os wearables são geralmente dispositivos habilitados para BLE. É comum que eles anunciem periodicamente alguns dados ao longo de seu endereço MAC. Usamos um ESP para escanear esses dados e acionar um evento pela internet quando encontra um endereço MAC específico. Esta implementação específica é para um único usuário em um plugue inteligente conectado a uma lâmpada. Mas também pode ser usado com um conjunto de dispositivos registrados com qualquer tipo de dispositivo habilitado para IOT.
Suprimentos
- ESP32
- (opcional) Plugue de parede WiFi TECKIN S10
- Dispositivo habilitado para BLE de qualquer tipo
Etapa 1: Defina seu cenário
Para o gatilho, você poderia usar a maioria dos wearables modernos. Pode ser um Apple Watch, uma pulseira mi fit, um telefone ou até mesmo o seu próprio wearable DIY baseado em um ESP32.
Provavelmente uma das etapas mais importantes. Você tem que pensar no futuro em 3 coisas:
1. Qual wearable ou dispositivo será o gatilho do sensor de proximidade.
2. O que vai acionar o sensor (isso é feito através do IFTTT).
3. Quando o sensor vai disparar
Para este exemplo, usarei meu Apple Watch para acionar um plugue inteligente para acender uma lâmpada quando me sentar em minha mesa.
Neste tutorial, veremos um plugue inteligente da TECKIN. Você pode encontrá-lo na Amazon por um bom preço. Também é compatível com Alexa e Google Home. Grande valor!
Etapa 2: (introdução) definir acionador - vários usuários
Se você deseja configurar para que funcione qualquer pessoa com um dispositivo habilitado para BLE próximo o suficiente do seu sensor, pule a próxima etapa. Isso é muito útil, é a configuração que eu uso pessoalmente. Lembre-se de que esse sensor pode ser facilmente hackeado ou explorado para disparar, então eu não confiaria muito em um posto de segurança; apenas para um prático (ou seja, não quero que seja acionado pelo meu PC, pois estará sempre ao lado do sensor).
Etapa 3: (introdução) definir acionador - usuários limitados
Esta etapa varia muito em sua configuração. Para limitar quais dispositivos podem acionar o sensor, você tem muitas rotas para limitar:
- Endereço MAC BLE (equivalente ao endereço IP em uma rede wi-fi. O motivo não garante segurança, já que não é o endereço MAC real do módulo. Em dispositivos iOS ele muda toda vez que você reinicia o bluetooth, não é tão divertido)
- Código do fabricante (melhor opção, mas nenhuma maneira de limitar dispositivos específicos do mesmo fabricante / modelo)
- Nome, UIDD de serviço (raro, mas a melhor opção, principalmente wearables DIY ou talvez um aplicativo Android)
Algumas notas:
1. Se for um dispositivo iOS:
- Você tem alguns prós e contras importantes. Pro, eles transmitem o nível de potência em que são dados de publicidade. Isso é útil no estágio de calibração, você descobrirá que usar um Apple Watch é útil, pois ele transmite a 24 db, os iPhones e a maioria dos dispositivos transmite a 12 db.
CON, você terá que encontrar soluções alternativas. O endereço MAC anunciado (o principal método de identificação) muda cada vez que o sinal bluetooth é reiniciado, o que significa que você terá que fazer upload do código a cada vez … não é divertido. Você pode usar os dados do fabricante, que podem variar entre os modelos. Isso significa que você pode limitar para que ele sinta "todo o iPhone 8".
2. Se for um dispositivo Android:
- Eu pessoalmente não tenho um dispositivo Android. Mas provavelmente existem muitos aplicativos que podem corrigir o endereço MAC ou até mesmo adicionar um nome personalizado (se for esse o caminho que você deseja). Em dispositivos iOS, existe um aplicativo "nrf connect" que pode fazer isso. Mas não é persistente, ou seja, se você bloquear a tela ou trocar de aplicativo … a configuração é desativada em alguns segundos.
3. Outro ESP32. (sua melhor aposta)
- Um código simples como este pode ser implementado em um dispositivo como este; uma banda inteligente com alimentação esp32. O código é na verdade um exemplo da biblioteca ESP BLE BLE_IBeacon.ino. Eu não testei muito desde que minha banda inteligente está sendo enviada, provavelmente postarei atualizações em breve.
Etapa 4: (configuração) - IFTTT
Ok, então, neste estágio, você provavelmente deve tomar todas as decisões do seu fluxo de trabalho. Você tem seu dispositivo de acionamento, tem um lugar para colocar o ESP com uma conexão sem fio à internet e tem uma ação em mente que o IFTTT pode automatizar.
O IFTTT é poderoso; seja apenas para enviar uma notificação simples para o seu dispositivo, você deseja que um tweet seja enviado ou acenda uma lâmpada com um plugue inteligente. Neste tutorial, implementaremos o último com plugues inteligentes TECKIN compatíveis com IFTTT. De qualquer forma, baixe o aplicativo IFTTT ou vá para a web IFTTT.com e crie uma conta.
Por enquanto é isso!
Se você deseja apenas enviar uma notificação ou algo diferente do plugue do Smart Life, pule a próxima etapa.
Etapa 5: (configuração) Dispositivo IOT * opcional *
Baixe o aplicativo "Smart Life" da PlayStore (Android) ou AppStore (iOS). As instruções são bastante diretas, embora o processo seja um pouco complicado. Descobri na fase de digitalização (quando o botão azul estava piscando) que ele parou em algum ponto, então eu o pressionei manualmente para ligar e desligar algumas vezes. Isso me ajudou. De qualquer forma; a configuração deste plugue não é diferente com nosso aplicativo, então se você já possui um e o conectou ao seu aplicativo, você deve estar pronto para usar.
TOME NOTA: Você precisa ser capaz de ligar e desligar o aplicativo antes de prosseguir com esta etapa. Isso significa que você configurou corretamente o plugue inteligente.
O aplicativo IFTTT deve ser sincronizado com o aplicativo "Smart Life" perfeitamente, provavelmente solicitando uma autenticação ao criar um evento na próxima etapa.
Etapa 6: (Configuração) IFTTT Webhook Api * Usuários experientes *
Se você não usou o aplicativo IFTTT antes e não está familiarizado com alguns termos técnicos, pule esta etapa para o Guia detalhado (com fotos) na próxima etapa.
1. Crie um novo evento.
2. Defina "this" como uma API de webhook. Anote o nome que você definiu para o evento.
3. Defina "isso" com o comportamento desejado. Para o smart plug pesquise a vida inteligente e selecione 'ligar'.
4. Selecione seu plugue inteligente e pressione Concluir.
5. Na tela inicial, procure o cartão 'webhooks'. Depois de pressioná-lo, pressione "obter mais" na parte inferior.
6. Documentação da imprensa. Isso mostrará sua chave de API junto com um construtor e testador de URL.
7. Use o construtor de URL com o nome que você escreveu em # 2. Copie e anote.
8. Repita se quiser que um comportamento seja acionado quando o sensor de presença não estiver mais ativo. No nosso caso, repita o nº 3, mas selecione 'desligar'. Além disso, em # 2, o nome também deve ser diferente desta vez.
Se você terminar, pule a próxima etapa.
Etapa 7: (configuração) IFTTT Webhook Api * para iniciantes com fotos *
Guia detalhado * o guia de fotos deve ser semelhante ao Android e na web *
O IFTTT é um fluxo de trabalho simples, se "isso acontece", então "isso acontece". Você deve criar um novo, 1. no aplicativo, pressione "obter mais" e uma lista será exibida.
2. Logo abaixo da barra de pesquisa, um diz "faça seus próprios miniaplicativos do zero", pressione o sinal de mais.
3. Pressione "este" sinal de mais
No nosso caso, "isso" vai ser uma chamada de API pela Internet. Uma chamada de API é uma consulta a um URL, como quando você digita uma pesquisa no google e o url é google.com/(uma longa sequência de caracteres). Para criar a API: (depois de pressionar "this")
4. Pesquise "webhooks"
5. Selecione a única opção
6. Dê um nome ao seu evento (neste exemplo, usaremos "Sentar"). Escreva esse nome, muito importante.
7. Pressione Criar Gatilho
OK! estamos mais perto, Agora, da parte "daquela". Para este tutorial, definiremos "that" para ligar o plugue inteligente. Mas você pode escolher qualquer coisa do IFTTT. Uma boa maneira de testar a configuração é selecionar "notificações", que enviarão uma notificação para o seu telefone cada vez que o sensor for acionado (ou a API for chamada, mesmo de um navegador da web: útil para teste!)
8. Pressione "aquele" sinal de mais
9. Pesquise "Smart Life" (ou "notificações")
10. Pressione 'ligar' (você precisará repetir essas etapas para criar outro evento para desligar quando você sair)
11. Se você tiver os dois aplicativos e o plugue configurados corretamente, deverá ver o seu plugue no menu suspenso 'qual dispositivo / grupo.
12. Selecione Criar ação e, em seguida, conclua.
Agora você deve ver que o evento está conectado. Agora precisamos obter o URL da API. Por esta:
13. Vá para a tela inicial do IFTTT
14. Encontre o cartão Webhooks
15. Selecione "Obter mais"
16. Toque no botão Documentação. Você deverá ver uma página da web com sua chave.
17. Nos marcadores de posição "{evento}", preencha o nome do seu evento (lembre-se do Ponto 6)
18. Vá para a parte inferior da página e toque em "Testar"
O que você provavelmente deve ver é um banner verde "o evento foi acionado" e você deve ver se funcionou ou não. Em nosso caso, o plugue deve ligar. Ou você deve ver uma notificação se decidir seguir esse caminho. Pode demorar um pouco, mas não mais do que um minuto para ver se você conseguiu. Lembre-se de que provavelmente faz distinção entre maiúsculas e minúsculas.
19. Finalmente. Copie o url onde você substituiu o nome do seu evento (em 17) e salve-o em um lugar seguro. Você vai precisar disso em breve.
20. Repita 1-12. Às 6, usaremos "Stand" desta vez. Em vez de 10, selecione 'desligar'.
21. Repita 13-18 se quiser, mas você pode se safar com o url que copiou em 19, mas agora mude o lugar onde escreveu "Sente-se" e substitua por "Ficar de pé". Você pode testar isso em um navegador da web. Deve dizer 'Parabéns! Você disparou o evento Stand '. Em seguida, o plugue deve ter sido desligado.
Etapa 8: (Código) Programação do ESP32
Você pode pular esta etapa se se sentir confortável para fazer upload de esboços do IDE do Arduino para a placa ESP32. Lembre-se apenas de definir uma partição de 2 MB para o aplicativo, pelo menos, uma vez que o esboço pesa um pouco mais do que o limite normal de 1,2 MB.
Existem muitos tutoriais excelentes por aí, aqui estão alguns dos quais recomendo:
circuitdigest.com/microcontroller-projects…
Mas, ainda assim, para que você não esteja tão perdido, vou detalhar alguns pontos-chave importantes.
- ESP32 não é uma placa Arduino, mas ainda pode ser programada pelo IDE do Arduino. Com código Arduino simples. Porém, você ainda precisará configurar o IDE para funcionar com o ESP32.
- Você precisará instalar algumas bibliotecas através do 'Gerenciador de placas adicionais' em preferências. Este é o URL que você deve colar:
- (opcional, pode ajudar) Em Ferramentas-> Gerenciar Bibliotecas… -> (encontre a biblioteca esp BLE)
- em Ferramentas, agora você deve ter uma longa lista de dispositivos ESP, eu recomendo o módulo dev ESP32
- (IMPORTANTE) Selecione (sem app Ota 2mb / spifs 2mb) no gerenciador de partição. Esta etapa é importante, pois o aplicativo se torna bastante pesado como um produto do uso de conexões wi-fi / http e também de um scanner BLE.
Se você fez tudo certo, poderá programar o ESP32. Agora, o processo de fazer isso é semelhante ao do arduino em algumas placas. Conecte-o, selecione a placa correspondente, a porta USB e pronto. Mas, em muitos outros casos, você terá que prosseguir com
Etapa 9: (código) carregue o código para o ESP32
Ok, se você está aqui, isso significa que carregou com sucesso um esboço para a placa ESP32, de preferência o esboço blink.ino.
Agora, aqui está o código principal anexado, você também pode encontrá-lo no repositório GitHub. Você deve substituir o seguinte:
SSID - Seu nome wi-fi
PSK - Sua senha wi-fi
sit - O URL com "Sit" da API IFTTT que você escreveu anteriormente
stand - O URL com "Stand" da API IFTTT que você escreveu anteriormente
Agora aproxime o seu dispositivo de gatilho da placa e carregue o código. Em seguida, abra o Monitor Serial (baud 115200) após carregar o código com sucesso.
Se você planeja usar isso com qualquer tipo de dispositivo habilitado para BLE, pule a próxima etapa.
NOTA: se você receber mensagens de erro de memória, é porque as configurações padrão deixam apenas 1 MB de memória (dos 4 MB presentes) para o código bruto do ESP. Ele deixa uma parte para algumas coisas como uma opção para programar no ar. Eu geralmente faço o seguinte:
- em Ferramentas, você agora deve ter uma longa lista de dispositivos ESP, eu recomendo ESP32 dev module-Select 'no Ota 2mb app / 2mb spifs' no gerenciador de partição.
Isso me dá espaço de memória duplo, necessário para este aplicativo.
Etapa 10: (código) carregue o código para o ESP32 * opcional *
Aqui está a parte complicada mencionada na etapa "Definir o gatilho". O monitor emitirá o endereço MAC (deve ser semelhante a ##: ##: ##: ##: ## onde # é um número ou uma letra de a até f), o código do fabricante e o RSSI (um número negativo) Aqui você tem que brincar um pouco para descobrir qual é o seu dispositivo. Normalmente coloco ao lado do quadro para ver claramente qual é o menor número. Desmarco a caixa 'autoscroll' para poder copiar os valores.
- Se for o endereço Mac, preencha 'myDevice' com ele. Em seguida, descomente a linha 96 e a linha de comentário 95
- Se for o Nome, preencha 'meuDispositivo' com ele. Em seguida, descomente a linha # 97 e a linha de comentário # 95
- Se for o MaufactureData que você está sem sorte agora, ainda estou desenvolvendo essa parte.
Para adicionar suporte para muitos dispositivos, você deve ser capaz de copiar a declaração condicional em # 96 ou # 97 e colocá-los um ao lado do outro nesta sintaxe:
if ((condição 1) || (condição 2) || (condição 3)) {
Adicione mais variáveis (meuDispositivo1, meuDispositivo2, meuDispositivo3) de acordo.
Etapa 11: coloque o ESP e calibre
Esta é a parte mais importante da configuração. Passar cuidadosamente por esse processo fará a diferença, pois ele funcionará como mágica ou apenas causará fortes dores de cabeça.
Neste ponto, o código que você carregou está funcionando com os parâmetros que testei pessoalmente e uso diariamente com meu telefone na minha mesa; isso não significa que funcionará para você também. Portanto, você precisa fazer a calibração sozinho.
1. Coloque a placa ESP32 em seu local FIXO final. Se, por algum motivo, você mover a posição do ESP32, provavelmente deverá fazer isso novamente. Isso garantirá uma boa experiência geral.
1. (extra) lembre-se de que você precisará se conectar ao PC enquanto faz isso. Se não puder porque está em um desktop, você terá que fazer tentativa e erro tendo em mente que cada tentativa deve ser quase idêntica em posicionamento, dispositivo de acionamento e outros fatores que podem ser considerados.
2. Abra o Serial Monitor com o código em execução.
O código, por padrão, postará através do Monitor Serial o RSSI (Indicação de intensidade do sinal recebido) de cada dispositivo bluetooth encontrado (ou apenas o (s) dispositivo (s) que correspondem aos seus parâmetros). Brinque um pouco com seu dispositivo principal de ação (dispositivo de acionamento). Você tem que determinar quais são os limites que deseja usar. Ajustar cuidadosamente esta configuração irá
3. Ao determinar os limites, substitua-os aqui:
- near_thrsh
- far_thrsh
4. Carregue novamente o código, teste e repita até encontrar o desempenho ideal.
Algumas coisas a considerar:
1. Você quer cerca de 20db de diferença entre os limites. Se near_thrsh for definido como 50, então é desejável que far_thrsh seja 70 ou mais. Se a diferença for muito curta, você poderá encontrar algumas distâncias ou locais onde a placa está ativando e desativando sem parar. Aumentar essa diferença garantirá que você evite esse comportamento indesejável. Eu descobri pessoalmente que 20db de margem é bom o suficiente.
2. Em cenários de teste de calibração da vida real, tanto quanto possível, isso ajudará a determinar o melhor desempenho.
3. Estude a classe na linha 82 do código; aqui é onde toda a lógica é feita. O código é bem comentado. Fique à vontade para perguntar no GitHub!
Etapa 12: Parabéns! Você terminou
Deixe-me saber nos comentários de quaisquer sugestões ou se você estiver tendo problemas. Lembre-se de verificar o GitHub se seu problema já foi resolvido!
Recomendado:
Detector de presença de cama Zigbee: 8 etapas
Zigbee Bed Presence Detector: Há algum tempo, eu estava procurando uma maneira de detectar quando estamos na cama. Isso para usar essas informações no Homeassistant. Com essas informações eu poderia fazer automações para desligar luzes à noite ou, por exemplo, ativar um sistema de alarmes em minha casa
Robô de Presença Virtual: 15 Passos
Robô de Presença Virtual: Este robô móvel interage com seu ambiente físico, representando a " presença virtual " da pessoa que o controla remotamente. Ele pode ser acessado por qualquer pessoa, em qualquer lugar do mundo, para dispensar guloseimas e brincar com você. O trabalho que ele
Sensor de respiração DIY com Arduino (sensor de alongamento de malha condutiva): 7 etapas (com imagens)
Sensor de respiração DIY com Arduino (sensor de alongamento de malha condutiva): Este sensor de DIY terá a forma de um sensor de alongamento de malha condutivo. Ele envolverá seu tórax / estômago e, quando seu tórax / estômago se expandir e se contrair, o sensor e, consequentemente, os dados de entrada que são alimentados para o Arduino. Então
Simulador de presença residencial e dispositivo de controle de segurança: 6 etapas (com imagens)
Simulador de Presença Doméstica e Dispositivo de Controle de Segurança: Este projeto nos permite simular presença e detectar movimentos em nossa casa. Podemos configurar uma rede de dispositivos instalados em diferentes cômodos de nossa casa todos eles controlados por um dispositivo principal. Este projeto combina estes recursos em um único d
Sensor de presença de cama com SONOFF: 8 etapas (com fotos)
Sensor de presença de cama com SONOFF: Bem-vindo a este tutorial! Pré-requisitos Este howto exige que você tenha algum conhecimento de sonoff e tasmota. Se você nunca projetou um sonoff com tasmota, você deve primeiro aprender a fazê-lo e só então você será capaz de construí-lo