Índice:

Sensor de presença: 12 etapas
Sensor de presença: 12 etapas

Vídeo: Sensor de presença: 12 etapas

Vídeo: Sensor de presença: 12 etapas
Vídeo: 🔴 INCRÍVEL: NOVO SENSOR DE PRESENÇA, O MAIS INTELIGENTE DO MUNDO - Super Fácil 🔧 2024, Novembro
Anonim
Sensor de Presença
Sensor de Presença

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

  1. ESP32
  2. (opcional) Plugue de parede WiFi TECKIN S10
  3. Dispositivo habilitado para BLE de qualquer tipo

Etapa 1: Defina seu cenário

Defina o seu cenário
Defina o 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

(Configuração) - IFTTT
(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 *

(Configuração) IFTTT Webhook Api * Usuários experientes *
(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 *

(Configuração) IFTTT Webhook Api * Para iniciantes com fotos *
(Configuração) IFTTT Webhook Api * Para iniciantes com fotos *
(Configuração) IFTTT Webhook Api * Para iniciantes com fotos *
(Configuração) IFTTT Webhook Api * Para iniciantes com fotos *
(Configuração) IFTTT Webhook Api * Para iniciantes com fotos *
(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

(Código) Programando o ESP32
(Código) Programando o 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

(Código) Faça o upload do código para o ESP32
(Código) Faça o upload do 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 *

(Código) Carregue o Código para o ESP32 * opcional *
(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

Coloque o ESP e calibre
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: