Arduino UNO & WiFi Shield: Tampilan Suhu Real-Time di Web melalui Serial
Komponen dan Perlengkapan
Arduino UNO — 1 unit
PHPoC WiFi Shield 2 untuk Arduino — 1 unit
Sensor Suhu Adafruit DS18B20 — 1 unit
Kabel Jumper — 1 set
Tentang Proyek Ini
Hanya dengan menggunakan Serial.println(temperature), kita dapat mengirim suhu melalui web. Menggunakan Web Serial Plotter bawaan, kita dapat memvisualisasikan suhu di web TANPA pemrograman web.
Jika Anda pemula, Anda dapat mempelajari tentang wifi dan sensor di Arduino - tutorial Wifi dan Arduino - sensor suhu DS18B20
Demonstrasi
.
Bagaimana Cara Kerjanya
Arduino membaca nilai suhu dari sensor dan mengirimkannya melalui Serial
Akses Web Serial Plotter dari browser di ponsel atau PC
Suhu otomatis diteruskan ke Web.
Web memvisualisasikan suhu di Web
Secara default, Web Serial Plotter bekerja sama seperti Serial Plotter pada Arduino IDE. Kita perlu menyesuaikannya untuk menambahkan judul sumbu X, judul sumbu Y, rentang suhu dan jumlah sampel data yang ditampilkan juga. Ini dapat dilakukan melalui halaman pengaturan.
Instruksi Langkah demi Langkah
1. Pengkabelan
Tempelkan PHPoC Wifi Shield 2 atau PHPoC Shield 2 pada Arduino
Pasang kabel seperti gambar di bagian Skematik
2. Kompilasi dan Unggah Kode Arduino
Lihat kode di "Kode Arduino - Periode Pemetaan Pendek"
3. Sesuaikan Web Serial Plotter
Akses Web Serial Plotter dengan mengetik alamat IP PHPoC WiFi Shield
Klik tautan "Setup" ke halaman penyesuaian
Sesuaikan parameter seperti di atas dan Simpan
4. Hasil
Klik tombol connect untuk melihat hasilnya
Pemantauan Suhu Selama Jangka Panjang
Jika suhu diambil sampel dalam interval kecil (misalnya detik), kita hanya perlu mencetak nilai suhu ke Serial karena kita bisa menunggu untuk melihat grafik.
Apa yang terjadi jika kita ingin memantau suhu harian atau per jam? Kita TIDAK bisa menunggu untuk melihat semua grafik.
Solusi: kita menyimpan jumlah suhu pemetaan terakhir pada Arduino dan mencetaknya dengan sering.
Misalnya, Kita ingin melihat tampilan suhu pada grafik selama 100 jam. Satuan adalah jam. Kita perlu membaca data dari sensor setiap jam, menyimpannya dalam antrian lingkaran (panjang antrian adalah 100). Setiap detik, kita mencetak semua 100 data sampel. Oleh karena itu, kita dapat melihat grafik suhu selama 100 jam terakhir tanpa menunggu selama 100 jam.
Anda dapat melihat kode di "Kode Arduino - Periode Pemetaan Panjang"
Kit Starter Arduino Terbaik untuk Pemula
Lihat Kit Arduino Terbaik untuk Pemula
Kode
Kode Arduino - Periode Pemetaan Pendek
Kode Arduino - Periode Pemetaan Panjang (harian, per jam...)
Kode Arduino - Periode Pemetaan Pendek
#include <OneWire.h>
#include <DallasTemperature.h>
#include <Phpoc.h>
#define SAMPLE_INTERVAL 1000 // in ms
// Data wire is plugged into port 8 on the Arduino
OneWire oneWire(8);
DallasTemperature sensors(&oneWire);
unsigned long lastSampleTime;
void setup() {
Serial.begin(9600);
while(!Serial) ;
sensors.begin();
Phpoc.begin();
lastSampleTime = millis();
}
void loop() {
if((millis() - lastSampleTime) > SAMPLE_INTERVAL) {
sensors.requestTemperatures();
float temp = sensors.getTempCByIndex(0);
Serial.println(temp);
lastSampleTime = millis();
}
}
Kode Arduino - Periode Pemetaan Panjang (harian, per jam...)
#include <OneWire.h>
#include <DallasTemperature.h>
#include <Phpoc.h>
#define UPDATE_INTERVAL 1000 // in ms
#define SAMPLE_INTERVAL 60*60*1000 // 1 hour
// Data wire is plugged into port 8 on the Arduino
OneWire oneWire(8);
DallasTemperature sensors(&oneWire);
unsigned long lastSampleTime;
unsigned long lastUpdateTime;
float temps[100];
int index;
void setup() {
Serial.begin(9600);
while(!Serial) ;
sensors.begin();
Phpoc.begin();
lastSampleTime = millis();
lastUpdateTime = millis();
index = 0;
}
void loop() {
if((millis() - lastSampleTime) > SAMPLE_INTERVAL) {
sensors.requestTemperatures();
float temp = sensors.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();
}
}
Skematik
1. Tempelkan PHPoC Wifi Shield 2 atau PHPoC Shield 2 pada Arduino 2. Pasang kabel seperti gambar di bawah