Der Uhrenprojekt vor einem Jahr fertig geworden. Dies ist der Beginn eines neuen Projekts, das zu einer Art Leistungsmonitor werden könnte.
Hier ist ein Bild von zwei Wellenformen auf einem Old-School-Oszilloskop aus dem Jahr 1990.
Sine wave is volts, pulse is ampsSine wave is volts, pulse is ampsSine wave is volts, pulse is ampsSine wave is volts, pulse is ampsSine wave is volts, pulse is ampsSine wave is volts, pulse is ampsSine wave is volts, pulse is ampsSine wave is volts, pulse is ampsSine wave is volts, pulse is ampsSine wave is volts, pulse is ampsSinuswellen sind Volt, Impulse sind Ampere
Wenn die Einheiten und Maßstäbe stimmen, ist die Integration von Volt * Ampere die tatsächliche Leistung, die von der Last verbraucht wird. Ich habe das gemacht, es mir angeschaut und 47 Watt bekommen. Das war etwas enttäuschend, da es sich hierbei um das getestete Gerät handelt.
30W CFL bulb30W CFL bulb30W CFL bulb30W CFL bulb30W CFL bulb30W CFL bulb30W CFL bulb30W CFL bulb30W CFL bulb30W CFL bulb30W CFL-Glühbirne
Wenn das eine Glühbirne wäre, wären die Volt- und Amperewerte sehr ähnliche Wellenformen, sauber aufeinander abgestimmt. Aber die meisten heutigen elektronischen Geräte benötigen Strom während eines Bruchteils eines Spannungszyklus.
Mehr sehen... Die Boards der Version 0 kamen kurz vor Jahresende an und haben ihren Zweck erfüllt. Ich erwarte morgen die Boards der Version 1. Hier ist die Platine der Version 0, die die Spannungssinuswelle auf einem 2,8-Zoll-Display mit 240 x 320 Pixeln und einer zusätzlichen Platine zeigt. Der Flaschenverschluss dient der Waage; Schauen Sie sich den winzigen Kondensator im gelben Kreis an. Der Leiterplattenhersteller montiert das; Ich bin mir ziemlich sicher, dass ich das nicht kann.
The display is mounted to the red card, which plugs in to a connector mounted to the vertical row of holes at bottom left-center.The display is mounted to the red card, which plugs in to a connector mounted to the vertical row of holes at bottom left-center.The display is mounted to the red card, which plugs in to a connector mounted to the vertical row of holes at bottom left-center.The display is mounted to the red card, which plugs in to a connector mounted to the vertical row of holes at bottom left-center.The display is mounted to the red card, which plugs in to a connector mounted to the vertical row of holes at bottom left-center.The display is mounted to the red card, which plugs in to a connector mounted to the vertical row of holes at bottom left-center.The display is mounted to the red card, which plugs in to a connector mounted to the vertical row of holes at bottom left-center.The display is mounted to the red card, which plugs in to a connector mounted to the vertical row of holes at bottom left-center.The display is mounted to the red card, which plugs in to a connector mounted to the vertical row of holes at bottom left-center.The display is mounted to the red card, which plugs in to a connector mounted to the vertical row of holes at bottom left-center.Das Display ist auf der roten Karte montiert, die an einen Stecker angeschlossen wird, der in der vertikalen Lochreihe unten links in der Mitte angebracht ist.
Das Testen der WLAN-Verbindung während des Wartens auf die Boards der Version 1 lässt darauf schließen, dass 40.000 bis 50.000 Bytes pro Sekunde eine nachhaltige Datenrate sind, zusammen mit allem, was dieser Computer sonst noch tun muss. Ich möchte sowohl die Spannungs- als auch die Stromkanäle betrachten, also etwa 20 KB/s für jede digitalisierte Wellenform. Irgendwann möchte ich eine FFT für die Daten verwenden und habe angefangen, über Puffergrößen nachzudenken. FFTs mögen eine Leistung in zwei Größen. Wie viel? Hier ist ein Testcode:
dt = New Table( "Untitled", "invisible", New Column( "size" ), New Column( "time" ) );
dt << New Column( "factors",
character,
formula(
primes = [2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103 107 109 113
127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199 211 223 227 229 233 239 241 251 257
263 269 271 277 281 283 293 307 311 313 317 331 337 347 349 353 359 367 373 379 383 389 397 401 409
419 421 431 433 439 443 449 457 461 463 467 479 487 491 499 503 509 521 523 541 547 557 563 569 571
577 587 593 599 601 607 613 617 619 631 641 643 647 653 659 661 673 677 683 691 701 709 719 727 733
739 743 751 757 761 769 773 787 797 809 811 821 823 827 829 839 853 857 859 863 877 881 883 887 907
911 919 929 937 941 947 953 967 971 977 983 991 997 1009];
start = size;
ip = 1;
q = primes[ip];
result = "";
While( start > 1,
If( Mod( start, q ) == 0,
result = result || Char( q ) || ",";
start = start / q;//
, //
ip += 1;
q = primes[ip];
If( q * q > size, Break() );
)
);
If( start > 1,
result = result || Char( start )
);
result;
)
);
For( i = 2, i <= 2 ^ 19, i += 1,
x = 0;
x = J( i, 1, Random Uniform() );
start = HP Time();
FFT( {x} );
end = HP Time();
dt << addrows( 1 );
dt:size[N Rows( dt )] = i;
dt:time[N Rows( dt )] = (end - start) / 1e6;
If( i == 10,
dt << Graph Builder(
Size( 1709, 424 ),
Show Control Panel( 0 ),
Variables( X( :size ), Y( :time ) ),
Elements( Points( X, Y, Legend( 5 ) ) ),
SendToReport(
Dispatch(
{},
"Graph Builder",
FrameBox,
{Marker Size( 0 ), Marker Drawing Mode( "Normal" )}
)
)
);
Wait( .1 );
);
If( Mod( i, 100 ) == 0,
Wait( 0 )
);
);
Die Tabelle sieht so aus:
2 is great,3 and 5 nice, maybe 7.2 is great,3 and 5 nice, maybe 7.2 is great,3 and 5 nice, maybe 7.2 is great,3 and 5 nice, maybe 7.2 is great,3 and 5 nice, maybe 7.2 is great,3 and 5 nice, maybe 7.2 is great,3 and 5 nice, maybe 7.2 is great,3 and 5 nice, maybe 7.2 is great,3 and 5 nice, maybe 7.2 is great,3 and 5 nice, maybe 7.2 ist großartig, 3 und 5 gut, vielleicht 7.
Es ergibt eine hübsche Grafik:
The fast buffer sizes, near the bottom, don't have large factors.The fast buffer sizes, near the bottom, don't have large factors.The fast buffer sizes, near the bottom, don't have large factors.The fast buffer sizes, near the bottom, don't have large factors.The fast buffer sizes, near the bottom, don't have large factors.The fast buffer sizes, near the bottom, don't have large factors.The fast buffer sizes, near the bottom, don't have large factors.The fast buffer sizes, near the bottom, don't have large factors.The fast buffer sizes, near the bottom, don't have large factors.The fast buffer sizes, near the bottom, don't have large factors.Die schnellen Puffergrößen weiter unten haben keine großen Faktoren.
Was ist in diesem seltsamen Punktestapel um die 9500 herum enthalten? Auswählen, Teilmengen, einen Blick darauf werfen ...
Bigger factorsBigger factorsBigger factorsBigger factorsBigger factorsBigger factorsBigger factorsBigger factorsBigger factorsBigger factorsGrößere Faktoren
Es sieht so aus, als ob JMP in der Lage sein wird, ein Echtzeit-Dashboard zu erstellen, wenn ich einen 1024- oder 2048-Sample-Puffer verwende.
Very fast.Very fast.Very fast.Very fast.Very fast.Very fast.Very fast.Very fast.Very fast.Very fast.Sehr schnell.
Selbst bei 60 Mal pro Sekunde liegt sie unter 1 %. Ich kann die FFT auf dem esp32 ausführen. Anstatt vollständige Wellenformen zu senden, senden Sie dann möglicherweise nur die obersten N Frequenzbereiche und Amplituden. Eine Reihe von Kompromissen, die es zu berücksichtigen gilt.
Geht immer noch. Frisch kalibriert mit einer 160-Ω-Dummy-Last, handelt es sich um eine nominelle 13-Watt-CFL. Der ESP32 verwendet WLAN, um die Grafiken und Messgeräte in einem Webbrowser zu erstellen.
Die vom ESP32 übertragene WLAN-Signalstärke fügt der digitalisierten Spannung Rauschen hinzu. Wenn es so heruntergedreht ist, sieht die Sinuskurve ziemlich glatt aus. Das FFT-Diagramm ist überlagert ... das ist nicht die Y-Achse, sondern das 60-Hz-Bin für die FFT. Diese FFT hat eine lineare Y-Achsenskala.