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

Monitoramento da qualidade da água usando MKR1000 e ARTIK Cloud

Componentes e suprimentos

Arduino MKR1000
× 1
Fios de jumpers (genérico)
× 1
Medidor de pH DFRobot
× 1
Resistor 4,75 k ohm
× 1
Sonda de temperatura
× 1

Aplicativos e serviços online

Samsung ARTIK Cloud para IoT
Arduino IDE

Sobre este projeto





I. Objetivo


O objetivo principal deste projeto é usar o Samsung ARTIK Cloud para monitorar o pH e os níveis de temperatura de piscinas.





II. Configuração da nuvem ARTIK





Etapa 1. Criando seu novo dispositivo


Inscreva-se com ARTIK Cloud. Vá para o site do desenvolvedor e crie um novo "tipo de dispositivo".

Insira a exibição desejada e o nome exclusivo.

Criar um novo Manifesto

Insira o nome do campo e outra descrição

Clique em Salvar e navegue até a guia Ativar manifesto

Clique no botão MANIFESTO ATIVO para finalizar e você será redirecionado aqui

Concluída a criação do tipo de dispositivo!

Agora vamos criar seu aplicativo que usará esse dispositivo.





Etapa 2. Criando seu aplicativo


Navegue até Aplicativos em nuvem ARTIK.

Clique em novo aplicativo

Insira o nome do aplicativo desejado e o URL de redirecionamento de autenticação.

Observe que o URL de redirecionamento de autenticação é obrigatório. Ele é usado para autenticar os usuários deste aplicativo, portanto, redirecionará para este url se precisar de login.

Usamos http:// localhost / index / para amostra.

Agora defina a permissão do seu aplicativo para ler e escrever, navegue até o seu dispositivo e salve.

Parabéns, agora você tem seu aplicativo!

Agora vamos conectar esse aplicativo.





Etapa 3. Conecte seu dispositivo


Navegue até meus dispositivos e clique em conectar outro dispositivo.

Clique no novo tipo de dispositivo criado anteriormente e clique em conectar dispositivo.

Clique nas configurações do dispositivo conectado.

Anote essas informações, pois você precisará delas no programa.

Agora navegue até o seu dispositivo conectado

Feito para a configuração do ARTIK Cloud. Assim que seu hardware estiver pronto, o gráfico terá dados.





III. Configuração do sensor de hardware





Etapa 1. Conecte os sensores de temperatura e pH ao MKR1000.


Aqui está o diagrama:
  • Temp GND para MRK1000 GND
  • Temp OUT para MKR1000 pino digital 1
  • Temp VCC para MKR1000 5V
  • Conecte um resistor de 4,7 K a Temp VCC e Temp OUT
  • pH GND a MRK1000 GND
  • pH OUT para MKR1000 analógico pino 1
  • pH VCC para MKR1000 5V

Aqui está meu exemplo de fiação

Se você notou, nós adicionamos um conector de áudio para facilitar a remoção do sensor de temperatura. Mas isso é opcional.

Aqui está a conexão do sensor de temperatura ao conector.





Etapa 2. Configure o software necessário


Vá para Arduino IDE e adicione a placa MKR1000.

Pesquise mkr1000 e clique em instalar

Adicionar biblioteca necessária

Procure bibliotecas para instalar:
  • ArduinoJson - usaremos isso para enviar dados JSON para ARTIK Cloud
  • ArduinoHttpClient - host para conexão com a API
  • OneWire - necessário para ler a entrada digital do sensor de temperatura
  • DallasTemperature - Biblioteca necessária do sensor de temperatura de Dallas

Conclua a adição do software necessário!





Etapa 3. Faça upload do programa


Agora conecte o MKR1000 ao seu PC / Laptop.

Baixe o software no GitHub aqui

Altere as seguintes informações:

Em seguida, carregue o código do software no MKR1000 e comece a monitorar.

Nota:Seu WiFi deve ter conexão com a Internet.





