Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Bewaking van de waterkwaliteit met MKR1000 en ARTIK Cloud

Componenten en benodigdheden

Arduino MKR1000
× 1
Jumperdraden (algemeen)
× 1
DFRobot pH-meter
× 1
Weerstand 4.75k ohm
× 1
Temperatuursonde
× 1

Apps en online services

Samsung ARTIK Cloud voor IoT
Arduino IDE

Over dit project

I. Doelstelling

Het primaire doel van dit project is om Samsung ARTIK Cloud te gebruiken om de pH- en temperatuurniveaus van zwembaden te bewaken.

II. ARTIK Cloud-configuratie

Stap 1. Uw nieuwe apparaat maken

Meld u aan bij ARTIK Cloud. Ga naar de ontwikkelaarssite en maak een nieuw "apparaattype".

Voer uw gewenste weergave en unieke naam in.

Nieuw manifest maken

Voer veldnaam en andere beschrijving in

Klik op Opslaan en ga vervolgens naar het tabblad Manifest activeren

Klik op de knop ACTIEF MANIFEST om te voltooien en u wordt hier doorgestuurd

Klaar met het maken van het apparaattype!

Laten we nu uw applicatie maken die dat apparaat zal gebruiken.

Stap 2. Uw aanvraag maken

Navigeer naar ARTIK Cloud-applicaties.

Klik op nieuwe applicatie

Voer de gewenste applicatienaam en authenticatie-omleidings-URL in.

Houd er rekening mee dat de omleidings-URL voor authenticatie vereist is. Het wordt gebruikt om de gebruikers van deze applicatie te authenticeren en zal daarom doorverwijzen naar deze url als ze moeten inloggen.

We gebruikten http://localhost/index/ als voorbeeld.

Stel nu uw applicatietoestemming in om te lezen en te schrijven, navigeer naar uw apparaat en sla op.

Gefeliciteerd, je hebt nu je sollicitatie!

Laten we nu die applicatie verbinden.

Stap 3. Verbind je apparaat

Navigeer naar mijn apparaten en klik op een ander apparaat aansluiten.

Klik op uw nieuwe apparaattype dat eerder is gemaakt en klik vervolgens op apparaat verbinden.

Klik op de instellingen van uw verbonden apparaat.

Noteer deze informatie, want je hebt ze nodig op het programma.

Navigeer nu naar uw verbonden apparaat

Klaar voor installatie van ARTIK Cloud. Zodra uw hardware klaar is, bevat de kaart gegevens.

III. Hardwaresensor instellen

Stap 1. Sluit de temperatuur- en pH-sensoren aan op de MKR1000.

Hier is het diagram:

  • Temp GND naar MRK1000 GND
  • Temp OUT naar MKR1000 digitale pin 1
  • Temp VCC naar MKR1000 5V
  • Sluit een weerstand van 4,7K aan op Temp VCC en Temp OUT
  • pH GND naar MRK1000 GND
  • pH OUT naar MKR1000 analoge pin 1
  • pH VCC naar MKR1000 5V

Hier is mijn voorbeeldbedrading

Als het je is opgevallen, hebben we een audio-aansluiting toegevoegd voor het eenvoudig loskoppelen van de temperatuursensor. Maar dit is optioneel.

Hier is de aansluiting van de temperatuursensor op de jack.

Stap 2. Vereiste software instellen

Ga naar Arduino IDE en voeg het MKR1000-bord toe.

Zoek mkr1000 en klik op installeren

Voeg vereiste bibliotheek toe

Zoeken naar bibliotheken om te installeren:

  • ArduinoJson - we gaan dit gebruiken om JSON-gegevens naar ARTIK Cloud te sturen
  • ArduinoHttpClient - host voor verbinding met API
  • OneWire - nodig om digitale invoer van temperatuursensor te lezen
  • DallasTemperature - Dallas Temperatuursensor vereist bibliotheek

Voltooi het toevoegen van de vereiste software!

Stap 3. Upload het programma

Sluit nu de MKR1000 aan op uw pc/laptop.

Download de software hier op GitHub

Wijzig de volgende informatie:

Upload vervolgens de softwarecode naar MKR1000 en begin met monitoren.

