আমি একটি পাওয়ার মিটার তৈরি করতে এবং তথ্য লগ করতে এবং ওয়েবে প্রেরণে আরডুইনো ব্যবহার করতে চাই। বিদ্যুৎ মিটারের কোনও সহজ সমাধান আছে কি? আমি আর্জেন্টিনায় থাকি এবং পাওয়ার লাইন 220 ভি হয়। ধন্যবাদ
আমি একটি পাওয়ার মিটার তৈরি করতে এবং তথ্য লগ করতে এবং ওয়েবে প্রেরণে আরডুইনো ব্যবহার করতে চাই। বিদ্যুৎ মিটারের কোনও সহজ সমাধান আছে কি? আমি আর্জেন্টিনায় থাকি এবং পাওয়ার লাইন 220 ভি হয়। ধন্যবাদ
উত্তর:
আপনি টুইট-এ-ওয়াট দেখতে পারেন এবং দেখুন এটি আপনার 220 ভি পাওয়ার লাইনের সাথে কাজ করে কিনা। এই প্রকল্পটি কমপক্ষে আপনাকে কীভাবে শুরু করবেন সে সম্পর্কে একটি ধারণা দেওয়া উচিত।
এই প্রকল্পগুলি একবার দেখুন:
যথেষ্ট? ;-)
সঠিক পাওয়ার মিটার তৈরি করা তুচ্ছ কাজ নয়। আপনার যথাযথ নির্ভুলতা এবং গতির সাথে ভোল্টেজ এবং স্রোতের সংবেদনের এমন একটি উপায় প্রয়োজন যা আপনি তাদের (পাওয়ার ফ্যাক্টর) মধ্যে পর্যায়ের পার্থক্যগুলি সনাক্ত করতে পারেন এবং আসল এবং আপাত শক্তি গণনা করতে পারেন। আপনি প্রায় এই জন্য একটি ডিএসপি চাইবেন।
প্রতিক্রিয়াশীল শক্তি এবং উচ্চ গতিতে নমুনা দেওয়ার প্রয়োজনীয়তা উপেক্ষা করে সোলসিং এবং ডিসি গড় ভোল্টেজ এবং কারেন্টের মাধ্যমে একটি প্রাথমিক বিদ্যুৎ মিটার তৈরি করা সম্ভব। লোডের গুণমানের কার্যকারিতা হিসাবে নির্ভুলতা পৃথক হবে।
বিশেষত পাওয়ার মিটারিংয়ের জন্য বাজারে আইসি রয়েছে, যেমন মাইক্রোচিপ এমসিপি 3909 যা আপনি আপনার আরডিনো দিয়ে ব্যবহার করতে সক্ষম হতে পারেন।
স্মার্ট এনার্জি গ্রুপগুলির এই সিস্টেমটি আগ্রহী হতে পারে, এটি আরডুইনো হার্ডওয়্যার এবং আরও অনেক কিছুকে কেন্দ্র করে।
আপনি একটি আরডিনো বোর্ডের সাহায্যে একটি এইচএএলএল ইফেক্ট সেন্সর (10-30e হতে পারে?) ব্যবহার করতে পারেন ।
আমি ESP8266 ( আরডুইনো আইডিই সহ) এবং বিভিন্ন এডিসি এবং ডেডিকেটেড এনার্জি মনিটরিং ডিএসপি'র ( এটিএম 90E26 এবং ADE7763 ) ব্যবহার করে ওয়েব কানেক্টেড এনার্জি মনিটরগুলি বিস্তৃতভাবে কাজ করছি ।
Fritzing মৌলিক এডিসি + + ওয়াইফাই এর ডায়াগ্রাম সক্রিয় যাও Arduino সামঞ্জস্যপূর্ণ NodeMCU নিচে দেখানো হল:
উপরে চিত্রিত ESP8266 শক্তি মনিটর ব্যবহারের জন্য কোড এখানে। দয়া করে মনে রাখবেন যে ট্রান্সফর্মার ব্যবহার করে ভোল্টেজের স্যাম্পলিং এবং সিসিটি বর্তমান ব্যবহার করে সলিউশন স্যাম্পলিং কার্যকর করার জন্য এটি একটি কম নির্ভুলতার সহজ। উচ্চতর নির্ভুলতার সমাধানগুলিতে 240V সরাসরি (ভোল্টেজ ডিভাইডার মই এবং শান্ট প্রতিরোধক ব্যবহার করে) নমুনা নেওয়া দরকার এবং উচ্চ ভোল্টেজের সাথে কাজ করার ফলে উদ্ভূত সমস্যাগুলি পরিচালনা করতে অতিরিক্ত ডিজাইনের বিবেচনার প্রয়োজন।
/*
* This sketch sends ads1115 current sensor data via HTTP POST request to thingspeak server.
* It needs the following libraries to work (besides the esp8266 standard libraries supplied with the IDE):
*
* - https://github.com/adafruit/Adafruit_ADS1X15
*
* designed to run directly on esp8266-01 module, to where it can be uploaded using this marvelous piece of software:
*
* https://github.com/esp8266/Arduino
*
* 2015 Tisham Dhar
* licensed under GNU GPL
*/
#include <ESP8266WiFi.h>
#include <Wire.h>
#include <Adafruit_ADS1015.h>
// replace with your channel's thingspeak API key,
String apiKey = "XXXXXXXXXXXXX";
//WIFI credentials go here
const char* ssid = "XXXXXXXXXXX";
const char* password = "XXXXXXXXXXXXXXXXXXXXX";
Adafruit_ADS1115 ads; /* Use this for the 16-bit version */
const char* server = "api.thingspeak.com";
WiFiClient client;
double offsetI;
double filteredI;
double sqI,sumI;
int16_t sampleI;
double Irms;
double squareRoot(double fg)
{
double n = fg / 2.0;
double lstX = 0.0;
while (n != lstX)
{
lstX = n;
n = (n + fg / n) / 2.0;
}
return n;
}
double calcIrms(unsigned int Number_of_Samples)
{
/* Be sure to update this value based on the IC and the gain settings! */
float multiplier = 0.125F; /* ADS1115 @ +/- 4.096V gain (16-bit results) */
for (unsigned int n = 0; n < Number_of_Samples; n++)
{
sampleI = ads.readADC_Differential_0_1();
// Digital low pass filter extracts the 2.5 V or 1.65 V dc offset,
// then subtract this - signal is now centered on 0 counts.
offsetI = (offsetI + (sampleI-offsetI)/1024);
filteredI = sampleI - offsetI;
//filteredI = sampleI * multiplier;
// Root-mean-square method current
// 1) square current values
sqI = filteredI * filteredI;
// 2) sum
sumI += sqI;
}
Irms = squareRoot(sumI / Number_of_Samples)*multiplier;
//Reset accumulators
sumI = 0;
//--------------------------------------------------------------------------------------
return Irms;
}
void setup() {
Serial.begin(115200);
delay(10);
// We start by connecting to a WiFi network
Serial.println();
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
ads.setGain(GAIN_ONE); // 1x gain +/- 4.096V 1 bit = 2mV 0.125mV
ads.begin();
}
void loop() {
//Serial.print("Differential: "); Serial.print(results); Serial.print("("); Serial.print(trans_volt); Serial.println("mV)");
double current = calcIrms(2048);
if (client.connect(server,80)) { // "184.106.153.149" or api.thingspeak.com
String postStr = apiKey;
postStr +="&field1=";
postStr += String(current);
postStr += "\r\n\r\n";
client.print("POST /update HTTP/1.1\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);
}
client.stop();
//Serial.println("Waiting...");
// thingspeak needs minimum 15 sec delay between updates
delay(20000);
}