4. Teste de campo


Testamos o sensor de hardware para Piscinas Privadas, Públicas e Escolares. Coletar os dados do pool desses entrevistados nos permitiu analisar a capacidade do hardware.

Você pode colocar o MKR1000 e o sensor em uma caixa e colocá-lo em sua piscina longe da contaminação da água. Ao fazer isso, você pode monitorar a qualidade da água e normalizá-la, colocando os produtos químicos desejados.



Em breve iremos carregar o tutorial de como colocar todos os circuitos dentro desta caixa e as filmagens reais dos testes.





V. Resultados


Espero que este tutorial ajude as pessoas a construir seu próprio dispositivo de monitoramento da qualidade da água da piscina DIY. Que haja uma maior conscientização quanto à degradação contínua da qualidade da água da piscina, já que as pessoas tendem a se concentrar mais nas comodidades que são oferecidas em vez de verificar o quão seguras são. Eles também pretendem contribuir com a comunidade, sendo capazes de fornecer um meio de tornar os testes de qualidade da água mais eficientes e eficazes, sem o sacrifício desnecessário de recursos.

Feliz construção! :)

Código

  • Códigos Arduino MKR1000
Códigos do Arduino MKR1000 C / C ++
Faça upload destes códigos para o seu Arduino MKR1000