Let op:je wifi moet een internetverbinding hebben.

IV. Veldtest

We hebben de hardwaresensor getest op privé-, openbaar en schoolzwembad. Door de gegevens uit de pool van deze respondenten te verzamelen, konden we de mogelijkheden van de hardware analyseren.

U kunt de MKR1000 en sensor op een doos plaatsen en op uw zwembad plaatsen, weg van waterverontreiniging. Door dit te doen, kunt u de kwaliteit van uw water bewaken en normaliseren door de gewenste chemicaliën te plaatsen.

Binnenkort zullen we de tutorial uploaden over hoe je alle circuits in deze doos kunt plaatsen en de daadwerkelijke beelden van het testen.

V. Resultaten

Ik hoop dat deze tutorial mensen helpt om hun eigen doe-het-zelf-apparaat voor het bewaken van de waterkwaliteit van het zwembad te bouwen. Moge er een groter bewustzijn zijn met betrekking tot de voortdurende verslechtering van de kwaliteit van het zwembadwater, aangezien mensen de neiging hebben om zich meer te concentreren op de voorzieningen die worden aangeboden in plaats van te controleren hoe veilig ze zijn. Ze zijn ook van plan een bijdrage te leveren aan de gemeenschap door een middel te bieden om het testen van de waterkwaliteit efficiënter en effectiever te maken zonder onnodige opoffering van middelen.

Gelukkig gebouw! :)

Code

  • Arduino MKR1000-codes
Arduino MKR1000-codesC/C++
Upload deze codes naar je Arduino MKR1000

