<
*

Ivanov

  • Allahu Akbar
  • *****
  • 60
  • 2
  • Zhokhov
    • Ver perfil
LaserCat – IoT com NodeMCU e Blynk
« Online: Dezembro 08, 2017, 09:24:51 am »
LaserCat – IoT com NodeMCU e Blynk



Este é um projeto muito simples, onde a ideia principal é explorar como controlar servos via internet. Para isso, usaremos uma grande dupla de componentes, o NodeMCU ESP12-E e um aplicativo Blynk.


O projeto foi baseado em um grande tutorial: Smartphone Controlled Cat Laser, desenvolvido usando-se um Arduino Uno conectado a um PC via Serial. Aqui porém, usaremos o NodeMCU, em um formato mais “portátil” utilizando-se WiFi e bateria.



IMPORTANTE: O apontador laser pode ser perigoso se apontado diretamente para os olhos. Proteja os seus olhos, o de animais e outras pessoas. Use com cuidado.


Abaixo, você poderá ver minha gatinha Cleo brincando com o laser:



Step 1: Os componentes principais:






Step 2: O mecanismo “Pan/Tilt” de posicionamento



Vamos construir um mecanismo de “Pan / Tilt” muito simples, montando os servos “um em cima do outro” como mostrado nas fotos abaixo:



  • O “Pan” Servo  é usado “como base”. Mantenha-o na vertical.



    • Fixe o “Tilt” Servo sobre a parte de movimento do “Pan” Servo  (na posição horizontal)



    • Fixe o ponteiro laser na parte movel do “Tilt” Servo como mostrado.


    • Note que usei algumas peças metálicas, aproveitadas de um brinquedo desmontado, como estrutura de base para o mecanismo “Pan / Tilt”. Você poderá utilizar outros tipos de estrutura, O importante é manter os movimentos horizontal e vertical.


      Step 3: O HW




    • O circuito elétrico é bem simples:


    • Antes de iniciar as conexões, leve em consideração que apesar do nodeMCU ser alimentado com 5V, ele funciona internamente com 3.3V (assim como seus pinos de I/O). Assim, os Servos não poderão ser alimentados a partir de uma das 3 saídas de 3.3V do NodeMCU. A exceção é o pino “Vin”, que pode tanto fornecer 5V para o breadboard “+ VCC rail”quanto alimentar o NodeMCU quando uma fonte externa é utilizada (como mostrado no diagrama elétrico abaixo).


    • O módulo laser deve ser alimentado com 5V, porém ele também funciona com 3.3V o  que faz com que a potência do laser seja menor e consequentemente, seu uso mais seguro.

      IMPORTANTE: O apontador laser pode ser perigoso se apontado diretamente para os olhos. Proteja os seus olhos, o de animais e outras pessoas. Use com cuidado.


      Observando atentamente o diagrama elétrico acima, execute as seguintes ligações:



      • Ligue o cabo de dados do servo Pan (eixo X) ao NodeMCU Pin D1 (note que todos os pinos digitais do NodeMCU são PWM)

      • Ligue os dados do servo Tilt (eixo “Y”) ao NodeMCU Pin D2

      • Ligue o pino “S” do ponteiro laser ao NodeMCU Pin D3

      • Ligue o pino “Vin” de NodeMCU ao “+ 5V Rail” do Breadboard

      • Conecte os pinos GND (comum ou terra) do NodeMCU, Servos e Ponteiro Laser ao “GND Rail” do Breadboard

      • Conecte os cabos de alimentação dos Servos ao  “+ 5V Rail” do Breadboard


       


      Step 4: O codigo


      Para o controle dos servos, usaremos a biblioteca do IDE: Servo.h, a qual gerará sinais PWM posicionando-os facilmente com entradas angulares.


      Uma vez que a base do projeto é usar o aplicativo BLYNK, o código torna-se muito simples. Devemos definir 4 variáveis virtuais:


      V0: “X position”


      V1: “Y position”


      V2: “Random or manual” operation


      V3: Laser ON/OFF command






 
BLYNK_WRITE(V0)
{
  xPotReading = param.asInt();
}
BLYNK_WRITE(V1)
{
  yPotReading = param.asInt();
}
BLYNK_WRITE(V2)
{
  randState = param.asInt();
}
BLYNK_WRITE(V4)
{
  laserState = param.asInt();
}
 

Se você não sabe como preparar o IDE do Arduino para trabalhar com o NodeMCU, por favor de uma olhadinha em meu tutorial:


Do “blink” ao BLYNK, uma viagem pela “Internet das coisas” nas asas do NodeMCU ESP-12E


Abaixo, o código completo. de uma passada de olhos nele. É muito fácil de entender.




Step 5: O “Blynk”