Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Überwachung der Wasserqualität mit MKR1000 und ARTIK Cloud

Komponenten und Verbrauchsmaterialien

Arduino MKR1000
× 1
Jumper (generisch)
× 1
DFRobot pH-Meter
× 1
Widerstand 4,75 kOhm
× 1
Temperaturfühler
× 1

Apps und Onlinedienste

Samsung ARTIK Cloud für IoT
Arduino-IDE

Über dieses Projekt

I. Ziel

Das Hauptziel dieses Projekts ist es, Samsung ARTIK Cloud zu verwenden, um den pH-Wert und die Temperatur von Schwimmbädern zu überwachen.

II. ARTIK Cloud-Einrichtung

Schritt 1. Erstellen Sie Ihr neues Gerät

Melden Sie sich bei ARTIK Cloud an. Gehen Sie zur Entwicklerseite und erstellen Sie einen neuen "Gerätetyp".

Geben Sie Ihre gewünschte Anzeige und Ihren eindeutigen Namen ein.

Neues Manifest erstellen

Geben Sie den Feldnamen und eine andere Beschreibung ein

Klicken Sie auf Speichern und navigieren Sie dann zum Reiter Manifest aktivieren

Klicken Sie zum Beenden auf die Schaltfläche AKTIVES MANIFEST und Sie werden hierher weitergeleitet

Gerätetyp erstellt!

Lassen Sie uns nun Ihre Anwendung erstellen, die dieses Gerät verwendet.

Schritt 2. Bewerbung erstellen

Navigieren Sie zu ARTIK Cloud-Anwendungen.

Klicken Sie auf neue Anwendung

Geben Sie den gewünschten Anwendungsnamen und die Authentifizierungs-Weiterleitungs-URL ein.

Beachten Sie, dass die Authentifizierungs-Umleitungs-URL erforderlich ist. Es wird verwendet, um die Benutzer dieser Anwendung zu authentifizieren und wird daher zu dieser URL umgeleitet, wenn eine Anmeldung erforderlich ist.

Wir haben http://localhost/index/ als Beispiel verwendet.

Legen Sie nun Ihre Anwendungsberechtigung zum Lesen und Schreiben fest, navigieren Sie zu Ihrem Gerät und speichern Sie es.

Herzlichen Glückwunsch, Sie haben jetzt Ihre Bewerbung!

Jetzt können wir diese Anwendung verbinden.

Schritt 3. Verbinden Sie Ihr Gerät

Navigieren Sie zu „Meine Geräte“ und klicken Sie auf „Anderes Gerät verbinden“.

Klicken Sie auf Ihren zuvor erstellten neuen Gerätetyp und dann auf Gerät verbinden.

Klicken Sie auf die Einstellungen Ihres verbundenen Geräts.

Notieren Sie sich diese Informationen, da Sie sie im Programm benötigen.

Navigieren Sie nun zu Ihrem verbundenen Gerät

Fertig für die ARTIK Cloud-Einrichtung. Sobald Ihre Hardware hochgefahren ist, enthält das Diagramm Daten.

III. Hardware-Sensor-Setup

Schritt 1. Schließen Sie die Temperatur- und pH-Sensoren an den MKR1000 an.

Hier ist das Diagramm:

  • Temp GND zu MRK1000 GND
  • Temp OUT an MKR1000 Digital Pin 1
  • Temp VCC auf MKR1000 5V
  • Schließen Sie einen 4,7K-Widerstand an Temp VCC und Temp OUT an
  • pH GND zu MRK1000 GND
  • pH OUT an MKR1000 Analog Pin 1
  • pH VCC zu MKR1000 5V

Hier ist meine Beispielverdrahtung

Wenn Sie es bemerkt haben, haben wir eine Audiobuchse zum einfachen Abnehmen des Temperatursensors hinzugefügt. Dies ist jedoch optional.

Hier ist der Anschluss des Temperatursensors an die Buchse.

Schritt 2. Erforderliche Software einrichten

Gehen Sie zu Arduino IDE und fügen Sie das MKR1000-Board hinzu.

Suchen Sie nach mkr1000 und klicken Sie auf Installieren

Erforderliche Bibliothek hinzufügen

Suchen Sie nach zu installierenden Bibliotheken:

  • ArduinoJson – wir verwenden dies, um JSON-Daten an ARTIK Cloud zu senden
  • ArduinoHttpClient - Host für die Verbindung mit der API
  • OneWire - wird benötigt, um den digitalen Eingang vom Temperatursensor zu lesen
  • DallasTemperature - Dallas Temperatursensor erforderliche Bibliothek

