Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Arduino Energy data loger

[es] :: Elektronika :: Mikrokontroleri :: Arduino Energy data loger

[ Pregleda: 881 | Odgovora: 11 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

EHF
ivan golubovic
obrenovac

Član broj: 311081
Poruke: 97
*.dynamic.isp.telekom.rs.



Profil

icon Arduino Energy data loger11.09.2020. u 13:54 - pre 43 meseci
Pozdrav svima, zeleo bih napraviti data loger za struju da bih mogao da pratim proizvodnju energije preko solarnih panela. Imam problem pri kodu za arduino. Naime hteo bih da pomocu senzora za napon i struju da pratim koja je proizvodnja struje bila, koji napon, koliko wati, Amper casova, wat casova. Usustini sve parametre oko jednosmerne struje. posto imam solarni panel od 50w hocu da vidim, to jest da izmerim na vise lokacija (krov, pod...) koja je uokvirno proizvodnja u toku jednog dana. i da imam te podatkr na sd kartici koje bi arduino upisao. da bi kasnije mogao da ih ubacim u excel i napravim gragikon proizvodnje u odnosu na jutro, podne, predvece.
Jedini problem koji imam jeste kod koji ne razumem bas najbolje, imam senzore imam arduino i imam lcd ekran. kod sam skinuo sa neta medjutim taj kod je pisan za tenesy 3.6 koji na sebi ima sd citac kartice.
Posto je tenesy ploca skuplja od arduina i to dosta nisam bas voljan da je kupim sobzirom da imam arduino uno, ekran bih koristio 2x16 umesto 4x20 karaktera. Ali ne znam kako da prepravim kod da bih moga oda koristim arduino sa SD card modulom i kako da informacije koje se ispisuju odjednom na lcd ekranu prebacim da se smenjuju na ovom manjem. kod imate u opisu i sliku diagrama kako bi se to povezalo stim da bih ja ubacio arduino i manji ekran jer to imam.
Prikačeni fajlovi
 
Odgovor na temu

EHF
ivan golubovic
obrenovac

Član broj: 311081
Poruke: 97
*.dynamic.isp.telekom.rs.



Profil

icon Re: Arduino Energy data loger11.09.2020. u 17:43 - pre 43 meseci
Hvala, nisam znao da forum mikrokontroleri
 
Odgovor na temu

ZAS011
Uzgajivač šargarepe izakuće
Vanuatu

Član broj: 288510
Poruke: 4542

ICQ: 8713400
Sajt: www.justfuckinggoogleit.c..


+529 Profil

icon Re: Arduino Energy data loger11.09.2020. u 19:56 - pre 43 meseci
S obzirom koliko se podataka prikazuje na displeju, teško da će sve da ti stane na 2x16.


--
Make no mistake between my personality and my attitude.
My personality is who I am.
My attitude depends on who you are.
Prikačeni fajlovi
 
Odgovor na temu

scoolptor

Član broj: 305514
Poruke: 1620



+585 Profil

icon Re: Arduino Energy data loger11.09.2020. u 20:08 - pre 43 meseci
Mozes namestiti da naizmenicno menja dva prikaza
 
Odgovor na temu

EHF
ivan golubovic
obrenovac

Član broj: 311081
Poruke: 97
*.dynamic.isp.telekom.rs.



Profil

icon Re: Arduino Energy data loger11.09.2020. u 20:17 - pre 43 meseci
Znam, i hteo sam da stavim da se naizmenicno menja displej to jest prikaz na njemu, Problem mi je kod. Kako da ispravim kod da radi sa arduinom i manjim ekranom
 
Odgovor na temu

ZAS011
Uzgajivač šargarepe izakuće
Vanuatu

Član broj: 288510
Poruke: 4542

ICQ: 8713400
Sajt: www.justfuckinggoogleit.c..


+529 Profil

icon Re: Arduino Energy data loger12.09.2020. u 00:07 - pre 43 meseci
Napiši gde ti je problem u kodu.
Pomoćićemo ti savetima da se izboriš sa tim čudom.

BTW koji Arduino bi ti koristio?
--
Make no mistake between my personality and my attitude.
My personality is who I am.
My attitude depends on who you are.
 
Odgovor na temu

EHF
ivan golubovic
obrenovac

Član broj: 311081
Poruke: 97
*.dynamic.isp.telekom.rs.



Profil

icon Re: Arduino Energy data loger13.09.2020. u 11:50 - pre 43 meseci
#include <Time.h>
#include <TimeLib.h>

////////// Inputs //////////
int VoltPin = 15;
int AmpPin = 14;
int ResetPin = 1; //Digital
int Reset;


////////// Variables //////////
double Volts;
double Amps;
double Watts = 0;
double WattsAvg = 0;
double WattsSum = 0;
double WattHours = 0;
double TotalWattHours = 0;
double PrevWattHours = 0;
double TotalKiloWattHours = 0;

int Currentsecond;
int Currentminute;
int Currenthour;
int Currentday;
int Currentmonth;
int Currentyear;
int Previoussecond;
int Previousminute;
int Prevhour;
unsigned long CurrentTime;
unsigned long PrevTime;

//Library for the Display
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27,20, 4); -----------------------------------------Ovde treba da se prepravi za 2x16, ali kada to uradim izbacuje gresku.

