Translate

Alat Monitor Arus dan Tegangan DC Server Thingspeak + Arduino Ethernet Shield webserver

Alat Monitor Arus dan Tegangan DC Server Thingspeak + Arduino Ethernet Shield  Webserver


        Pada kesempatan kali ini saya akan menjelaskan mengenai bagaimana cara membuat sebuah alat yang berguna untuk monitor arus dan tegangan DC via internet atau server THINGSPEAK. alat ini menggunakan sensor tegangan dc dan ACS712 untuk monitor arus dc. yang berbeda dari biasanya yaitu alat ini menggunakan ethernet shield sehngga bisa menggunakan arduino uno yang mana pin ADC bisa lebih dari satu. untuk lebih jelasnya berikut adalah komponen dan programnya.



a. Arduino + Ethernet Shield




b. Sensor tegangan DC



c. Sensor arus  ACS712




d. LCD + I2C






e. Program Arduino IDE 

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <SPI.h>
#include <Ethernet.h>

LiquidCrystal_I2C lcd(0x3F,16,2);

byte mac[] = {
  0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(192,168,0,99);

int datain1;
int datain2;

String dataIn;
String dt[10];
int i;
boolean parsing=false;

String apiKey = "AABBVHJ678UUIGFJW";     //  Enter your Write API key from ThingSpeak
const char* resource = "/update?api_key=";
const char* server = "api.thingspeak.com";

EthernetClient client;


void setup() {
  lcd.begin();
  lcd.clear();
  lcd.noCursor(); 
  Serial.begin(9600);
  while (!Serial) {
    ;
  }

  if (Ethernet.begin(mac) == 0) {
    Serial.println("Failed to configure Ethernet using DHCP");
    Ethernet.begin(mac, ip);
  }

    delay(1000);
    Serial.println("connecting...");
      
}


void loop() {
  
int adcteg = analogRead(A3);
float tegangan = adcteg * (5.0 / 1023.0) * 4.8;

int adcarus = analogRead(A2);
float v = adcarus * (5.0 / 1023.0);
float arus = (v - 2.5)/0.1;
  
lcd.setCursor(0,0);
lcd.print("V= ");
lcd.print(tegangan);
lcd.print("   ");
lcd.setCursor(0,1);
lcd.print("I= ");
lcd.print(arus);
lcd.print("   ");

EthernetClient client;

if (client.connect(server,80))   //   "184.106.153.149" or api.thingspeak.com
 { 
                                                       
   String postStr = apiKey;
   postStr +="&field1=";
   postStr += String(tegangan);
   postStr += "\r\n\r\n";

   client.print(String("GET ") + resource + apiKey + "&field1=" + tegangan + "&field2=" + arus + " HTTP/1.1\r\n" + "Host: " + server + "\r\n" + "Connection: close\r\n\r\n");
                                       
   client.print("Host: api.thingspeak.com\n");
   client.print("Connection: close\n");
   client.print("X-THINGSPEAKAPIKEY: "+apiKey+"\n");
   client.print("Content-Type: application/x-www-form-urlencoded\n");
   client.print("Content-Length: ");
   client.print(postStr.length());
   client.print("\n\n");
   client.print(postStr);
                           
  Serial.print("Tegangan: ");
  Serial.print(tegangan);
  Serial.print(" Arus: ");
  Serial.print(arus);
  Serial.println(". Send to Thingspeak.");
 }
                       
  client.stop();

  Serial.println("Waiting...");

  delay(10000);
  
}




f. VIDEO HASILNYA









No comments:

Post a Comment