Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Surveillance de la qualité de l'eau à l'aide de MKR1000 et ARTIK Cloud

Composants et fournitures

Arduino MKR1000
× 1
Câbles de raccordement (générique)
× 1
DFRobot pH-mètre
× 1
Résistance 4.75k ohm
× 1
Sonde de température
× 1

Applications et services en ligne

Samsung ARTIK Cloud pour IoT
Arduino IDE

À propos de ce projet

I. Objectif

L'objectif principal de ce projet est d'utiliser Samsung ARTIK Cloud pour surveiller les niveaux de pH et de température des piscines.

II. Configuration du nuage ARTIK

Étape 1. Création de votre nouvel appareil

Inscrivez-vous avec ARTIK Cloud. Allez sur le site du développeur et créez un nouveau "type d'appareil".

Entrez l'affichage souhaité et le nom unique.

Créer un nouveau manifeste

Saisissez le nom du champ et une autre description

Cliquez sur Enregistrer, puis accédez à Activer l'onglet Manifeste

Cliquez sur le bouton ACTIVE MANIFEST pour terminer et vous serez redirigé ici

La création du type d'appareil est terminée !

Créons maintenant votre application qui utilisera cet appareil.

Étape 2. Création de votre application

Accédez aux applications Cloud ARTIK.

Cliquez sur nouvelle application

Saisissez le nom de votre application et l'URL de redirection d'authentification souhaités.

Notez que l'URL de redirection d'authentification est requise. Il est utilisé pour authentifier les utilisateurs de cette application et sera donc redirigé vers cette URL si vous avez besoin de vous connecter.

Nous avons utilisé http://localhost/index/ comme exemple.

Définissez maintenant l'autorisation de lecture et d'écriture de votre application, accédez à votre appareil, puis enregistrez.

Félicitations, vous avez maintenant votre application!

Connectons maintenant cette application.

Étape 3. Connectez votre appareil

Accédez à mes appareils et cliquez sur connecter un autre appareil.

Cliquez sur votre nouveau type d'appareil créé précédemment, puis cliquez sur Connecter l'appareil.

Cliquez sur les paramètres de votre appareil connecté.

Prenez note de ces informations car vous en aurez besoin dans le programme.

Accédez maintenant à votre appareil connecté

Terminé pour la configuration d'ARTIK Cloud. Une fois votre matériel installé, le graphique contiendra des données.

III. Configuration du capteur matériel

Étape 1. Connectez les capteurs de température et de pH au MKR1000.

Voici le schéma :

  • Temp GND à MRK1000 GND
  • Temp OUT vers MKR1000 Broche numérique 1
  • Temp VCC vers MKR1000 5V
  • Connectez une résistance de 4,7 K à Temp VCC et Temp OUT
  • pH GND à MRK1000 GND
  • pH OUT vers MKR1000 Broche analogique 1
  • pH VCC vers MKR1000 5V

Voici mon exemple de câblage

Si vous avez remarqué, nous avons ajouté une prise audio pour un détachement facile du capteur de température. Mais ceci est facultatif.

Voici la connexion du capteur de température à la prise.

Étape 2. Configurez le logiciel requis

Accédez à Arduino IDE et ajoutez la carte MKR1000.

Recherchez mkr1000 et cliquez sur installer

Ajouter la bibliothèque requise

Recherchez les bibliothèques à installer :

  • ArduinoJson - nous l'utiliserons pour envoyer des données JSON à ARTIK Cloud
  • ArduinoHttpClient - hôte pour se connecter à l'API
  • OneWire - nécessaire pour lire l'entrée numérique du capteur de température
  • DallasTemperature – Bibliothèque requise pour le capteur de température Dallas

Terminez l'ajout du logiciel requis !

Étape 3. Téléchargez le programme

Branchez maintenant le MKR1000 à votre PC/ordinateur portable.

Téléchargez le logiciel sur GitHub ici

Modifiez les informations suivantes :

