Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Monitoreo de la calidad del agua usando MKR1000 y ARTIK Cloud

Componentes y suministros

Arduino MKR1000
× 1
Cables de puente (genéricos)
× 1
Medidor de pH DFRobot
× 1
Resistencia de 4,75 k ohmios
× 1
Sonda de temperatura
× 1

Aplicaciones y servicios en línea

Samsung ARTIK Cloud para IoT
Arduino IDE

Acerca de este proyecto

I. Objetivo

El objetivo principal de este proyecto es utilizar Samsung ARTIK Cloud para monitorear los niveles de pH y temperatura de las piscinas.

II. Configuración de ARTIK Cloud

Paso 1. Creando su nuevo dispositivo

Regístrese con ARTIK Cloud. Vaya al sitio del desarrollador y cree un nuevo "tipo de dispositivo".

Ingrese la pantalla que desee y el nombre exclusivo.

Crear nuevo manifiesto

Ingrese el nombre del campo y otra descripción

Haga clic en Guardar y luego navegue hasta Activar pestaña de manifiesto

Haga clic en el botón ACTIVE MANIFEST para terminar y será redirigido aquí

¡Terminé de crear el tipo de dispositivo!

Ahora creemos su aplicación que utilizará ese dispositivo.

Paso 2. Creando su aplicación

Vaya a Aplicaciones en la nube ARTIK.

Haga clic en nueva aplicación

Ingrese el nombre de la aplicación que desee y la URL de redireccionamiento de autenticación.

Tenga en cuenta que se requiere la URL de redireccionamiento de autenticación. Se utiliza para autenticar a los usuarios de esta aplicación, por lo tanto, se redirigirá a esta URL si es necesario iniciar sesión.

Usamos http:// localhost / index / como muestra.

Ahora configure el permiso de su aplicación para leer y escribir, navegue hasta su dispositivo y luego guarde.

¡Enhorabuena ya tienes tu aplicación!

Ahora conectemos esa aplicación.

Paso 3. Conecte su dispositivo

Navegue a mis dispositivos y haga clic en conectar otro dispositivo.

Haga clic en su nuevo tipo de dispositivo creado anteriormente y luego haga clic en conectar dispositivo.

Haga clic en la configuración de su dispositivo conectado.

Tome nota de esta información, ya que la necesitará en el programa.

Ahora navega hasta tu dispositivo conectado

Hecho para la configuración de ARTIK Cloud. Una vez que su hardware esté listo, el gráfico tendrá datos.

III. Configuración del sensor de hardware

Paso 1. Conecte los sensores de temperatura y pH al MKR1000.

Aquí está el diagrama:

  • Temp GND a MRK1000 GND
  • Salida de temperatura al pin 1 digital MKR1000
  • Temp VCC a MKR1000 5V
  • Conecte una resistencia de 4.7K a Temp VCC y Temp OUT
  • pH GND a MRK1000 GND
  • pH OUT al pin 1 analógico MKR1000
  • pH VCC a MKR1000 5V

Aquí está mi cableado de muestra

Si se dio cuenta, agregamos un conector de audio para desconectar fácilmente el sensor de temperatura. Pero esto es opcional.

Aquí está la conexión del sensor de temperatura al conector.

Paso 2. Configure el software requerido

Vaya a Arduino IDE y agregue la placa MKR1000.

Busque mkr1000 y haga clic en instalar

Agregar biblioteca requerida

Busque bibliotecas para instalar:

  • ArduinoJson:usaremos esto para enviar datos JSON a ARTIK Cloud
  • ArduinoHttpClient:host para conectarse a la API
  • OneWire:necesario para leer la entrada digital del sensor de temperatura
  • DallasTemperature - Biblioteca requerida del sensor de temperatura de Dallas

¡Termine de agregar el software requerido!

Paso 3. Sube el programa

Ahora conecte el MKR1000 a su PC / portátil.

Descarga el software en GitHub aquí

Cambie la siguiente información:

Luego, cargue el código de software en MKR1000 y comience a monitorear.