#include <SD.h>
const int chipSelect = BUILTIN_SDCARD; ---------------------------------Ovo je kod za koriscenje SD kartice na tenesy 3.6 mikrokontroleru koji ima SD citac na sebi, A meni treba da to prepoznaje na Arduino SD modulu. Ne znam kako da to sredim.




void setup() {

Serial.begin(115200);

//Wire.begin();
Wire.setSDA(18);
Wire.setSCL(19);

pinMode(1, INPUT_PULLUP);


////////// Initialize the lcd ////////// ---------------------------------------------Ovaj odeljak je za podesavanje lcd-a gde ce i kako biti sta ispisano, ovo i razumem kako bih odprilike stavio za 2x16 LCD ali ne znam kako da namestim da se smenjuje ili ti da ide
lcd.init(); prikazivanje podataka, NPR. stavio bih da ostane napon,struja i wati a da se sveostalo smenjuje, ili da se smenjuju dva prikaza svakih 2-3 sekunde
lcd.backlight();

lcd.setCursor(4,1);
lcd.print("SOLAR LOGGER");

delay(2000);
lcd.clear();

////////// Time & Date Set //////////-----------------------------------------------------------------------------------Ovo ako neko moze da mi objasni, posto uopste ne razumem kako funkcionise ovo za vreme i datum.
setTime(15, 00, 0, 26, 7, 2019); // Hour Minute Second Day Month Year


}




void loop() {
////////// Time & Date //////////
Currentsecond = second();
Currentminute = minute();
Currenthour = hour();
Currentday = day();
Currentmonth = month();
Currentyear = year();

CurrentTime = millis();

////////// Measurements //////////
Volts = (analogRead(VoltPin)-2)*0.0161; // (Raw volt value - Offset)*multiplier
//Volts = analogRead(A0); // Read raw volt value
Amps = (analogRead(A0)-761)*0.082; // (Raw amp value - Offset)*multiplier
//Amps = analogRead(A0); // Read raw amp value

Watts = Volts * Amps;

if(Amps < 0){
Watts = 0;
}


if((CurrentTime-PrevTime) < 0){
Watts = 0;
}

WattHours = WattHours + Watts * ((CurrentTime - PrevTime) * 0.000000277);
TotalWattHours = (TotalWattHours + Watts * ((CurrentTime - PrevTime) * 0.000000277));
TotalKiloWattHours = TotalWattHours * 0.001;

PrevTime = CurrentTime;

if(millis() > 4294967000){
PrevTime = 0;

}
Reset = digitalRead(1);
if(Reset == LOW){
WattHours = 0;
}

////////// LCD //////////-------------------------------------------------------------------Ovde podesavam sve vezano za LCD ali kako tacno da podesim za 2x16
if(Currentsecond != Previoussecond){
// First line
lcd.setCursor(1, 0); // (column, line)
lcd.print(Volts, 2);
lcd.setCursor(5, 0);
lcd.print("V");
lcd.setCursor(8, 0);
lcd.print(Amps, 2);
lcd.setCursor(12, 0);
lcd.print("A ");

if(Watts > 100){
lcd.setCursor(15, 0);
lcd.print(Watts, 0);
}
if(Watts > 10 && Watts < 100){
lcd.setCursor(15, 0);
lcd.print(" ");
lcd.print(Watts, 0);
}
if(Watts < 10){
lcd.setCursor(15, 0);
lcd.print(" ");
lcd.print(Watts, 0);
}



lcd.setCursor(18, 0);
lcd.print("W ");

// Second line
lcd.setCursor(3, 1);
lcd.print("Energy");
lcd.setCursor(11, 1);
lcd.print(WattHours);
lcd.setCursor(14, 1);
lcd.print("Wh");


// Third line
lcd.setCursor(3, 2);
lcd.print("Total");
lcd.setCursor(10, 2);
lcd.print(TotalKiloWattHours, 2);
lcd.setCursor(13, 2);
lcd.print("kWh");


// Fourth line
if(Currenthour < 10){
lcd.setCursor(1, 3);
lcd.print("0");
lcd.print(Currenthour);
}
else{
lcd.setCursor(1, 3);
lcd.print(Currenthour);
}
lcd.setCursor(3, 3);
lcd.print(":");
if(Currentminute < 10){
lcd.setCursor(4, 3);
lcd.print("0");
lcd.print(Currentminute);
}
else{
lcd.setCursor(4, 3);
lcd.print(Currentminute);
}
if(Currentday < 10){
lcd.setCursor(9, 3);
lcd.print("0");
lcd.print(Currentday);
}
else{
lcd.setCursor(9, 3);
lcd.print(Currentday);
}
lcd.setCursor(11, 3);
lcd.print("/");
if(Currentmonth < 10){
lcd.setCursor(12, 3);
lcd.print("0");
lcd.print(Currentmonth);
}
else{
lcd.setCursor(12, 3);
lcd.print(Currentmonth);
}
lcd.setCursor(14, 3);
lcd.print("/");
lcd.setCursor(15, 3);
lcd.print(Currentyear);

Previoussecond = Currentsecond;
}
////////// SD Card //////////------------------------------------------------------Ovo uopste ne radi na Arduinu
if(Currenthour != Prevhour){

WattsAvg = TotalWattHours - PrevWattHours;
PrevWattHours = TotalWattHours;

SD.begin(chipSelect);

String dataString = "";
dataString += String(Currenthour);
dataString += ":";
dataString += String(Currentminute);
dataString += ",";
dataString += String(Currentday);
dataString += "/";
dataString += String(Currentmonth);
dataString += ",";
dataString += String(Volts);
dataString += ",";
dataString += String(WattsAvg);
dataString += ",";
dataString += String(TotalWattHours);
dataString += ",";

File dataFile = SD.open("SOLARLOG.txt", FILE_WRITE);

if (dataFile) {
dataFile.println(dataString);
dataFile.close();
Serial.println(dataString);
}
else {
Serial.println("error opening datalog.txt");
}

Previousminute = Currentminute;
Prevhour = Currenthour;
}

////////// Serial //////////
/*
Serial.print("Time: ");
Serial.print(CurrentHour);
Serial.print(":");
Serial.print(Currentminute);
Serial.print(" Date: ");
Serial.print(Currentday);
Serial.print("/");
Serial.print(Currentmonth);
Serial.print("/");
Serial.print(Currentyear);
Serial.print(" Volts: ");
Serial.print(Volts);
Serial.print(" Amps: ");
Serial.print(Amps);
Serial.print(" Watts: ");
Serial.print(Watts);
Serial.println();
*/

delay(20);
}






















