Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Sistema de atendimento por impressão digital Arduino com armazenamento de dados em nuvem

Componentes e suprimentos

Arduino Mega 2560 R3
× 1
Sensor de impressão digital ElectroPeak R301T
× 1
Módulo adaptador de cartão ElectroPeak Micro SD TF
× 1
Módulo ElectroPeak DS3231 I2C RTC
× 1
ElectroPeak 3.5 "Módulo de tela de exibição em cores TFT
× 1
Placa ElectroPeak NodeMCU ESP8266 ESP-12E
× 1
ElectroPeak macho para fêmea Jumper Wire
× 1

Ferramentas e máquinas necessárias

Cortador a laser (genérico)
Ferro de soldar (genérico)

Aplicativos e serviços online

Arduino IDE

Sobre este projeto


Você pode ler este e outros tutoriais incríveis em Site oficial do ElectroPeak .





Visão geral


Hoje em dia, aprender sobre a operação e implementação de dispositivos IoT é tão essencial devido ao uso crescente de sistemas IoT. Neste tutorial, vamos fazer um dispositivo de atendimento por impressão digital com Arduino, que além de armazenar as informações de login e horário de trabalho no cartão de memória, carrega essas informações na plataforma ThingSpeak assim que estiver conectado à Internet e você pode baixar essas informações do painel em vários formatos, como CSV.





O que você aprenderá

  • Trabalho com sensores de impressão digital
  • Carregando dados no ThingSpeak usando NodeMCU
  • Faça um dispositivo de atendimento com o sensor de impressão digital e Arduino





O que é ThingSpeak?


A IoT (Internet of Things) prevê um mundo onde várias coisas estão conectadas à Internet, interagindo com indivíduos e outros dispositivos e, geralmente, enviando dados para a nuvem para análise.

ThingSpeak é uma plataforma IoT que permite exibir e coletar dados ao vivo na computação em nuvem.





Interface com ThingSpeak e upload de dados


Siga as etapas abaixo para iniciar a conexão ThingSpeak:

Etapa 1 ) Entre no site ThingSpeak.com e crie uma conta.

Etapa 2 ) Faça login após ativar sua conta e clique em Novo canal no Meu canal seção.

Etapa 3 ) Na nova janela aberta para você, escreva um nome para o seu painel e qualquer descrição, se necessário. Determine o número de campos necessários atribuindo seus nomes. As demais peças são opcionais. Salve o painel após preencher as informações.

Etapa 4 ) Agora vá para Chaves de API em seu painel.

Etapa 5 ) Você precisa do ID do canal e Gravar chave de API para transmitir dados, então anote-os.

Etapa 6) Baixe o ThingSpeak biblioteca e adicione-a ao seu Arduino IDE.

A biblioteca ThingSpeak

Etapa 7) Vá para o IDE do Arduino. Abra o WriteMultipleFiels da parte dos exemplos e insira os valores de SSID, senha, ID do canal e Write API Key.
  / * WriteMultipleFields Descrição:Grava valores nos campos 1,2,3,4 e status em uma única atualização do Thingspeak a cada 20 segundos. Hardware:placas baseadas em ESP8266 !!! IMPORTANTE - Modifique o arquivo secrets.h para este projeto com sua conexão de rede e os detalhes do canal Thingspeak. !!! Nota:- Requer a biblioteca ESP8266WiFi e o complemento da placa ESP8622. Consulte https://github.com/esp8266/Arduino para obter detalhes. - Selecione o hardware de destino no menu Ferramentas-> Placa - Este exemplo foi escrito para uma rede que usa criptografia WPA. Para WEP ou WPA, altere a chamada WiFi.begin () de acordo. Thingspeak (https://www.Thingspeak.com) é um serviço de plataforma IoT analítica que permite agregar, visualizar e analisar fluxos de dados ao vivo na nuvem. Visite https://www.Thingspeak.com para se inscrever para uma conta gratuita e criar um canal. A documentação para a biblioteca de comunicação Thingspeak para Arduino está na pasta README.md onde a biblioteca foi instalada. Consulte https://www.mathworks.com/help/Thingspeak/index.html para a documentação completa do Thingspeak. Para obter informações sobre licenciamento, consulte o arquivo de licença que acompanha. Copyright 2018, The MathWorks, Inc. * / # Include "Thingspeak.h" #include "secrets.h" #include  char ssid [] =SECRET_SSID; // SSID da sua rede (nome) char pass [] =SECRET_PASS; // sua senha de redeint keyIndex =0; // o número do índice da sua chave de rede (necessário apenas para WEP) cliente WiFiClient; longo sem sinal myChannelNumber =SECRET_CH_ID; const char * myWriteAPIKey =SECRET_WRITE_APIKEY; // Inicializar nossos valoresint number1 =0; int number2 =random (0,100); int number3 =random (0,100); número int4 =aleatório (0,100); String myStatus =""; void setup () {Serial.begin (115200); // Inicializa o WiFi.mode serial (WIFI_STA); Thingspeak.begin (cliente); // Inicializar o Thingspeak} void loop () {// Conectar ou reconectar ao WiFi if (WiFi.status ()! =WL_CONNECTED) {Serial.print ("Tentando conectar ao SSID:"); Serial.println (SECRET_SSID); while (WiFi.status ()! =WL_CONNECTED) {WiFi.begin (ssid, pass); // Conecte-se à rede WPA / WPA2. Altere esta linha se estiver usando a rede aberta ou WEP Serial.print ("."); atraso (5000); } Serial.println ("\ nConectado."); } // define os campos com os valores Thingspeak.setField (1, número1); Thingspeak.setField (2, número2); Thingspeak.setField (3, número3); Thingspeak.setField (4, número4); // descobrir a mensagem de status if (número1> número2) {meuEstado =String ("campo1 é maior que campo2"); } else if (number1  99) {número1 =0; } número2 =aleatório (0,100); número3 =aleatório (0,100); numero4 =aleatório (0,100); atraso (20000); // Aguarde 20 segundos para atualizar o canal novamente}  