Nota:Su WiFi debe tener conexión a Internet.

IV. Prueba de campo

Hemos probado el sensor de hardware en piscinas privadas, públicas y escolares. La recopilación de datos del grupo de estos encuestados nos permitió analizar la capacidad del hardware.

Puede colocar el MKR1000 y el sensor en una caja y ponerlo en su piscina lejos de la contaminación del agua. Al hacer esto, puede controlar la calidad de su agua y normalizarla colocando los productos químicos deseados.

Pronto subiremos el tutorial sobre cómo poner todos los circuitos dentro de esta caja y el metraje real de las pruebas.

V. Resultados

Espero que este tutorial ayude a las personas a construir su propio dispositivo de monitoreo de calidad del agua de la piscina. Que haya una mayor conciencia sobre la degradación continua de la calidad del agua de la piscina, ya que las personas tienden a centrarse más en las comodidades que se ofrecen en lugar de comprobar qué tan seguras son. También tienen la intención de contribuir a la comunidad al poder proporcionar un medio para hacer que las pruebas de calidad del agua sean más eficientes y efectivas sin el sacrificio innecesario de recursos.

¡Feliz edificio! :)

Código

  • Códigos Arduino MKR1000
Códigos Arduino MKR1000 C / C ++
Sube estos códigos a tu Arduino MKR1000