Inace za test bih koristio Arduino uno, A za gotov projekat, arduino nano
 
Odgovor na temu

veselinovic
Jovan Veselinovic
Ist. Sarajevo

Moderator
Član broj: 7761
Poruke: 3860
31.223.133.122



+333 Profil

icon Re: Arduino Energy data loger13.09.2020. u 14:22 - pre 43 meseci
na primjer
https://randomnerdtutorials.co...ta-logger-with-sd-card-module/

ili

https://electronicshobbyists.c...-tutorial-arduino-data-logger/

ima toga bas mnogo po netu
 
Odgovor na temu

ZAS011
Uzgajivač šargarepe izakuće
Vanuatu

Član broj: 288510
Poruke: 4542

ICQ: 8713400
Sajt: www.justfuckinggoogleit.c..


+529 Profil

icon Re: Arduino Energy data loger13.09.2020. u 15:46 - pre 43 meseci
Kao prvo, nisi mi odgovorio na pitanje koji bi Arduino koristio.

Za početak ćeš morati da se upoznaš sa Teensy arduinom (pošto je program pisan za taj arduino), da vidiš koji je procesor u pitanju (180 MHz Cortex-M4F), da pretreseš Time biblioteku da bi se naučio kako ista funkcioniše.

Za SD karticu, prouči SD biblioteku, Sve piše u istoj
Ja koristim ove biblioteke:
Code:
#include <SPI.h>
#include <SdFat.h>

#define CS_PIN SS

SdFat sd;
File file;


Code:
//LiquidCrystal_I2C lcd(0x27,20, 4);
LiquidCrystal_I2C lcd(0x27,16, 2);
bi trebalo da normalno radi
--
Make no mistake between my personality and my attitude.
My personality is who I am.
My attitude depends on who you are.
 
Odgovor na temu

EHF
ivan golubovic
obrenovac

Član broj: 311081
Poruke: 97
*.dynamic.isp.telekom.rs.



Profil

icon Re: Arduino Energy data loger13.09.2020. u 18:03 - pre 43 meseci
Napisao sam na dnu poruke koji arduino bih koristio
 
Odgovor na temu

ZAS011
Uzgajivač šargarepe izakuće
Vanuatu

Član broj: 288510
Poruke: 4542

ICQ: 8713400
Sajt: www.justfuckinggoogleit.c..


+529 Profil

icon Re: Arduino Energy data loger13.09.2020. u 19:26 - pre 43 meseci
Izvini, bio veliki razmak

Da bi koristio Uno/Nano, što je isti par rukava, moraćeš da odradiš izmene u hardveru (da dodaš RTC) i ozbiljne promene u programu.
--
Make no mistake between my personality and my attitude.
My personality is who I am.
My attitude depends on who you are.
 
Odgovor na temu

EHF
ivan golubovic
obrenovac

Član broj: 311081
Poruke: 97
109.245.225.*



Profil

icon Re: Arduino Energy data loger14.09.2020. u 18:47 - pre 43 meseci
To je ono sto mene buni, to ne znam kako bih uradio, pokusavao, trazio po netu. Nista konkretno nisam uspeo da uradim.
 
Odgovor na temu

[es] :: Elektronika :: Mikrokontroleri :: Arduino Energy data loger

[ Pregleda: 881 | Odgovora: 11 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.