Új hozzászólás Aktív témák
-
Intruder2k5
MODERÁTOR
válasz Intruder2k5 #13044 üzenetére
Teszt
-
Intruder2k5
MODERÁTOR
válasz Intruder2k5 #9878 üzenetére
Teszt 2
-
ElektrikusDE
senior tag
Szia!
Gwen-nel kapcsolatban kénytelen vagyok egy esszét írni neked!
Mikor először néztem meg a Torchwood epizódokat én is elhűlve figyeltem Gwen viselkedését!
Most már többször újra nézve én már teljesen megértem és el is fogadom Gwen viselkedését. (mint béta hím)
Több infó:
https://brandongaille.com/male-alpha-beta-gamma-omega-delta-sigma/
Rhys tipikus béta hím, Jack pedig alfa+++ karakter!
Nem azonos kategória, nagyon nem!
Gwen-nek (és Rhys-nek) az a hatalmas szerencséje hogy előbb ismerkedtek össze mint ahogy Gwen Jack-ot megismerte.
Utána már észre sem vette volna Rhys-t.
Így viszont van esélyük arra hogy együtt maradjanak és legalább néhány boldog pillanatot átéljenek.
Hogy később mi lesz velük?
A sorozatból megtudod.
Jack-kal viszont erre semmi esély nem lett volna, bármit tenne Gween, ezen nem változtatna semmi!(a szíve mélyén ezt Ő is tudja)
Jack nem a Doctor, hiába is igyekszik az lenni...
De még ha a Doctor is lenne, Gween akkor is rosszul járna vele (szerintem).
Szóval ne ítéld el a hibái miatt, pont amiatt annyira szerethető karakter mert esendő.
Szentek nem kerülnek a Torchwood-ba, talán Ianto-t kivéve.
Ui:
Google fordító segítségével írtam, sajnos az angol tudásom nem értékelhető.“Lex malla, lex nulla. A bad law is no law.” A rossz törvény, nem törvény! DW: The Moment is Coming || Doctor Who BBC www.youtube.com/watch?v=uZAO6E2x9xs
-
Ueda
senior tag
* * *
[ Szerkesztve ]
OS : EndeavourOS KDE . . . . . . Parancs menü : https://pastebin.com/u/txt444
-
Ueda
senior tag
* * *
[ Szerkesztve ]
OS : EndeavourOS KDE . . . . . . Parancs menü : https://pastebin.com/u/txt444
-
DrDoktor
tag
[ Szerkesztve ]
A szerelem az szerelem ahogyan a propaganda is propaganda ukrán és orosz oldalon is!
-
trebrona
nagyúr
..
[ Szerkesztve ]
------- Nem mindegy, hogy egyelőre áll a meccs, vagy egyenlőre áll a meccs. ------
-
olbaidhun
őstag
-
[ Szerkesztve ]
7o/638-9O93 ► Telón érsz el leghamarabb \_(ツ)_/
-
máyköl
veterán
-
xhege
addikt
_
-
Golden9
addikt
[ Szeretkezve ]
-
MadMancs
veterán
😉👋😂😪😭😍😂😍😂😭🫣Kedvező árú mobil előfizetésekért keress bátran. +36708034865 <-- Tel/SMS/WhatsApp, http://mancsmobiltavkozles.hu , szabo.norbert@mancsmobiltavkozles.hu ,
-
Qru
MODERÁTOR
2023. év autója szavazás
A döntősök:
Jeep Avenger
Kia Niro
Nissan Ariya
Peugeot 408
Renault Austral
Subaru Solterra / Toyota bZ4x
Volkswagen ID. BuzzSzavazatok:
Kisza: VW ID. Buzz
Qru: Subaru/Toyota
radi8tor: Subaru/Toyota
brumi1024: VW ID. Buzz
pècsimunkás: Subaru/Toyota
simonjoe: Subaru/Toyota
xEon1337: Renault Austral
diegho: Peugeot 408
CactuS: Jeep Avenger
szabonagyur: Peugeot 408
focvis: Peugeot 408
Shadowbull: VW ID. Buzz
pit stop: Jeep Avenger
grizlisandor: Subaru/Toyota
Tsebacsi: Nissan Ariya
szőröscica: VW ID. Buzz
6030D: Peugeot 408[ Szerkesztve ]
#nincsbennetarcsi
-
Golden9
addikt
22. - 1 képlink.
[ Szeretkezve ]
-
Gézengúz
addikt
t
-
vacs
veterán
textstudio.com-on készítve.[ Szerkesztve ]
(^)(>.<)(^)
-
vacs
veterán
Az "alap" mozgásérzékelésre történő rögzítés "kényes" dolog.
Érdemes okosan kijelölni a figyelendő területet, mert ha fújja a szél pl a faágat, akkor is jelezni fog, ha ködszitálás van, akkor egész éjjel rögzíteni fog, ha elrepül egy madár, vagy egy méh a kamera előtt, akkor is jó eséllyel rögzít, ahogy kel fel a nap, emiatt mozdul az árnyék, erre is jó eséllyel rögzíteni fog ... tehát nincs tökéletes rendszer, ezt el kell fogadni!
Lényeg, hogy a fákat/bokrokat, illetve minden olyat amit fújhat a szél célszerű kivenni a figyelendő területből! > bemutató videó by Fisotech
Egy ember/gépjármű felismeréses (esetleg vonalátlépéses) rendszerrel jelentősen csökkenthető a téves riasztások száma, de teljesen megszüntetni NEM lehet!(^)(>.<)(^)
-
vacs
veterán
1. Hány db kamerát tervezel (kültéri/beltéri)?
2. Később lesz-e bővítve?
3. NVR (rögzítő) kerül-e a rendszerbe?
4. Mekkora területet szeretnél figyelni (milyen messze van a kerítés és az utcafront)?
5. Kellenek-e "okos" funkciók (arc/személy/gépjármű felismerés)? > hasznos infó, olvasd el
6. Külföldi vásárlás szóba jöhet-e (eu raktárból, plusz költség nélkül)?
7. Mennyi pénz lenne a vásárlásra?Kiegészítő kérdések, nem kötelező válaszolni:
8. Kell-e színes éjjeli kép (drágítja a kamerát és köztéri világítás ajánlott)? > hasznos infó, olvasd el
9. SD kártya foglalat kell?Kiegészítő hasznos információk:
- a kamerákhoz minden esetben tartozik mobil és pc app, nézhető az élő kép és vissza lehet nézni a felvételeket
- vezetékes kamerákat fogunk ajánlani PoE táplálással > egy utp kábelen megy az áram és az adat
- wifi-s kamerákat csak abban az esetben vásárolj, ha a kábeles kapcsolat nem kivitelezhető, mert nagyon stabil, erős wifi kell a megfelelő működéshez
- a kameráknál lévő internet feltöltési sebessége számít, ha csak 1-2 Mbit, akkor felejtős mobilról "hazanézni" a kutyára pl
- a motorosan, kb 360°-ban forgatható PTZ kamera jól hangzik, de mi van akkor, ha X irányba néz és közben Y helyen történik valami
- a PTZ kamerákban a Z betű a zoom-ot jelenti, de ez az olcsóbb modellekben csak egy sima belenagyítás a képbe, semmi köze a valódi zoom-hoz, ezzel legyünk tisztában
- a beépített akkumulátor kamera jól hangzik, de pár havonta le kell szerelni a helyéről, mert azt is tölteni kellAz ugyismegveszel.hu, lealkudtuk.hu stb oldalakon elérhető kamerarendszernek kinéző tárgyakat senkinek nem ajánljuk!
[ Szerkesztve ]
(^)(>.<)(^)
-
MadMancs
veterán
Dhehue
Kedvező árú mobil előfizetésekért keress bátran. +36708034865 <-- Tel/SMS/WhatsApp, http://mancsmobiltavkozles.hu , szabo.norbert@mancsmobiltavkozles.hu ,
-
addikt
https://www.google.com/
-
yanna
őstag
Itt mindent is lehet?
-
Kislabda
csendes tag
A
[ Szerkesztve ]
-
trebrona
nagyúr
------- Nem mindegy, hogy egyelőre áll a meccs, vagy egyenlőre áll a meccs. ------
-
Wyll
őstag
- az üzeneteimre azonnal gond nélkül válaszolt, ezzel számomra jóváhagyva az írásbeliséget; aztán természetesen felhívtam
- 1,6% (3000ft) az azért nem egy pofátlan nagy alku, de tény hogy rákérdeztem 1x. Miután nem engedett említettem neki hogy nekem problémás és drága a pénzfelvétel, 500 forintot sem enged-e. Nyilván nem az 500 Ft hanem inkább a gesztus miatt, hiszen közös célunk az adásvétel. Ezt sem engedte.
- Végül ha ő lefele 500at sem enged, akkor nem értem miért baj hogy én felfele 10et nem engedtem? Kárpótolnom kellett volna őt valamiért? Persze itt sem a 10Ft volt a fontos, hanem arra számítottam hogy venni fogja a lapot és mosolygunk egyet a dolgon, elvégre mindketten belementünk az üzletbe és minden úgy történt ahogy szerette volna..
Megbízhatóságom: http://phmegbizhatosag.atw.hu/phtabla.php?nev=Wyll
-
Costello81
csendes tag
Üdv! Segítséget szeretnék kérni. Van kettő imou dahua ip kamerám. Az első megvásárlása után társítottam a SmartPss programhoz. Működött szépen. A második megvétele után újra társítani akartam mind a kettőt de sikertelenül. Offline-ban maradtak és melléje azt írja ki hogy invalid username or password, a felhasználó és a jelszó is jó. A programot már többszőr újratelepítettem és frissítettem de nem változott semmi. Applikáción viszont tökéletesen működik.
-
nanamii_o
tag
[ Szerkesztve ]
-
nanamii_o
tag
-
nanamii_o
tag
Ez itt
egy spoiler. -
MadMancs
veterán
Kedvező árú mobil előfizetésekért keress bátran. +36708034865 <-- Tel/SMS/WhatsApp, http://mancsmobiltavkozles.hu , szabo.norbert@mancsmobiltavkozles.hu ,
-
Intruder2k5
MODERÁTOR
// DIY Bi-directional AC Energy Meter with LCD By Solarduino
// Note Summary
// Note : Safety is very important when dealing with electricity. We take no responsibilities while you do it at your own risk.
// Note : This AC Energy Meter Code needs AC current module and AC Voltage Module to determine AC Power value.
// Note : This Code monitors RMS Voltage, RMS current, RMS AC Power (Apparent Power) and Instantaneous AC Power (Real Power), Frequency, Power Factor, Accumulate Energy, Import & Export Energy.
// Note : The value shown in LCD Display is refreshed every second, can be used for 50Hz and 60Hz.
// Note : The frequency is measured by counting time and average it for every 46 samples taken (1 sample is 1 cycle).Less cycle to be taken to allign the measurement time with other readings.
// Note : Not recommended to add datalogger shield for recording as measured values accuracy may be out due to memory problem.
// Note : Need to use 12V power supply rather than USB 5V power supply as more modules are involved.
// Note : The unit provides reasonable accuracy and may not be comparable with other expensive branded and commercial product.
// Note : All credit shall be given to Solarduino./*/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////*/////////////*/
/* 0- General */
int decimalPrecision = 1; // decimal places for large values such as voltage, wattage, apparent power, and frequency shown in LED Display & Serial Monitor
// decimal places for small values such as current, power factor and accumulate energy will be decimal places x 2./* 1- AC Voltage Measurement */
int VoltageAnalogInputPin = A1; // Which pin to measure voltage Value
float voltageSampleRead = 0; /* to read the value of a sample*/
float voltageLastSample = 0; /* to count time for each sample. Technically 1 milli second 1 sample is taken */
float voltageSampleSum = 0; /* accumulation of sample readings */
float voltageSampleCount = 0; /* to count number of sample. */
float voltageMean ; /* to calculate the average value from all samples*/
float RMSVoltageMean ; /* square roof of voltageMean*//*1.1 Offset AC Voltage */
int voltageOffsetRead = 0; /* to change the mode for offset */
float voltageOffset1 = 0; // to Offset deviation and accuracy. Offset any fake current when no current operates.
// Offset will automatically callibrate when SELECT Button on the LCD Display Shield is pressed.
// If you do not have LCD Display Shield, look into serial monitor to add or minus the value manually and key in here.
float voltageOffset2 = 0; // to offset value due to calculation error from squared and square root.
float voltageSampleSumOffset =0; /* accumulation of sample readings for offset */
float offsetVoltageMean = 0; /* to calculate the average value from all samples for offset, in analog values*/
float voltageOffsetLastSample = 0; /* to count time for each sample for offset purpose. */
float voltageOffsetSampleCount = 0; /* to count number of sample for offset. *//* 2- AC Current Measurement */
int CurrentAnalogInputPin = A2; // Which pin to measure Current Value
float mVperAmpValue = 31.25; // If using ACS712 current module : for 5A module key in 185, for 20A module key in 100, for 30A module key in 66
// If using "Hall-Effect" Current Transformer, key in value using this formula: mVperAmp = maximum voltage range (in milli volt) / current rating of CT
/* For example, a 20A Hall-Effect Current Transformer rated at 20A, 2.5V +/- 0.625V, mVperAmp will be 625 mV / 20A = 31.25mV/A */
float currentSampleRead = 0; /* to read the value of a sample*/
float currentLastSample = 0; /* to count time for each sample. Technically 1 milli second 1 sample is taken */
float currentSampleSum = 0; /* accumulation of sample readings */
float currentSampleCount = 0; /* to count number of sample. */
float currentMean ; /* to calculate the average value from all samples*/
float RMSCurrentMean =0 ; /* square roof of currentMean*/
float FinalRMSCurrent ; /* the final RMS current reading*/
float currentDisplay = 0; /* to display the direction flow of current at LCD Display*//*2.1 Offset AC Current */
int currentOffsetRead = 0; /* to change the mode for offset */
float currentOffset1 = 0; // to Offset deviation and accuracy. Offset any fake current when no current operates.
// Offset will automatically callibrate when SELECT Button on the LCD Display Shield is pressed.
// If you do not have LCD Display Shield, look into serial monitor to add or minus the value manually and key in here.
// 26 means add 26 to all analog value measured
float currentOffset2 = 0; // to offset value due to calculation error from squared and square root.
float currentSampleSumOffset = 0; /* accumulation of sample readings for offset */
float offsetCurrentMean = 0; /* to calculate the average value from all samples for offset, in analog values*/
float currentOffsetLastSample = 0; /* to count time for each sample for offset purpose. */
float currentOffsetSampleCount = 0; /* to count number of sample for offset. *//* 3- AC Power Measurement */
float sampleCurrent1 ; /* use to calculate current*/
float sampleCurrent2 ; /* use to calculate current*/
float sampleCurrent3 ; /* use to calculate current*/
float apparentPower; /* the apparent power reading (VA) */
float realPower = 0; /* the real power reading (W) */
float powerSampleRead = 0; /* to read the current X voltage value of a sample*/
float powerLastSample = 0; /* to count time for each sample. Technically 1 milli second 1 sample is taken */
float powerSampleCount = 0; /* to count number of sample. */
float powerSampleSum = 0; /* accumulation of sample readings */
float powerFactor = 0; /* to display power factor value*//*3.1 Offset AC Power */
int powerOffsetRead = 0; /* to change the mode for offset */
float powerOffset = 0; // to Offset deviation and accuracy. Offset any fake current when no current operates.
// Offset will automatically callibrate when SELECT Button on the LCD Display Shield is pressed.
// If you do not have LCD Display Shield, look into serial monitor to add or minus the value manually and key in here.
float powerOffsetLastSample = 0; /* to count time for each sample for offset purpose. */
float powerOffsetSampleCount = 0; /* to count number of sample for offset. *//* 4 - Daily Energy Measurement*/
float dailyEnergy = 0; /* recorded by multiplying RMS voltage and RMS current*/
float energyLastSample = 0; /* Use for counting time for Apparent Power */
float energySampleCount= 0; /* to count number of sample. */
float energySampleSum = 0; /* accumulation of sample readings */
float finalEnergyValue = 0; /* total accumulate energy */
float accumulateEnergy = 0; /* accumulate of energy readings*//* 4.1 Import & Export Energy */
float importFinalEnergyValue = 0;
float exportFinalEnergyValue = 0;/* 5- frequency measurement */
unsigned long startMicros; /* start counting time for frequency (in micro seconds)*/
unsigned long currentMicros; /* current counting time for frequency (in micro seconds) */
int expectedFrequency = 47; // This is to collect number of samples. for 50Hz use 46 or below. For 60Hz use 54 or below.
// Use exact number of frequency number (50/60) will have calculation error.
float frequencySampleCount = 0; /* count the number of sample, 1 sample equivalent to 1 cycle */
float frequency =0 ; /* shows the value of frequency*/
float a; /* use for calculation purpose*/
float switch01 = 9; /* use for switching function */
float vAnalogRead = 0; // read analog value, highly recommend AC voltage sensor
// Automatically bonded with "VoltageAnalogInputPin = A2" reading/* 6 - LCD Display */
#include<LiquidCrystal.h> /* Load the liquid Crystal Library (by default already built-it with arduino solftware)*/
LiquidCrystal LCD(8,9,4,5,6,7); /* Creating the LiquidCrystal object named LCD. The pin may be varies based on LCD module that you use*/
unsigned long startButtonMillis; /* for button cooldown time*/
unsigned long currentButtonMillis; /* for button cooldown time*/
unsigned long startMillisLCD; /* start counting time for LCD Display */
unsigned long currentMillisLCD; /* current counting time for LCD Display */
const unsigned long periodLCD = 1000; // refresh every X seconds (in seconds) in LED Display. Default 1000 = 1 second
int page = 1; /* flip page to display values*/
int z = 0; // if z=1 activate frequency calculation, if z=0, activate LCD display
// need to seperate LCD display with frequency calculation may be due to low memory speed of the board that cannot do both at the same timevoid setup() /*codes to run once */
{
/* 0- General */
Serial.begin(9600); /* to display readings in Serial Monitor at 9600 baud rates */
/* 5- frequency measurement */
startMicros = micros(); /* Start counting time for frequency measurement */
/* 6 - LCD Display */
LCD.begin(16,2); /* Tell Arduino that our LCD has 16 columns and 2 rows*/
LCD.setCursor(0,0); /* Set LCD to start with upper left corner of display*/
startMillisLCD = millis(); /* Start counting time for LCD display*/
startButtonMillis = millis(); /* for button cooldown time*/}
void loop() /*codes to run again and again */
{/* 0- General */
/* 0.1- Button Function */
int buttonRead;
buttonRead = analogRead (0); // Read analog pin A0. Pin A0 automatically assigned for LCD Display Button function (cannot be changed)
currentButtonMillis = millis();if(currentButtonMillis - startButtonMillis >= 300)
{/*Right button is pressed */
if (buttonRead < 60)
{ LCD.setCursor(0,0); LCD.print ("PRESS <SELECT> ");
LCD.setCursor(0,1); LCD.print ("TO CALLIBRATE ");}/* Up button is pressed */
if (buttonRead < 200 && buttonRead > 60) // Press up button to go to upper page
{
page = page - 1 ;
if( page <=0)
{ page = 1;}
startButtonMillis = millis();
}/* Down button is pressed */
if (buttonRead < 400 && buttonRead > 200) // Press down button to go to lower page
{
page = page + 1;
if (page >3)
{ page = 3; }
startButtonMillis = millis();
}/* Left button is pressed */
if (buttonRead < 600 && buttonRead >400)
{ LCD.setCursor(0,0); LCD.print ("PRESS <SELECT> ");
LCD.setCursor(0,1); LCD.print ("TO CALLIBRATE ");}/* Select button is pressed */
if (buttonRead < 800 && buttonRead > 600)
{
currentOffsetRead = 1; // to activate offset for current
voltageOffsetRead = 1; // to activate offset for voltage
powerOffsetRead = 1; // to activate offset for power
LCD.setCursor(0,0); /* set display words starting at upper left corner*/
LCD.print ("INITIALIZING..... ");
LCD.setCursor(0,1); /* set display words starting at lower left corner*/
LCD.print ("WAIT 5 SEC ..... ");
}
}/* 1- AC Voltage Measurement */
if(millis() >= voltageLastSample + 1 ) /* every 1 milli second taking 1 reading */
{
voltageSampleRead = 2*(analogRead(VoltageAnalogInputPin)- 512) + voltageOffset1; /* read the sample value */
voltageSampleSumOffset = voltageSampleSumOffset + voltageSampleRead; /* values accumulate for offset purpose every milli second */voltageSampleSum = voltageSampleSum + sq(voltageSampleRead) ; /* accumulate value with older sample readings*/
voltageSampleCount = voltageSampleCount + 1; /* to move on to the next following count */
voltageLastSample = millis() ; /* to reset the time again so that next cycle can start again*/
}if(voltageSampleCount == 1000) /* after 1000 count or 1000 milli seconds (1 second), do the calculation and display value*/
{
offsetVoltageMean = voltageSampleSumOffset/voltageSampleCount; /* average the offset reading*/voltageMean = voltageSampleSum/voltageSampleCount; /* calculate average value of all sample readings taken*/
RMSVoltageMean = sqrt(voltageMean)+ voltageOffset2; /* square root of the average value*/
Serial.print(RMSVoltageMean,decimalPrecision);
Serial.print(" V ");
voltageSampleSum =0; /* to reset accumulate sample values for the next cycle */
voltageSampleCount=0; /* to reset number of sample for the next cycle */
voltageSampleSumOffset=0;
}/* 1.1 - Offset AC Voltage */
if(voltageOffsetRead == 1) /* Run this code when button SELECT is pressed */
{
voltageOffset1 = 0;
if(millis()>= voltageOffsetLastSample + 1) /* keep countng time for offset1*/
{
voltageOffsetSampleCount = voltageOffsetSampleCount + 1; /* 1 milli second add 1 count*/
voltageOffsetLastSample = millis(); /* to reset the time again so that next cycle can start again*/
}
if(voltageOffsetSampleCount == 2000) /* after 2 seconds, run this codes. */
{
voltageOffset1 = -1*(offsetVoltageMean); /* set the offset values */
voltageOffsetRead = 2; /* go for second offset Settings */
voltageOffsetSampleCount = 0; /* to reset the time again so that next cycle can start again */
}
}if(voltageOffsetRead == 2) /* Run this code after first offset done */
{
voltageOffset2 = 0; /* set back currentOffset2 as default*/
if(millis()>= voltageOffsetLastSample + 1) /* keep countng time for offset2*/
{
voltageOffsetSampleCount = voltageOffsetSampleCount + 1;
voltageOffsetLastSample = millis();
}
if(voltageOffsetSampleCount == 2000) /* after 2 seconds, run this codes. */
{
voltageOffset2 = - RMSVoltageMean; /* set the offset values */
voltageOffsetRead = 0; /* change the offset mode to original, wait until the button is pressed again */
voltageOffsetSampleCount = 0; /* to reset the time again so that next cycle can start again */
}
}/* 2- AC Current Measurement */
if(millis() >= currentLastSample + 1) /* every 1 milli second taking 1 reading */
{
currentSampleRead = analogRead(CurrentAnalogInputPin)-512 + currentOffset1; /* read the sample value */currentSampleSumOffset = currentSampleSumOffset + currentSampleRead; /* accumulate offset value */
currentSampleSum = currentSampleSum + sq(currentSampleRead) ; /* accumulate value with older sample readings*/
currentSampleCount = currentSampleCount + 1; /* to move on to the next following count */
currentLastSample = millis(); /* to reset the time again so that next cycle can start again*/
}if(currentSampleCount == 1000) /* after 1000 count or 1000 milli seconds (1 second), do the calculation and display value*/
{
offsetCurrentMean = currentSampleSumOffset/currentSampleCount; /* average offset value*/currentMean = currentSampleSum/currentSampleCount; /* calculate average value of all sample readings taken*/
RMSCurrentMean = sqrt(currentMean)+currentOffset2 ; /* square root of the average value*/
FinalRMSCurrent = (((RMSCurrentMean /1024) *5000) /mVperAmpValue); /* calculate the final RMS current*/
Serial.print(FinalRMSCurrent,decimalPrecision*2);
Serial.print(" A ");
currentSampleSum =0; /* to reset accumulate sample values for the next cycle */
currentSampleCount=0; /* to reset number of sample for the next cycle */
currentSampleSumOffset=0; /* to reset accumulate offset value for the next cycle*/
}/* 2.1 - Offset AC Current */
if(currentOffsetRead == 1) /* Run this code when button SELECT is pressed */
{
currentOffset1 = 0; /* set currentOffset back to default value*/
if(millis()>= currentOffsetLastSample + 1) /* keep countng time for offset1*/
{
currentOffsetSampleCount = currentOffsetSampleCount + 1;
currentOffsetLastSample = millis();
}
if(currentOffsetSampleCount == 2000) /* after 2 seconds, run this codes. */
{
currentOffset1 = - offsetCurrentMean; /* set the offset values */
currentOffsetRead = 2; /* go for second offset Settings */
currentOffsetSampleCount = 0; /* to reset the time again so that next cycle can start again */
}
}if(currentOffsetRead == 2) /* Run this code after first offset done */
{
currentOffset2 = 0; /* set back currentOffset2 as default*/
if(millis()>= currentOffsetLastSample + 1) /* keep countng time for offset2*/
{
currentOffsetSampleCount = currentOffsetSampleCount + 1;
currentOffsetLastSample = millis();
}if(currentOffsetSampleCount == 2000) /* after 2 seconds, run this codes. */
{
currentOffset2 = - RMSCurrentMean; /* set the offset values */
currentOffsetRead = 0; /* change the offset mode to original, wait until the button is pressed again */
currentOffsetSampleCount = 0; /* to reset the time again so that next cycle can start again */
}
}/* 3- AC Power with Direction */
if(millis() >= powerLastSample + 1) /* every 1 milli second taking 1 reading */
{
sampleCurrent1 = analogRead(CurrentAnalogInputPin)-512+ currentOffset1; /* create variable for formula purpose */
sampleCurrent2 = (sampleCurrent1/1024)*5000;
sampleCurrent3 = sampleCurrent2/mVperAmpValue;
voltageSampleRead = 2*(analogRead(VoltageAnalogInputPin)- 512)+ voltageOffset1 ; // the formula is times 2 so that the amplitude can be reduced by half to overcome wave limit cut near 250Vac
powerSampleRead = voltageSampleRead * sampleCurrent3 ; /* real power sample value */
powerSampleSum = powerSampleSum + powerSampleRead ; /* accumulate value with older sample readings*/
powerSampleCount = powerSampleCount + 1; /* to move on to the next following count */
powerLastSample = millis(); /* to reset the time again so that next cycle can start again*/
}if(powerSampleCount == 1000) /* after 1000 count or 1000 milli seconds (1 second), do the calculation and display value*/
{
realPower = ((powerSampleSum/powerSampleCount)+ powerOffset) ; /* calculate average value of all sample readings */
Serial.print(realPower,decimalPrecision);
Serial.print(" W ");
apparentPower = FinalRMSCurrent*RMSVoltageMean; /*Apparent power do not need to recount as RMS current and RMS voltage values available*/
Serial.print(apparentPower,decimalPrecision);
Serial.print(" VA ");
powerFactor = realPower/apparentPower;
if(powerFactor >1 || powerFactor<0) /* if power factor more than 1 or less than 0, key in power factor = 0 */
{
powerFactor = 0;
}
powerSampleSum =0; /* to reset accumulate sample values for the next cycle */
powerSampleCount=0; /* to reset number of sample for the next cycle */
}/* 3.1 - Offset AC Power */
if(powerOffsetRead == 1) /* Run this code after first offset done */
{
powerOffset = 0; /* set back currentOffset2 as default*/
if(millis()>= powerOffsetLastSample + 1) /* keep countng time for offset2*/
{
powerOffsetSampleCount = powerOffsetSampleCount + 1;
powerOffsetLastSample = millis();
}
if(powerOffsetSampleCount == 5000) /* after 5 seconds, run this codes. */
{
powerOffset = -realPower;
powerOffsetRead = 0; /* change the offset mode to original, wait until the button is pressed again */
powerOffsetSampleCount = 0; /* to reset the time again so that next cycle can start again */exportFinalEnergyValue = 0; /* reset every energy to 0*/
importFinalEnergyValue = 0;
finalEnergyValue = 0;
}
}/* 4 - Accumulate & Daily Energy Measurement*/
if(millis() >= energyLastSample + 1) /* every 1 milli second taking 1 reading */
{
energySampleCount = energySampleCount + 1;
energyLastSample = millis();
}
if(energySampleCount == 1000) /* after 1000 count or 1000 milli seconds (1 second), do the calculation and display value*/
{
accumulateEnergy = realPower/3600; /* daily and accumulative seperated*/
finalEnergyValue = finalEnergyValue + accumulateEnergy;
Serial.print(finalEnergyValue/1000,decimalPrecision);
Serial.print(" kWh ");/* 4.1 - Import & Export Accumulate & Daily Energy Measurement*/
if (accumulateEnergy >=0) /* If the energy is positive, it is an import energy*/
{
importFinalEnergyValue = importFinalEnergyValue + accumulateEnergy;
}if (accumulateEnergy <0) /* If the energy is negative, it is an export energy*/
{
exportFinalEnergyValue = exportFinalEnergyValue - accumulateEnergy;
}energySampleCount = 0 ; /* Set the starting point again for next counting time */
}/* 5- frequency measurement */
if(z == 1) // Once LCD displayed values, the frequency then only start calculation
{
vAnalogRead = voltageSampleRead; /* read the analog value from sensor */
if(vAnalogRead < 0 && switch01 == 9) /* the begining stage make sure counting started with a clean value = 0 */
{
switch01 = 8;
}if(vAnalogRead >= 0 && switch01 ==8) /* start counting time when analog value = 0 going up trend */
{
startMicros = micros();
switch01 = 7;
}if(vAnalogRead < 0 && switch01 == 7) /* going downtrend do nothing, just acknowledgement */
{
switch01 = 6;
}if(vAnalogRead >=0 && switch01 == 6) /* after 1 cycle when going back to value 0 uptrend */
{
currentMicros = micros(); /* record the current time for frequency calculation*/
frequencySampleCount = frequencySampleCount +1 ; /* count the sample or cycle. accumulate the number oc cycle*/
switch01 = 7; /* standby to go to next downtrend cycle*/
}if(frequencySampleCount == expectedFrequency) /* if couting sample reach the set number of cycle (example 46 cycles) */
{a = currentMicros-startMicros ; /* get the time taken throughout the total cycles */
frequency = 1/((a/1000000)/frequencySampleCount); /* formula for frequency value by averaging */
Serial.print(frequency,decimalPrecision);
Serial.println(" Hz ");
frequencySampleCount = 0; /* reset the total sample taken become 0 for next cycle */
switch01 = 9; /* go back to initial stage looking for a confirmation signal to start count time*/
z = 0; /* close the frequency calculation until next LCD Display*/
}
}/* 6 - LCD Display */
currentMillisLCD = millis(); /* Set current counting time */
if (currentMillisLCD - startMillisLCD >= periodLCD && page ==1) /* for every x seconds, at page 1*/
{
LCD.setCursor(0,0); /* Set cursor to first colum 0 and second row 1 */
if(realPower >= 0) /* to determine the direction of current flow */
{ currentDisplay = FinalRMSCurrent; }
if(realPower < 0)
{ currentDisplay = -FinalRMSCurrent;}
LCD.print(currentDisplay,decimalPrecision*2); /* display current value in LCD in first row */
LCD.print("A ");
LCD.setCursor(8,0);
LCD.print(RMSVoltageMean,decimalPrecision); /* display current value in LCD in first row */
LCD.print("V ");
LCD.setCursor(0,1);
LCD.print(realPower,decimalPrecision);
LCD.print("W ");
LCD.setCursor(8,1);
LCD.print(apparentPower,decimalPrecision); /* display current value in LCD in first row */
LCD.print("VA ");
startMillisLCD = currentMillisLCD ; /* Set the starting point again for next counting time */
z = 1; /* initiate frequency calculation */
}if( currentMillisLCD - startMillisLCD >= periodLCD && page == 2) /* for every x seconds, at page 2*/
{
LCD.setCursor(0,0); /* Set cursor to first colum 0 and second row 1 */
LCD.print("PF=");
LCD.print(powerFactor,decimalPrecision*2);
LCD.print(" ");
LCD.setCursor(9,0);
LCD.print(frequency,decimalPrecision);
LCD.print("Hz ");
LCD.setCursor(0,1);
LCD.print("netE=");
LCD.print(finalEnergyValue/1000,decimalPrecision*2);
LCD.print("kWh ");
startMillisLCD = currentMillisLCD ; /* Set the starting point again for next counting time */
z = 1; /* initiate frequency calculation */
}if( currentMillisLCD - startMillisLCD >= periodLCD && page == 3) /* for every x seconds, at page 3*/
{
LCD.setCursor(0,0); /* Set cursor to first colum 0 and second row 1 */
LCD.print("impE=");
LCD.print(importFinalEnergyValue/1000,decimalPrecision*2);
LCD.print(" kWh ");
LCD.setCursor(0,1);
LCD.print("expE=");
LCD.print(exportFinalEnergyValue/1000,decimalPrecision*2);
LCD.print(" kWh ");
startMillisLCD = currentMillisLCD ; /* Set the starting point again for next counting time */
z = 1; /* initiate frequency calculation */
}}
-
stefi68
addikt
Törölve
[ Szerkesztve ]
◄--- A vaknál is vakabb az, aki nem lát a szemétől ---►
-
st3v3np3t3r
veterán
hahó
[ Szerkesztve ]
Galaxy S23 5G 256GB//HP Victus 16+Rog Ally RC71L//Korábbi hsz-eim #97246720 név alatt...
-
zebra_hun
addikt
...
[ Szerkesztve ]
-
st3v3np3t3r
veterán
Off
[ Szerkesztve ]
Galaxy S23 5G 256GB//HP Victus 16+Rog Ally RC71L//Korábbi hsz-eim #97246720 név alatt...
-
MadMancs
veterán
Teszt
Első
Jeej
[ Szerkesztve ]
Kedvező árú mobil előfizetésekért keress bátran. +36708034865 <-- Tel/SMS/WhatsApp, http://mancsmobiltavkozles.hu , szabo.norbert@mancsmobiltavkozles.hu ,
-
axlfsi
veterán
BOLD
LINK
OFFTOPIC˜”*°•.˜”*°• 𝟚𝟘+ é𝕧𝕖 𝕒 𝕜ö𝕫ö𝕤𝕤é𝕘 𝕥𝕒𝕘𝕛𝕒 •°*”˜.•°*”˜
-
axlfsi
veterán
OFFTOPIC
ONTOPIC
BOLDTEXT˜”*°•.˜”*°• 𝟚𝟘+ é𝕧𝕖 𝕒 𝕜ö𝕫ö𝕤𝕤é𝕘 𝕥𝕒𝕘𝕛𝕒 •°*”˜.•°*”˜
-
axlfsi
veterán
no, lássuk csak, ki a legnagyobb király, 3, 2, 1
axlfsi˜”*°•.˜”*°• 𝟚𝟘+ é𝕧𝕖 𝕒 𝕜ö𝕫ö𝕤𝕤é𝕘 𝕥𝕒𝕘𝕛𝕒 •°*”˜.•°*”˜
-
MadMancs
veterán
Teszt teszt teszt Teszt
Kedvező árú mobil előfizetésekért keress bátran. +36708034865 <-- Tel/SMS/WhatsApp, http://mancsmobiltavkozles.hu , szabo.norbert@mancsmobiltavkozles.hu ,
-
st3v3np3t3r
veterán
Halihó
Galaxy S23 5G 256GB//HP Victus 16+Rog Ally RC71L//Korábbi hsz-eim #97246720 név alatt...
-
MadMancs
veterán
Kedvező árú mobil előfizetésekért keress bátran. +36708034865 <-- Tel/SMS/WhatsApp, http://mancsmobiltavkozles.hu , szabo.norbert@mancsmobiltavkozles.hu ,
-
vacs
veterán
Play Store ikon elhelyezése a főképernyőn, Chromecast with Google TV-n!
1. Fejlesztői beállítások engedélyezése:
Chromecast beállítások > rendszer > névjegy > Android os tv build sorra kattintsunk addig, míg ki nem írja, hogy Ön mostantól fejlesztő!
Videós segítség itt.2. Keressük meg a Play Áruházat:
Chromecast beállítások, alkalmazások, összes alkalmazás, Rendszer alkalmazások megjelenítése, Google Play Áruház3.1 Keresd meg és telepítsd fel a Send files to TV app-ot!
3.2 Keresd meg a File Explorer appot vagy bármelyik fájlkezelőt és telepítsd fel!
4. Telefonra is telepítsd fel a Send files to TV app-ot!5. Telefonra letöltöd xda-ról a Play Áruház parancsikonját! [link]
Fontos: a telefon és a Chromecast azonos wifi hálózaton legyen!
6.1 Indítsd el a Send files to TV appot Chromecast-en és válaszd a Receive opciót!
6.2 Indítsd el a Send files to TV appot telefonodon és válaszd a Send opciót!
6.3 Telefonon válaszd ki a korábban letöltött Play_Store_ATV_Shortcut.apk-t és küldd át!
Videós segítség itt7. Ismeretlen források engedélyezése:
Chromecast beállítások > alkalmazások > biztonság és korlátozások > ismeretlen források8. Indítsd el Chromecast-en a korábban letöltött fájlkezelőt és telepítsd a Play_Store_ATV_Shortcut.apk-t.
Visszalépve a főképernyőre ott lesz a Play Store ikon a sor végén.
by vacs
[ Szerkesztve ]
(^)(>.<)(^)
Új hozzászólás Aktív témák
- Szeged és környéke adok-veszek-beszélgetek
- Milyen program, ami...?
- ZTE Blade A34 - nem a legélesebb kés a fiókban
- Gray Zone Warfare
- iPhone topik
- Még több embert rúgott ki a Tesla
- Milyen CPU léghűtést vegyek?
- Kerékpárosok, bringások ide!
- Luck Dragon: Asszociációs játék. :)
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- További aktív témák...
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: Ozeki Kft.
Város: Debrecen