Depois de enviar o código, você verá alguns números aleatórios enviados nos campos 1 a 4 do seu painel. O mesmo código estruturado é usado no sistema de atendimento para upload de dados.

Nota

Aguarde pelo menos 15 segundos entre cada vez que você carregar os dados no painel ThingSpeak.





Criando sistema de atendimento usando o sensor de impressão digital e Arduino


Nesse sistema, após o registro da entrada e saída de uma pessoa por meio de sua impressão digital, as informações como data, nome, hora de chegada, hora de saída e horário de trabalho do funcionário ficam armazenadas no cartão SD. Em seguida, essas informações serão enviadas para ThingSpeak no momento que você especificou. Na ausência de conexão com a Internet, os dados não publicados são armazenados e serão encaminhados ao ThingSpeak assim que for conectado à Internet. Como as informações são armazenadas na EEPROM do microcontrolador, não serão perdidas em caso de queda de energia.





Circuito


Após conectar todos os módulos, coloque o escudo LCD no Arduino.

Dica

Uma vez que o escudo do LCD cobre alguns dos pinos do Arduino, você pode limitar o fio a um pino específico da parte inferior da placa, se precisar desses pinos.





Código


Você precisa das seguintes bibliotecas para este código:

Adafruit-Fingerprint-Sensor-Library

Biblioteca Adafruit-GFX

MCUFRIEND_kbv

RTClib

Agora baixe o código a seguir e envie-o para o seu Arduino. Este código foi escrito para 11 pessoas com nomes padrão, mas você pode alterá-los e removê-los do modo padrão. Para registrar um novo nome, simplesmente conecte o dispositivo ao seu computador e pressione a tecla para entrar no modo de registro, abra o Monitor Serial e siga o processo de registro conforme mostrado no Monitor Serial.

Baixe o código em attachmentes:

Você pode aprender mais sobre como usar um cartão SD, o módulo de relógio e o LCD nos seguintes links:

Módulo de cartão SD com Arduino:como ler / gravar dados

Como usar o módulo DS1307 RTC com Arduino e fazer um lembrete

Guia do iniciante absoluto para monitores LCD TFT por Arduino.