Ensuite, téléchargez le code du logiciel sur MKR1000 et commencez la surveillance.

Remarque :votre WiFi doit avoir une connexion Internet.

IV. Test sur le terrain

Nous avons testé le capteur matériel pour les piscines privées, publiques et scolaires. La collecte des données du pool de ces répondants nous a permis d'analyser la capacité du matériel.

Vous pouvez placer le MKR1000 et le capteur sur une boîte et le mettre sur votre piscine à l'abri de la contamination de l'eau. En faisant cela, vous pouvez surveiller la qualité de votre eau et la normaliser en plaçant les produits chimiques souhaités.

Bientôt, nous téléchargerons le tutoriel sur la façon de mettre tous les circuits à l'intérieur de cette boîte et les images réelles des tests.

V. Résultats

J'espère que ce didacticiel aidera les gens à créer leur propre appareil de surveillance de la qualité de l'eau de piscine. Puisse-t-il y avoir une prise de conscience accrue de la dégradation continue de la qualité de l'eau des piscines, car les gens ont tendance à se concentrer davantage sur les équipements proposés au lieu de vérifier leur sécurité. Ils ont également l'intention de contribuer à la communauté en étant en mesure de fournir un moyen de rendre les tests de qualité de l'eau plus efficients et efficaces sans sacrifier inutilement des ressources.

Bonne construction ! :)

Code

  • Codes Arduino MKR1000
Codes Arduino MKR1000C/C++
Téléchargez ces codes sur votre Arduino MKR1000

