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

Arduino - Stuur temperatuur naar internet via serieel

Componenten en benodigdheden

Arduino UNO
× 1
PHPoC WiFi Shield 2 voor Arduino
× 1
Adafruit DS18B20 temperatuursensor
× 1
Jumperdraden
× 1

Over dit project

Alleen al door Serial.println (temperatuur) te gebruiken, kunnen we de temperatuur via internet verzenden. Met behulp van een ingebouwde Web Serial Plotter kunnen we de temperatuur op internet visualiseren ZONDER webprogrammering.

Als je een beginner bent, kun je meer te weten komen over wifi en sensor in Arduino - Wifi en Arduino - DS18B20-tutorials over temperatuursensoren

Demonstratie

.

Hoe het werkt

  • Arduino leest de temperatuurwaarde van de sensor en verzendt deze via serieel
  • Toegang tot Web Serial Plotter vanuit een browser op mobiele telefoon of pc
  • Temperatuur wordt automatisch doorgestuurd naar internet.
  • Web visualiseert temperatuur op internet
  • Standaard werkt Web Serial Plotter hetzelfde als Serial Plotter op Arduino IDE. We moeten het aanpassen om ook de titel van de X-as, de titel van de Y-as, het temperatuurbereik en het aantal weergegeven gegevensmonsters toe te voegen. Dit kan via een instellingenpagina.

Stapsgewijze instructies

1. Bedrading

  • Stapel PHPoC Wifi Shield 2 of PHPoC Shield 2 op Arduino
  • Bedrading zoals afbeeldingen in schematisch gedeelte

2. Arduino-code compileren en uploaden

Zie code in 'Arduino-code - korte bemonsteringsperiode'

3. Web Serial Plotter aanpassen

  • Toegang tot Web Serial Plotter door het IP-adres van PHPoC WiFi Shield te typen
  • Klik op de link "Setup" naar de aanpassingspagina
  • Pas parameters aan zoals hierboven en sla op

4. Resultaat

  • Klik op de knop Verbinden om het resultaat te zien

Temperatuur bewaken gedurende lange periode

Als de temperatuur met een klein interval (bijv. seconden) wordt bemonsterd, hoeven we alleen de temperatuurwaarde naar Serieel af te drukken omdat we kunnen wachten om de grafiek te zien.

Wat gebeurt er als we de temperatuur dagelijks of elk uur willen controleren? We kunnen NIET wachten om alle grafieken te zien.

Oplossing :we slaan het nummer van de laatste bemonsteringstemperaturen op Arduino op en drukken het regelmatig af.

We willen bijvoorbeeld de temperatuurweergave op de grafiek zien met gedurende 100 uur. De eenheid is uur. We moeten elk uur gegevens van de sensor lezen, deze opslaan in een cirkelwachtrij (wachtrijlengte is 100). Elke seconde printen we alle 100 voorbeeldgegevens uit. Daarom kunnen we de temperatuurgrafiek van de afgelopen 100 uur zien zonder 100 uur te wachten.

U kunt de code zien in 'Arduino-code - lange bemonsteringsperiode'

De beste Arduino-starterkit voor beginners

Zie de beste Arduino-kit voor beginners

Code

  • Arduino-code - korte bemonsteringsperiode
  • Arduino-code - Lange bemonsteringsperiode (dagelijks, elk uur...)
Arduino-code - korte bemonsteringsperiodeArduino
#include #include #include #define SAMPLE_INTERVAL 1000 // in ms// Datadraad is aangesloten op poort 8 op de ArduinoOneWire oneWire(8);DallasTemperature sensoren(&oneWire);unsigned long lastSampleTime;void setup() { Serial.begin(9600); while(!Serial); sensoren.begin(); Phpoc.begin(); lastSampleTime =millis();}void loop() {if((millis() - lastSampleTime)> SAMPLE_INTERVAL) { sensors.requestTemperatures(); float temp =sensoren.getTempCByIndex(0); Serieel.println(temp); lastSampleTime =millis(); }}
Arduino-code - lange bemonsteringsperiode (dagelijks, elk uur...)Arduino
#include #include #include #define UPDATE_INTERVAL 1000 // in ms#define SAMPLE_INTERVAL 60*60*1000 // 1 uur// Datakabel is aangesloten in poort 8 op de ArduinoOneWire oneWire(8);DallasTemperature sensors(&oneWire);unsigned long lastSampleTime;unsigned long lastUpdateTime;float temps[100];int index;void setup() { Serial.begin(9600); while(!Serial); sensoren.begin(); Phpoc.begin(); lastSampleTime =millis(); lastUpdateTime =millis(); index =0;}void loop() {if((millis() - lastSampleTime)> SAMPLE_INTERVAL) { sensors.requestTemperatures(); float temp =sensoren.getTempCByIndex(0); temps[index] =temp; index =(index + 1) % 100; lastSampleTime =millis(); } if((millis() - lastUpdateTime)> UPDATE_INTERVAL) { for(int i =0; i <100; i++) { Serial.println(temps[(index - i + 100)%100]); } lastUpdateTime =millis(); }}

Schema's

1. Stapel PHPoC Wifi Shield 2 of PHPoC Shield 2 op Arduino
2. Bedrading zoals onderstaande afbeelding:

Productieproces

  1. Vochtigheid/temperatuur van internet halen
  2. Eenvoudige temperatuur en vochtigheid op Raspberry Pi
  3. Web-gestuurde DMX-controller
  4. Atmel AT89-serie programmeren via Arduino
  5. Temperatuur- en vochtigheidsdatalogger
  6. Contactloze temperatuurbewakingspoort
  7. Arduino - ontgrendeling webpatroon
  8. SMART temperatuurbewaking voor scholen
  9. Temperatuurgestuurde houtskoolroker
  10. Arduino - Tekenen via internet met stappenmotorcontroller
  11. Temperatuurbewaking op smartphone