Schließen Sie das Hinzufügen der erforderlichen Software ab!

Schritt 3. Laden Sie das Programm hoch

Schließen Sie nun den MKR1000 an Ihren PC/Laptop an.

Laden Sie die Software hier auf GitHub herunter

Ändern Sie die folgenden Informationen:

Laden Sie dann den Softwarecode auf MKR1000 hoch und starten Sie die Überwachung.

Hinweis:Ihr WLAN muss über eine Internetverbindung verfügen.

IV. Feldtest

Wir haben den Hardwaresensor für private, öffentliche und Schulschwimmbäder getestet. Die Erfassung der Daten aus dem Pool dieser Befragten ermöglichte es uns, die Leistungsfähigkeit der Hardware zu analysieren.

Sie können den MKR1000 und den Sensor auf einer Schachtel platzieren und ihn an Ihrem Swimmingpool vor Wasserverschmutzung schützen. Auf diese Weise können Sie die Qualität Ihres Wassers überwachen und durch Einbringen der gewünschten Chemikalien normalisieren.

In Kürze werden wir das Tutorial hochladen, wie man alle Schaltungen in diese Box einfügt und das eigentliche Filmmaterial der Tests.

V. Ergebnisse

Ich hoffe, dieses Tutorial hilft den Leuten, ihr eigenes DIY-Gerät zur Überwachung der Wasserqualität von Schwimmbädern zu bauen. Möge das Bewusstsein für die kontinuierliche Verschlechterung der Wasserqualität in Schwimmbädern zunehmen, da die Menschen dazu neigen, sich mehr auf die angebotenen Annehmlichkeiten zu konzentrieren, anstatt zu prüfen, wie sicher sie sind. Sie beabsichtigen auch, einen Beitrag zur Gemeinschaft zu leisten, indem sie in der Lage sind, die Wasserqualitätsprüfung effizienter und effektiver zu gestalten, ohne unnötige Ressourcen zu opfern.

Viel Spaß beim Bauen! :)

Code

  • Arduino MKR1000-Codes
Arduino MKR1000-CodesC/C++
Laden Sie diese Codes auf Ihren Arduino MKR1000 hoch