NodeMCU executa a tarefa de enviar as informações neste sistema. Ele pega as informações de upload do Arduino por meio da porta serial e retorna o status de upload para o Arduino. Faça upload do seguinte código em seu NodeMCU.
  #include "Thingspeak.h" #include ESP8266WiFi.h> char ssid [] ="SEU SSID"; char pass [] ="SSID PASSWORD"; cliente WiFiClient; unsigned long myChannelNumber =SEU ID DO CANAL; const char * myWriteAPIKey ="SEU CHANNEL WRITE API KEY"; String Final =""; String Data =""; String Enter =""; String Exit =""; String Name =""; String WT =""; void String_Analyze (String input) {int índice1, índice2, índice3, índice4; index1 =input.indexOf ('*', 0); index2 =input.indexOf ('*', index1 + 1); index3 =input.indexOf ('*', index2 + 1); index4 =input.lastIndexOf ('*'); Nome =entrada; Data =entrada; Enter =entrada; Sair =entrada; WT =entrada; Name.remove (índice1); Date.remove (índice2); Date.remove (0, índice1 + 1); Enter.remove (index3); Enter.remove (0, índice2 + 1); Exit.remove (índice4); Exit.remove (0, índice 3 + 1); WT.remove (0, index4 + 1);} void Get_String () {while (Serial.available ()) {Final =Serial.readString (); // leia os dados recebidos como string //Serial.println(Final); }} void setup () {Serial.begin (9600); WiFi.mode (WIFI_STA); Thingspeak.begin (cliente); pinMode (LED_BUILTIN, OUTPUT); digitalWrite (LED_BUILTIN, HIGH);} void loop () {if (WiFi.status ()! =WL_CONNECTED) {//Serial.print("Attempting to connect to SSID:"); // Serial.println (ssid); while (WiFi.status ()! =WL_CONNECTED) {WiFi.begin (ssid, pass); // Conecte-se à rede WPA / WPA2. Altere esta linha se estiver usando a rede aberta ou WEP Serial.print ("0"); atraso (5000); }} digitalWrite (LED_BUILTIN, LOW); //Serial.println("\nConnected. "); Get_String (); String_Analyze (final); if (! Final.equals ("")) {Thingspeak.setField (1, Date); Thingspeak.setField (2, Nome); Thingspeak.setField (3, Enter); Thingspeak.setField (4, Saída); Thingspeak.setField (5, WT); int x =Thingspeak.writeFields (myChannelNumber, myWriteAPIKey); if (x ==200) {atraso (100); Serial.print ("1"); } mais {atraso (100); Serial.print ("0"); } atraso (17.000); Final =""; }  

Primeiro, altere o ID do canal e Gravar chave de API de acordo com seu painel ThingSpeak.

O String_Analuze (); A função neste código divide as strings de entrada do NodeMCU em data, nome, hora de chegada e partida e horas de trabalho, e envia essas informações para ThingSpeak. Então, se o processo de upload for bem-sucedido, ele envia o caractere “1” e, caso contrário, envia o caractere “0” para o Arduino.





Montagem do dispositivo de atendimento


Você pode usar os seguintes mapas e Plexiglass com cores diferentes ou qualquer outro material para construir o corpo do dispositivo de atendimento.

Baixe o mapa de corte a laser do corpo do dispositivo dos anexos:

Após colocar os componentes eletrônicos e montar todo o corpo, instale-o no local desejado. Agora, basta conectar um adaptador de 12 V ao dispositivo e ele começa a funcionar.





O que vem a seguir?

  • Tente usar mais ícones no LCD.
  • Tente adicionar uma opção RFID ao sistema.
  • Tente fazer upload dos dados nas planilhas do Google em vez de ThingSpeak .

Se você achar este tutorial útil e interessante, curta-nos em Facebook.

Código

  • Código 1
  • Código 2
Código 1 Arduino
Interface com Thingspeak e upload de dados
 / * WriteMultipleFields Descrição:Grava valores nos campos 1,2,3,4 e status em uma única atualização do Thingspeak a cada 20 segundos. Hardware:placas baseadas em ESP8266 !!! IMPORTANTE - Modifique o arquivo secrets.h para este projeto com sua conexão de rede e os detalhes do canal Thingspeak. !!! Nota:- Requer a biblioteca ESP8266WiFi e o complemento da placa ESP8622. Consulte https://github.com/esp8266/Arduino para obter detalhes. - Selecione o hardware de destino no menu Ferramentas-> Placa - Este exemplo foi escrito para uma rede que usa criptografia WPA. Para WEP ou WPA, altere a chamada WiFi.begin () de acordo. Thingspeak (https://www.Thingspeak.com) é um serviço de plataforma IoT analítica que permite agregar, visualizar e analisar fluxos de dados ao vivo na nuvem. Visite https://www.Thingspeak.com para se inscrever para uma conta gratuita e criar um canal. A documentação para a biblioteca de comunicação Thingspeak para Arduino está na pasta README.md onde a biblioteca foi instalada. Consulte https://www.mathworks.com/help/Thingspeak/index.html para a documentação completa do Thingspeak. Para obter informações sobre licenciamento, consulte o arquivo de licença que acompanha. Copyright 2018, The MathWorks, Inc. * / # Include "Thingspeak.h" #include "secrets.h" #include  char ssid [] =SECRET_SSID; // SSID da sua rede (nome) char pass [] =SECRET_PASS; // sua senha de redeint keyIndex =0; // o número do índice da sua chave de rede (necessário apenas para WEP) cliente WiFiClient; longo sem sinal myChannelNumber =SECRET_CH_ID; const char * myWriteAPIKey =SECRET_WRITE_APIKEY; // Inicializar nossos valoresint number1 =0; int number2 =random (0,100); int number3 =random (0,100); número int4 =aleatório (0,100); String myStatus =""; void setup () {Serial.begin (115200); // Inicializa o WiFi.mode serial (WIFI_STA); Thingspeak.begin (cliente); // Inicializar o Thingspeak} void loop () {// Conectar ou reconectar ao WiFi if (WiFi.status ()! =WL_CONNECTED) {Serial.print ("Tentando conectar ao SSID:"); Serial.println (SECRET_SSID); while (WiFi.status ()! =WL_CONNECTED) {WiFi.begin (ssid, pass); // Conecte-se à rede WPA / WPA2. Altere esta linha se estiver usando a rede aberta ou WEP Serial.print ("."); atraso (5000); } Serial.println ("\ nConectado."); } // define os campos com os valores Thingspeak.setField (1, número1); Thingspeak.setField (2, número2); Thingspeak.setField (3, número3); Thingspeak.setField (4, número4); // descobrir a mensagem de status if (número1> número2) {meuEstado =String ("campo1 é maior que campo2"); } else if (number1  99) {número1 =0; } número2 =aleatório (0,100); número3 =aleatório (0,100); numero4 =aleatório (0,100); atraso (20000); // Aguarde 20 segundos para atualizar o canal novamente} 