Visite no GitHub> https://github.com/imjeffparedes/iot-water-quality-artik
/********************** Aqui está o meu código para Water Quality Device Monitoring publicado em https://www.hackster.io/animo/water-quality-moniroting-840fea*********************/#include  #include  #include  #include  #include  #include  #include  / ** Sensor de temperatura Inicialização ** / # define ONE_WIRE_BUS 1 // O fio de dados está conectado à porta digital 1 do ArduinoOneWire oneWire (ONE_WIRE_BUS); // Configurar uma instância oneWire para se comunicar com quaisquer dispositivos OneWire // (não apenas ICs de temperatura Maxim / Dallas) Sensores de temperatura Dallas (&oneWire); // Passe nossa referência oneWire para Dallas Temperature. / ** ARTIK Cloud REST Initialization ** / char server [] ="api.artik.cloud"; // Samsung ARTIK Cloud API Hostint port =443; // 443 para HTTPS char buf [200]; // dados do corpo para armazenar o JSON a ser enviado para a nuvem ARTIK String deviceID ="artik cloud device id"; // coloque o id do seu dispositivo aqui criado a partir do tutorial String deviceToken ="token de dispositivo em nuvem artik"; // coloque o token do seu dispositivo aqui criado a partir do tutorial / ** inicialização do medidor de pH ** / # define SensorPin A1 // Saída analógica do medidor de pH para Arduino Analog Input 1 # define Offset 0.00 // desvio compensa # define samplingInterval 20 # define ArrayLenth 40 // tempos de coletaint pHArray [ArrayLenth]; // Armazena o valor médio do feedbackint do sensor pHArrayIndex =0; int status =-1; int millis_start; / ** Configuração Wifi ** / # define WIFI_AP "seu ssid wi-fi" #define WIFI_PWD "senha wi-fi" WiFiSSLClient wi-fi; Cliente HttpClient =HttpClient (wi-fi, servidor, porta); configuração de void (void) {millis_start =millis (); Serial.begin (9600); startWifi (); // inicia a conexão com wi-fi} void loop (void) {/ * Temperatura atual de aquisição * / float celsius =0; sensores.requestTemperatures (); // Envie o comando para obter as temperaturas celsius =sensores.getTempCByIndex (0); sensores.requestTemperatures (); // Envie o comando para obter as temperaturas celsius =sensores.getTempCByIndex (0); / * Valor de pH atual de aquisição * / static unsigned long samplingTime =millis (); tempo de impressão longo não assinado estático =millis (); flutuador estático pHValue, voltagem; if (millis () - samplingTime> samplingInterval) {pHArray [pHArrayIndex ++] =analogRead (SensorPin); if (pHArrayIndex ==ArrayLenth) pHArrayIndex =0; voltagem =média (pHArray, ArrayLenth) * 5,0 / 1024; pHValue =3,5 * voltagem + Offset; samplingTime =millis (); } Serial.println ("=================================================" ); Serial.println ("Enviaremos esses dados json"); // imprime no formato json Serial.println ("data:{"); Serial.print ("ph:"); Serial.print (pHValue); Serial.print (", temp:"); Serial.print (celsius); Serial.println ("}"); Serial.println (""); Serial.println ("Começar a enviar dados"); String contentType ="aplicativo / json"; String AuthorizationData ="Bearer" + deviceToken; // Token do dispositivo int len ​​=loadBuffer (celsius, pHValue); Serial.println ("Sending temp:" + String (celsius) + "e ph:" + String (pHValue)); Serial.println ("Enviar POST para ARTIK Cloud API"); client.beginRequest (); client.post ("/ v1.1 / mensagens"); //, contentType, buf client.sendHeader ("Authorization", AuthorizationData); client.sendHeader ("Content-Type", "application / json"); client.sendHeader ("Comprimento do conteúdo", len); client.endRequest (); client.print (buf); // imprime a resposta da api int statusCode =client.responseStatusCode (); Resposta da string =client.responseBody (); Serial.println (""); Serial.print ("Código de status:"); Serial.println (statusCode); Serial.print ("Resposta:"); Serial.println (resposta); atraso (1000); // atraso da atualização} / * Conexão inicial ao Wifi * / void startWifi () {Serial.println ("Conectando o MKR1000 à rede ..."); // WiFi.begin (); // tentativa de conexão à rede Wifi:while (status! =WL_CONNECTED) {Serial.print ("Tentando conectar ao WPA SSID:"); Serial.println (WIFI_AP); WiFi.begin (WIFI_AP, WIFI_PWD); // aguarde 10 segundos pela conexão:delay (10000); status =WiFi.status (); }} / * DfRobot pH Meter Source * / double avergearray (int * arr, número int) {int i; int max, min; média dupla; quantidade longa =0; if (número <=0) {Serial.println ("Número do erro para a matriz avraging! / n"); return 0; } if (número <5) {// menor que 5, estatística calculada diretamente para (i =0; i  max) {amount + =max; // arr> max max =arr [i]; } else {montante + =arr [i]; // min <=arr <=max}} // if} // para avg =(double) amount / (number-2); } // if return avg;} / * Buffer para enviar em REST * / int loadBuffer (float temp, float ph) {StaticJsonBuffer <200> jsonBuffer; // reserva um lugar na memória JsonObject &root =jsonBuffer.createObject (); // cria objetos raiz root ["sdid"] =deviceID; root ["tipo"] ="mensagem"; JsonObject &dataPair =root.createNestedObject ("dados"); // cria objetos aninhados dataPair ["temp"] =temp; dataPair ["ph"] =ph; root.printTo (buf, sizeof (buf)); // JSON-imprime no buffer return (root.measureLength ()); // também retorna comprimento} 

Esquemas

Conexão de placa de ensaio de MKR1000 e sensores

Processo de manufatura

  1. Uso de SaaS e nuvem exige organização cuidadosa de dados
  2. Para a nuvem infinita e além
  3. Monitoramento de aplicativos em nuvem e você
  4. Segurança e benefícios importantes do uso da nuvem Linux
  5. Sensor de temperatura Python e Raspberry Pi
  6. Monitoramento da temperatura ambiente com Moteino e Raspberry Pi
  7. DIY:Monitoramento e regulação de temperatura para HomeBrew
  8. Monitoramento remoto do clima usando Raspberry Pi
  9. Sistema de monitoramento de qualidade do ar interno e lixo
  10. Aplicações e benefícios de usar uma solução de monitoramento de gás