Besuchen Sie dies auf GitHub> https://github.com/imjeffparedes/iot-water-quality-artik
/********************Hier ist mein Code für Geräteüberwachung der Wasserqualität veröffentlicht in https://www.hackster.io/animo/water-quality-moniroting-840fea********************/#include #include #include  #include  #include  #include #include /**Temperatursensor Initialisierung**/#define ONE_WIRE_BUS 1 // Datenkabel wird in digitalen Port 1 von ArduinoOneWire oneWire (ONE_WIRE_BUS) eingesteckt; // Richten Sie eine oneWire-Instanz ein, um mit beliebigen OneWire- //Geräten zu kommunizieren (nicht nur Maxim/Dallas-Temperatur-ICs)DallasTemperature-Sensoren(&oneWire); // Übergeben Sie unsere oneWire-Referenz an Dallas Temperature. /** ARTIK Cloud REST Initialisierung **/char server[] ="api.artik.cloud"; // Samsung ARTIK Cloud API Hostint-Port =443; // 443 für HTTPS char buf[200]; // Körperdaten zum Speichern des an die ARTIK-Cloud zu sendenden JSON String deviceID ="artik cloud device id"; // Geben Sie hier Ihre Geräte-ID ein, die aus dem Tutorial erstellt wurde String deviceToken ="artik Cloud-Gerätetoken"; // Legen Sie Ihr Geräte-Token hier ab, das aus dem Tutorial erstellt wurde/**pH-Meter-Initialisierung**/#define SensorPin A1 // pH-Meter Analogausgang zum Arduino-Analogeingang 1#define Offset 0,00 // Abweichungskompensation#define SamplingInterval 20#define ArrayLenth 40 // Sammlungszeitenint pHArray[ArrayLenth]; // Speichere den Durchschnittswert des Sensors feedbackint pHArrayIndex=0; int status =-1;int millis_start;/**Wifi-Einstellung**/#define WIFI_AP "Ihre WLAN-SSID"#define WIFI_PWD "WLAN-Passwort"WiFiSSLClient wifi; HttpClient-Client =HttpClient (WLAN, Server, Port);void setup (void) { millis_start =millis (); Serial.begin (9600); startWifi(); // Verbindung zum WLAN starten} ungültige Schleife (void) {/* Aktuelle Temperatur ermitteln*/ Float Celsius =0; sensoren.requestTemperatures(); // Senden Sie den Befehl zum Abrufen der Temperaturen Celsius =Sensoren.getTempCByIndex (0); sensoren.requestTemperatures(); // Senden Sie den Befehl zum Abrufen der Temperaturen Celsius =Sensoren.getTempCByIndex (0); /*Aktuellen pH-Wert erfassen*/ static unsigned long sampleTime =millis(); statisch unsigned long printTime =millis(); statischer Schwimmer pHWert,Spannung; if(millis()-samplingTime> sampleInterval) { pHArray[pHArrayIndex++]=analogRead(SensorPin); if(pHArrayIndex==ArrayLenth)pHArrayIndex=0; Spannung =Mittelwert (pHArray, ArrayLenth)*5,0/1024; pH-Wert =3,5 * Spannung + Offset; Abtastzeit=Millis(); } Serial.println("==========================================" ); Serial.println ( "Wir werden diese JSON-Daten senden"); // in das Json-Format drucken Serial.println ( "Daten:{"); Serial.print("ph:"); Serial.print (pHWert); Serial.print ( " , temp:"); Serial.print (Celsius); Serial.println("}"); Serial.println(""); Serial.println ("Starte das Senden von Daten"); String contentType ="application/json"; String AuthorizationData ="Bearer" + deviceToken; //Geräte-Token int len ​​=loadBuffer(celsius,pHValue); Serial.println("Sendetemp:"+String(celsius) +" und ph:"+String(pHValue)); Serial.println ("Post an ARTIK Cloud API senden"); client.beginRequest(); client.post("/v1.1/messages"); //, contentType, buf client.sendHeader("Authorization", AuthorizationData); client.sendHeader("Content-Type", "application/json"); client.sendHeader("Inhaltslänge", len); client.endRequest(); client.print(buf); // Antwort von API ausgeben int statusCode =client.responseStatusCode(); String-Antwort =client.responseBody(); Serial.println(""); Serial.print("Statuscode:"); Serial.println (statusCode); Serial.print("Antwort:"); Serial.println (Antwort); Verzögerung (1000); // Verzögerung des Updates}/*Init Connection to Wifi*/void startWifi() {Serial.println("Connecting MKR1000 to network..."); // WiFi.begin(); // Versuch, eine Verbindung zum Wifi-Netzwerk herzustellen:while ( status !=WL_CONNECTED ) { Serial.print ( "Versuch, eine Verbindung zu WPA SSID herzustellen:"); Serial.println (WIFI_AP); WiFi.begin(WIFI_AP, WIFI_PWD); // 10 Sekunden auf Verbindung warten:delay(10000); status =WiFi.status(); }}/* DfRobot pH Meter Source*/double averearray(int* arr, int number){int i; intmax,min; doppelter Durchschnitt; langer Betrag =0; If (Zahl <=0) {Serial.println ( "Fehlernummer für das Array zur Mittelwertbildung! / n"); 0 zurückgeben; } if(number<5){ //weniger als 5, direkt berechnete Statistik for(i=0;imax){ Betrag+=max; //arr>max max=arr[i]; }sonst{ Betrag+=arr[i]; //min<=arr<=max }}//if }//for avg =(double)mount/(number-2); } // if return avg;}/*Puffer zum Senden auf REST*/int loadBuffer(float temp, float ph) { StaticJsonBuffer<200> jsonBuffer; // Platz im Speicher reservieren JsonObject&root =jsonBuffer.createObject(); // Root-Objekte erstellen root["sdid"] =deviceID; root["Typ"] ="Nachricht"; JsonObject&dataPair =root.createNestedObject("data"); // verschachtelte Objekte erstellen dataPair["temp"] =temp; dataPair["ph"] =ph; root.printTo(buf, sizeof(buf)); // JSON-Druck in Pufferrückgabe (root.measureLength()); // auch Länge zurückgeben } 

Schaltpläne

Steckbrettverbindung von MKR1000 und Sensoren

Herstellungsprozess

  1. Die Verwendung von SaaS und Cloud erfordert eine sorgfältige Datenanalyse
  2. Zu Cloud Infinity und darüber hinaus
  3. Cloud Application Monitoring und Sie
  4. Sicherheit und wichtige Vorteile der Verwendung von Cloud Linux
  5. Python- und Raspberry Pi-Temperatursensor
  6. Überwachen der Raumtemperaturen mit Moteinos und Raspberry Pi
  7. DIY:Temperaturüberwachung und -regulierung für HomeBrew
  8. Wetterfernüberwachung mit Raspberry Pi
  9. Raumluftqualitäts- und Abfallüberwachungssystem
  10. Anwendungen und Vorteile der Verwendung einer Gasüberwachungslösung