Código 2 Arduino
 #include "Thingspeak.h" #include ESP8266WiFi.h> char ssid [] ="SEU SSID"; char pass [] ="SSID PASSWORD"; cliente WiFiClient; unsigned long myChannelNumber =SEU ID DO CANAL; const char * myWriteAPIKey ="SEU CHANNEL WRITE API KEY"; String Final =""; String Data =""; String Enter =""; String Exit =""; String Name =""; String WT =""; void String_Analyze (String input) {int index1, index2, index3, index4; index1 =input.indexOf ('*', 0); index2 =input.indexOf ('*', index1 + 1); index3 =input.indexOf ('*', index2 + 1); index4 =input.lastIndexOf ('*'); Nome =entrada; Data =entrada; Enter =entrada; Sair =entrada; WT =entrada; Name.remove (índice1); Date.remove (índice2); Date.remove (0, índice1 + 1); Enter.remove (index3); Enter.remove (0, índice2 + 1); Exit.remove (índice4); Exit.remove (0, índice 3 + 1); WT.remove (0, index4 + 1);} void Get_String () {while (Serial.available ()) {Final =Serial.readString (); // leia os dados recebidos como string //Serial.println(Final); }} void setup () {Serial.begin (9600); WiFi.mode (WIFI_STA); Thingspeak.begin (cliente); pinMode (LED_BUILTIN, OUTPUT); digitalWrite (LED_BUILTIN, HIGH);} void loop () {if (WiFi.status ()! =WL_CONNECTED) {//Serial.print("Attempting to connect to SSID:"); // Serial.println (ssid); while (WiFi.status ()! =WL_CONNECTED) {WiFi.begin (ssid, pass); // Conecte-se à rede WPA / WPA2. Altere esta linha se estiver usando a rede aberta ou WEP Serial.print ("0"); atraso (5000); }} digitalWrite (LED_BUILTIN, LOW); //Serial.println("\nConnected. "); Get_String (); String_Analyze (final); if (! Final.equals ("")) {Thingspeak.setField (1, Date); Thingspeak.setField (2, Nome); Thingspeak.setField (3, Enter); Thingspeak.setField (4, Saída); Thingspeak.setField (5, WT); int x =Thingspeak.writeFields (myChannelNumber, myWriteAPIKey); if (x ==200) {atraso (100); Serial.print ("1"); } mais {atraso (100); Serial.print ("0"); } atraso (17.000); Final =""; } 

Peças personalizadas e gabinetes

uploads2ftmp2fdcd9a041-0d41-433f-b48f-b7fa0a1b7a832felectropeak_attendance_code_q4bsYBzou5.zip uploads2ftmp2f93ae52e3-7f3c-4744-b2db-b69baed578622fattendanceboxlasercut_ryMUOo5d7h.dwg

Processo de manufatura

  1. 10 Benefícios do uso do armazenamento em nuvem
  2. DVD Player
  3. Sistema de atendimento usando Arduino e RFID com Python
  4. Transferência de dados magnéticos sem fio
  5. Sistema de alarme Arduino:SERENA
  6. Registrador de dados de temperatura e umidade
  7. Sensor capacitivo de impressão digital com um Arduino ou ESP8266
  8. Arduino Cloud Sensor Tower
  9. Sistema de ventilação porão / crawlspace
  10. A nuvem na IoT