Bezoek dit op GitHub> https://github.com/imjeffparedes/iot-water-quality-artik
/********************Hier is mijn code voor Monitoring van waterkwaliteitsapparatuur gepubliceerd in https://www.hackster.io/animo/water-quality-moniroting-840fea********************/#include #include #include  #include  #include  #include #include /**Temperatuursensor Initialisatie**/#define ONE_WIRE_BUS 1 // Datadraad is aangesloten op digitale poort 1 van ArduinoOneWire oneWire (ONE_WIRE_BUS); // Stel een oneWire-instantie in om te communiceren met OneWire //-apparaten (niet alleen Maxim/Dallas-temperatuur-IC's)DallasTemperature-sensoren (&oneWire); // Geef onze oneWire-referentie naar Dallas Temperature door. /** ARTIK Cloud REST-initialisatie **/char server[] ="api.artik.cloud"; // Samsung ARTIK Cloud API Hostint-poort =443; // 443 voor HTTPS char buf [200]; // body-gegevens om de JSON op te slaan die naar de ARTIK-cloud moet worden verzonden. String deviceID ="artik cloud device id"; // plaats hier uw apparaat-ID gemaakt uit de tutorial String deviceToken ="artik cloud device token"; // plaats uw apparaattoken hier gemaakt van de tutorial/**pH-meterinitialisatie**/#define SensorPin A1 // pH-meter Analoge uitgang naar Arduino Analoge ingang 1#define Offset 0.00 // afwijking compenseren#define samplingInterval 20#define ArrayLenth 40 // tijden van collectieint pHArray [ArrayLenth]; // Bewaar de gemiddelde waarde van de sensor feedbackint pHArrayIndex=0; int status =-1;int millis_start;/**Wifi-instelling**/#define WIFI_AP "uw wifi ssid"#define WIFI_PWD "wifi-wachtwoord"WiFiSSSLClient wifi; HttpClient-client =HttpClient (wifi, server, poort); void setup (void) { millis_start =millis (); Serieel.begin(9600); startWifi(); // begin verbinding te maken met wifi} ongeldige lus (void) { /* Huidige temperatuur verkrijgen */ float celsius =0; sensoren.requestTemperatures(); // Stuur de opdracht om temperaturen celsius =sensors.getTempCByIndex (0) te krijgen; sensoren.requestTemperatures(); // Stuur de opdracht om temperaturen celsius =sensors.getTempCByIndex (0) te krijgen; /*Huidige pH-waarde verkrijgen*/ static unsigned long samplingTime =millis(); statische niet-ondertekende lange printTime =millis(); statische vlotter pHWaarde,spanning; if(millis()-samplingTime> samplingInterval) { pHArray[pHArrayIndex++]=analogRead(SensorPin); if(pHArrayIndex==ArrayLenth)pHArrayIndex=0; spanning =gemiddeldearray(pHArray, ArrayLenth)*5.0/1024; pH-waarde =3,5*spanning+offset; samplingTime=millis(); } Serial.println("===========================================" ); Serial.println("We sturen deze json-gegevens"); // print naar json-formaat Serial.println ("data:{ "); Serial.print("ph:"); Serial.print(pHValue); Serial.print(" , temp:"); Seriële.afdruk (celsius); Serieel.println("} "); Serieel.println(""); Serial.println("Begin met het verzenden van gegevens"); String contentType ="applicatie/json"; String AuthorizationData ="Bearer" + deviceToken; // Apparaattoken int len ​​=loadBuffer (celsius, pHValue); Serial.println("Verzendtemp:"+String(celsius) +" en ph:"+String(pHValue) ); Serial.println("Stuur POST naar ARTIK Cloud API"); cliënt.beginRequest(); client.post("/v1.1/messages"); //, contentType, buf client.sendHeader ("Autorisatie", AutorisatieData); client.sendHeader ("Inhoudstype", "toepassing/json"); client.sendHeader ("Inhoudslengte", len); klant.endRequest(); cliënt.print(buf); // print reactie van api int statusCode =client.responseStatusCode(); String respons =client.responseBody(); Serieel.println(""); Serial.print("Statuscode:"); Serial.println(statusCode); Serial.print("Reactie:"); Serial.println(antwoord); vertraging (1000); // vertraging van update }/*Init Connection to Wifi*/void startWifi(){ Serial.println("MKR1000 verbinden met netwerk..."); // WiFi.begin(); // poging om verbinding te maken met wifi-netwerk:while (status!=WL_CONNECTED) { Serial.print("Poging om verbinding te maken met WPA SSID:"); Seriële.println(WIFI_AP); WiFi.begin(WIFI_AP, WIFI_PWD); // wacht 10 seconden op verbinding:vertraging (10000); status =WiFi.status(); }}/*DfRobot pH-meter Bron*/double avergearray(int* arr, int number){ int i; int max, min; dubbel gemiddeld; lang bedrag=0; if(number<=0){ Serial.println("Foutnummer voor de array om te middelen!/n"); retourneer 0; } if(getal<5){ //minder dan 5, direct berekende statistieken voor(i=0;imax){ hoeveelheid+=max; //arr>max max=arr[i]; }anders{ bedrag+=arr[i]; //min<=arr<=max } }//if }//for avg =(double)amount/(number-2); }//if return avg;}/*Buffer om te verzenden op REST*/int loadBuffer (float temp, float ph) { StaticJsonBuffer<200> jsonBuffer; // reserveer plek in geheugen JsonObject&root =jsonBuffer.createObject(); // maak root-objecten root ["sdid"] =apparaat-ID; root["type"] ="bericht"; JsonObject&dataPair =root.createNestedObject("data"); // maak geneste objecten dataPair ["temp"] =temp; dataPair["ph"] =ph; root.printTo(buf, sizeof(buf)); // JSON-print om retour te bufferen (root.measureLength()); // retourneer ook lengte } 

Schema's

Breadboard-aansluiting van MKR1000 en sensoren

Productieproces

  1. Het gebruik van SaaS en de cloud vereist zorgvuldige gegevensverwarring
  2. Naar Cloud Infinity en verder
  3. Cloud Application Monitoring en u
  4. Beveiliging en belangrijke voordelen van het gebruik van Cloud Linux
  5. Python- en Raspberry Pi-temperatuursensor
  6. Kamertemperaturen bewaken met Moteino's en Raspberry Pi
  7. DIY:temperatuurbewaking en -regeling voor HomeBrew
  8. Bewaking op afstand van het weer met Raspberry Pi
  9. Binnenluchtkwaliteit en afvalbewakingssysteem
  10. DIY voltmeter met Arduino en smartphone
  11. Toepassingen en voordelen van het gebruik van een gasbewakingsoplossing