Visitez ceci sur GitHub> https://github.com/imjeffparedes/iot-water-quality-artik
/************************Voici mon code pour Surveillance de la qualité de l'eau publiée dans https://www.hackster.io/animo/water-quality-moniroting-840fea************************/#include #include #include  #include  #include  #include #include /**Capteur de température Initialisation**/#define ONE_WIRE_BUS 1 // Le fil de données est branché sur le port numérique 1 d'ArduinoOneWire oneWire(ONE_WIRE_BUS); // Configurez une instance oneWire pour communiquer avec tous les //appareils OneWire (pas seulement les circuits intégrés de température Maxim/Dallas)DallasTemperature sensor(&oneWire); // Transmettez notre référence oneWire à la température de Dallas. /** Initialisation REST ARTIK Cloud **/char server[] ="api.artik.cloud"; // Port hôte de l'API Samsung ARTIK Cloud =443 ; // 443 pour HTTPS char buf[200]; // données corporelles pour stocker le JSON à envoyer au cloud ARTIK String deviceID ="artik cloud device id"; // mettez l'identifiant de votre appareil ici créé à partir du didacticiel String deviceToken ="jeton d'appareil artik cloud"; // placez le jeton de votre appareil ici créé à partir du didacticiel/** initialisation du pH-mètre**/#define SensorPin A1 // pH-mètre Sortie analogique vers Arduino Analog Input 1#define Offset 0.00 // compensation de déviation#define samplingInterval 20#define ArrayLenth 40 // heures de collectionint pHArray[ArrayLenth]; // Stocke la valeur moyenne du feedback du capteurint pHArrayIndex=0; int status =-1;int millis_start;/**Paramètre Wifi**/#define WIFI_AP "votre ssid wifi"#define WIFI_PWD "mot de passe wifi"WiFiSSLClient wifi ; HttpClient client =HttpClient (wifi, serveur, port); configuration void (void) { millis_start =millis (); Serial.begin(9600); startWifi(); //commencer à se connecter au wifi}void loop(void) { /*Acquisition de la température actuelle*/ float celsius =0; capteurs.requestTemperatures(); // Envoie la commande pour obtenir les températures celsius =sensor.getTempCByIndex(0); capteurs.requestTemperatures(); // Envoie la commande pour obtenir les températures celsius =sensor.getTempCByIndex(0); /*Acquisition de la valeur pH actuelle*/ static unsigned long samplingTime =millis(); statique long non signé printTime =millis(); flotteur statique pHValue, tension; if(millis()-samplingTime> samplingInterval) { pHArray[pHArrayIndex++]=analogRead(SensorPin); if(pHArrayIndex==ArrayLenth)pHArrayIndex=0; tension =moyenne (pHArray, ArrayLenth)*5.0/1024 ; pHValeur =3,5 * tension + décalage ; samplingTime=millis(); } Serial.println("============================================" ); Serial.println("Nous enverrons ces données json"); // imprimer au format json Serial.println("data:{ "); Serial.print("ph:"); Serial.print(pHValue); Serial.print(" , temp:"); Serial.print(celsius); Serial.println("} "); Serial.println(""); Serial.println("Commencer à envoyer des données"); String contentType ="application/json" ; String AuthorizationData ="Bearer " + deviceToken ; //Device Token int len ​​=loadBuffer(celsius,pHValue); Serial.println("Envoi temp :"+String(celsius) +" et ph :"+String(pHValue) ); Serial.println("Envoyer POST à ​​l'API Cloud ARTIK"); client.beginRequest(); client.post("/v1.1/messages"); //, contentType, buf client.sendHeader("Authorization", AuthorizationData); client.sendHeader("Type de contenu", "application/json"); client.sendHeader("Content-Length", len); client.endRequest(); client.print(buf); // affiche la réponse de l'api int statusCode =client.responseStatusCode(); Réponse de chaîne =client.responseBody(); Serial.println(""); Serial.print("Code d'état :"); Serial.println(statusCode); Serial.print("Réponse :"); Serial.println(réponse); retard(1000); // délai de mise à jour }/*Init Connection to Wifi*/void startWifi(){ Serial.println("Connexion du MKR1000 au réseau..."); // Wi-Fi.commence(); // tentative de connexion au réseau Wifi :while ( status !=WL_CONNECTED ) { Serial.print("Tentative de connexion au WPA SSID :"); Serial.println(WIFI_AP); WiFi.begin(WIFI_AP, WIFI_PWD); // attend 10 secondes pour la connexion :delay(10000); état =WiFi.état(); }}/*Source du pH-mètre DfRobot*/double avergearray(int* arr, int number){ int i; entier max, min; moyenne double ; montant long=0 ; if(nombre<=0){ Serial.println("Numéro d'erreur pour le tableau à parcourir !/n"); renvoie 0 ; } if(nombre<5){ //moins de 5, calcule directement les statistiques pour(i=0;imax){ montant+=max; //arr>max max=arr[i]; }autre{ montant+=arr[i]; //min<=arr<=max } }//if }//for moy =(double)amount/(number-2); }//if return avg;}/*Buffer à envoyer sur REST*/int loadBuffer(float temp, float ph ) { StaticJsonBuffer<200> jsonBuffer; // réserve une place en mémoire JsonObject&root =jsonBuffer.createObject(); // crée des objets racine root["sdid"] =deviceID; root["type"] ="message"; JsonObject&dataPair =root.createNestedObject("données"); // crée des objets imbriqués dataPair["temp"] =temp; dataPair["ph"] =ph; root.printTo(buf, sizeof(buf)); // JSON-print to buffer return (root.measureLength()); // renvoie également la longueur } 

Schémas

Connexion Breadboard du MKR1000 et des capteurs

Processus de fabrication

  1. L'utilisation du SaaS et du cloud nécessite un traitement minutieux des données
  2. Vers Cloud Infinity et au-delà
  3. La surveillance des applications cloud et vous
  4. Sécurité et avantages importants de l'utilisation de Cloud Linux
  5. Capteur de température Python et Raspberry Pi
  6. Surveillance de la température ambiante avec Moteino's et Raspberry Pi
  7. DIY :surveillance et régulation de la température pour HomeBrew
  8. Surveillance à distance de la météo à l'aide de Raspberry Pi
  9. Applications et avantages de l'utilisation d'une solution de surveillance des gaz