Visite esto en GitHub> https://github.com/imjeffparedes/iot-water-quality-artik
/******************** Aquí está mi código para Monitoreo de dispositivos de calidad del agua publicado en https://www.hackster.io/animo/water-quality-moniroting-840fea*******************/#include  #include  #include  #include  #include  #include  #include  / ** Sensor de temperatura Inicialización ** / # define ONE_WIRE_BUS 1 // El cable de datos está conectado al puerto digital 1 de ArduinoOneWire oneWire (ONE_WIRE_BUS); // Configure una instancia oneWire para comunicarse con cualquier dispositivo OneWire // (no solo IC de temperatura Maxim / Dallas) Sensores de temperatura Dallas (&oneWire); // Pase nuestra referencia oneWire a la temperatura de Dallas. / ** ARTIK Cloud REST Initialization ** / char server [] ="api.artik.cloud"; // Puerto de Hostint de la API de Samsung ARTIK Cloud =443; // 443 para HTTPS char buf [200]; // datos del cuerpo para almacenar el JSON que se enviará a ARTIK cloud String deviceID ="artik cloud device id"; // ponga aquí su ID de dispositivo creado a partir del tutorial String deviceToken ="artik cloud device token"; // coloque el token de su dispositivo aquí creado a partir del tutorial / ** inicialización del medidor de pH ** / # defina SensorPin A1 // medidor de pH Salida analógica a Arduino Entrada analógica 1 # defina Offset 0.00 // compensación de desviación # defina muestreoIntervalo 20 # defina ArrayLenth 40 // tiempos de colecciónint pHArray [ArrayLenth]; // Almacena el valor medio de la retroalimentación del sensorint pHArrayIndex =0; int status =-1; int millis_start; / ** Configuración Wifi ** / # define WIFI_AP "tu ssid wifi" #define WIFI_PWD "contraseña wifi" WiFiSSLClient wifi; Cliente HttpClient =HttpClient (wifi, servidor, puerto); configuración nula (nula) {millis_start =millis (); Serial.begin (9600); startWifi (); // empezar a conectarse a wifi} void loop (void) {/ * Adquirir la temperatura actual * / float celsius =0; sensores.requestTemperaturas (); // Envía el comando para obtener temperaturas celsius =sensors.getTempCByIndex (0); sensores.requestTemperaturas (); // Envía el comando para obtener temperaturas celsius =sensors.getTempCByIndex (0); / * Adquiriendo valor de pH actual * / tiempo de muestreo largo sin signo estático =milis (); printTime largo sin firmar estático =millis (); flotador estático pHValue, voltaje; if (millis () - sampleTime> sampleInterval) {pHArray [pHArrayIndex ++] =analogRead (SensorPin); if (pHArrayIndex ==ArrayLenth) pHArrayIndex =0; voltaje =promedio de matriz (pHArray, ArrayLenth) * 5.0 / 1024; pHValue =3.5 * voltaje + Offset; sampleTime =millis (); } Serial.println ("=========================================" ); Serial.println ("Enviaremos estos datos json"); // imprimir en formato json Serial.println ("datos:{"); Serial.print ("ph:"); Serial.print (pHValue); Serial.print (", temp:"); Serial.print (celsius); Serial.println ("}"); Serial.println (""); Serial.println ("Empezar a enviar datos"); String contentType ="aplicación / json"; String AuthorizationData ="Portador" + deviceToken; // Token de dispositivo int len ​​=loadBuffer (celsius, pHValue); Serial.println ("Temp. De envío:" + Cadena (celsius) + "y ph:" + Cadena (pHValue)); Serial.println ("Enviar POST a ARTIK Cloud API"); client.beginRequest (); client.post ("/ v1.1 / messages"); //, contentType, buf client.sendHeader ("Autorización", AuthorizationData); client.sendHeader ("Tipo de contenido", "aplicación / json"); client.sendHeader ("Longitud de contenido", len); client.endRequest (); client.print (buf); // imprimir respuesta de api int statusCode =client.responseStatusCode (); Cadena de respuesta =client.responseBody (); Serial.println (""); Serial.print ("Código de estado:"); Serial.println (código de estado); Serial.print ("Respuesta:"); Serial.println (respuesta); retraso (1000); // retraso de la actualización} / * Iniciar conexión a Wifi * / void startWifi () {Serial.println ("Conectando MKR1000 a la red ..."); // WiFi.begin (); // intenta conectarse a la red Wifi:while (status! =WL_CONNECTED) {Serial.print ("Intentando conectarse a WPA SSID:"); Serial.println (WIFI_AP); WiFi.begin (WIFI_AP, WIFI_PWD); // esperar 10 segundos para la conexión:delay (10000); estado =WiFi.status (); }} / * DfRobot pH Meter Source * / double avergearray (int * arr, int number) {int i; int max, min; doble promedio; cantidad larga =0; if (número <=0) {Serial.println ("¡Número de error de la matriz a promediar! / n"); return 0; } si (número <5) {// menor que 5, calcula directamente las estadísticas de (i =0; i  max) {cantidad + =max; // arr> max max =arr [i]; } más {cantidad + =arr [i]; // min <=arr <=max}} // si} // para avg =(doble) cantidad / (número-2); } // if return avg;} / * Buffer para enviar en REST * / int loadBuffer (temperatura flotante, ph flotante) {StaticJsonBuffer <200> jsonBuffer; // reserva un lugar en la memoria JsonObject &root =jsonBuffer.createObject (); // crea objetos raíz root ["sdid"] =deviceID; root ["tipo"] ="mensaje"; JsonObject &dataPair =root.createNestedObject ("datos"); // crea objetos anidados dataPair ["temp"] =temp; dataPair ["ph"] =ph; root.printTo (buf, tamaño de (buf)); // Impresión JSON al búfer return (root.measureLength ()); // también devuelve la longitud} 

Esquemas

Conexión de placa de pruebas de MKR1000 y sensores

Proceso de manufactura

  1. El uso de SaaS y la nube requiere una gestión de datos cuidadosa
  2. A Cloud Infinity y más allá
  3. Monitoreo de aplicaciones en la nube y usted
  4. Seguridad y beneficios importantes de usar Cloud Linux
  5. Sensor de temperatura Python y Raspberry Pi
  6. Monitoreo de la temperatura ambiente con Moteino's y Raspberry Pi
  7. Bricolaje:Regulación y monitoreo de temperatura para HomeBrew
  8. Monitoreo remoto del clima usando Raspberry Pi
  9. Sistema de monitoreo de basura y calidad del aire interior
  10. Voltímetro de bricolaje con Arduino y un teléfono inteligente
  11. Aplicaciones y beneficios de usar una solución de monitoreo de gas