28. 2. 2023

Nafúknutá batéria notebooku

Notebooky sú tenšie a batérie 18650 sa z nich vytratili. Nafukujúce batérie útočia tak, ako to poznáme z telefónov. Vytrácajú sa vymeniteľné a prevládajú zabudované. Občas si skontrolujte, či sa vám NB nezačína guľatiť.

23. 2. 2023

Javascript - AJAX načítanie časti obsahu stránky z iného zdroja

Pre dynamické zmeny na stránke bez jej obnovenia je možné použiť načítanie obsahu externej stránky javascriptom a jeho vloženie do existujúcej.

Výhodné je to použiť napríklad pre obnovovanie stavovej informácie, prípadné paralelné načítanie viacerých informácií.

Kód html, dole span prvky budú mať prepísaný obsah z externých stránok:

<html>
<head>
 <script type='text/javascript' src='tabulka.js?v=2'></script>
 <style>
.grida2 {
    display: grid;
    grid-template-columns: auto auto;
    max-width: 980px;
#    margin: auto;
}
.grida2 > div {
  margin: 0px;
  padding: 0px;
}
 </style>
</head>
<body>
<div class="grida2">
 <div> <span id='OBS1'>nacitavam tabulku1.. </span> </div>
 <div> <span id='OBS2'>nacitavam tabulku2.. </span> </div>
</div>
</body>
</html> 

Je tu použitý CSS grid, pre zobrazenie dvoch stĺpcov s obsahom vedľa seba.

Javascript zabezpečí prvé načítanie a pravidelné obnovovanie obsahu:

var MyTimer		= null;
var MyPocetSecund	= 31;

function requestHttp(url,nazovObj)
{
    var request = null;
    try {request = new XMLHttpRequest();}
    catch(e) {
        try {request = new ActiveXObject('Microsoft.XMLHTTP');}
        catch(e) {request = null;}
    }
    if(request == null) { return; }
    request.onreadystatechange = function()
    {
        if (request.readyState == 4)
        {
            if (request.status == 200)
            {
                document.getElementById(nazovObj).innerHTML = request.responseText;
            }
        }
    }
    request.open('GET', url, true);
    request.setRequestHeader("Content-Type", "text/plain;charset=UTF-8");
    request.setRequestHeader("Expire", "now");
    request.setRequestHeader("Pragma", "no-cache");
    request.send(null);
}

function RefreshStranky()
{
	url1 = 'obsp1.php';
	url2 = 'obst1.php';

	requestHttp(url1,'OBS1');
	requestHttp(url2,'OBS2');

	MyTimer = window.setTimeout('RefreshStranky();',(MyPocetSecund + Math.floor(Math.random() * 5 ))*1000);
}

RefreshStranky();

Novšia možnosť je sťahovať obsah cez fetch-API:
async function getData(url2,nazovObj2){
       const response= await fetch(url2);
       const data= await response.text();
       document.getElementById(nazovObj2).innerHTML=data;
     }

3. 2. 2023

Ako odhaliť vadný kondenzátor v spínanom zdroji bez rozoberania

Je možné odhaliť na zvarenom napájacom adaptéri prenajatého internetového routera, že má vadné kondenzátory? Ako sa prejavia?

Oprava - ochladzovač vzduchu - vypadnuté lamely smerujúce vzduch

 Po dlhodobom odložení som sa pustil do čistenia chladiča vzduchu LH300 od Somogyi Electronic. Po vyumývaní povrchu som zistil, že sú lamely ktoré smerujú vzduch stlačené do strán. Po narovnaní stále nevyzerali, že ich niečo drží - bolo potrebné pozrieť sa dnu, čo nebolo také jednoduché.

celý chladič vzduchu

4. 1. 2023

SVG graf - vektorový obrázok priamo v html kóde

 Chcel som nahradiť komerčnú knižnicu kresliacu grafy v PHP a napadlo ma skúsiť to najskôr vlastnými silami. Ako možnosti mi vyskočili "canvas" zo štandardu HTML5 a SVG. Kým prvé generuje klasické bitmapové "obrázky", to druhé je zaujímavé pre svoju kompatibilitu.

SVG je vektorový formát obrázkov, vyvíjaný W3C (XML zápis), ktorý je tu už cez 20 rokov, webové prehliadače ho preto dobre poznajú. Bol vyvíjaný aj pre web, prehľadným XML zápisom umožňuje vkladanie aj priamo do HTML kódu stránky.

Pre vkladanie do kódu použijeme "svg" tag, rovnako ako prípadného externého do .svg súboru:

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 640" width="640">
</svg> 
Parameter viewBox nastaví aké súradnice chceme zobraziť. Vieme tak spraviť výsek z obrázku, zoom, alebo upraviť jeho okraje. 
Až po nastavení tohto parametra vie pre width a height parameter prepočítať rozmery.

Táto minimalistická hlavička sa mi osvedčila, plnohodnotnú hlavičku nájdeme napr. tu https://www.w3.org/TR/SVG11/struct.html#NewDocument

Spravme si funkciu pre koláčový graf..

3. 1. 2023

Rozbor - NiMh batérie Songpus 4700mAh (AA)

 S blížiacimi sa Vianocami nastal po rokoch čas pre dokúpenie nabíjateľných článkov AA. Kým bežné značky idú za ceny 2-4€ za kus, pri kapacite 1900-2600mAh, máme tu rekordéra 4700mAh za necelých 1,40€, batérie Songpus.

Vravím si - píšu o najmodernejšej technológií, sú extrémne ľahké, možno používajú lítium 😀 Tak som ich hodil do nabíjačky na test režim a vyšlo mi okolo 620mAh. Ďalší cyklus to stúplo na čosi mierne cez 700. V treťom cykle sú všetky okolo 680-770mAh, jedna má vnútorný odpor okolo 43mohm, zvyšné 82mohm.

Songpus 4700mAh NiMh

Na fake batérie som si už na čínskych stránkach zvykol, pri lítiových 18650 článkoch rôzne farebné nápisy s vymyslenými kapacitami. Že sa raz dopracujú aj na slovenské shopy v podobe AA/AAA batérií ma nenapadlo. Vyzerá že sú nové, vďaka nárastu kapacity po prvých dobitiach, avšak vďaka váhe, kapacite a vnútornému odporu veľmi oklamané voči známym značkám. Ak by som porovnával LADDA batérie za 2€ s týmito za 1,40€, povedal by som že ma číňan úspešne oklamal a zarobil na mne ďaleko viac ako západniar. Nekupovať.

Danyk spravil aj vnútorný rozbor podobných nepodarkov (https://danyk.cz/test_aku.html) SDNMY bude pravdepodobne od rovnakého výrobcu, avšak s menšou kapacitou na obale.

2. 1. 2023

Oprava - roztrhnutá vianočná reťaz na batérie s časovačom

 Minule pes a teraz zlodej. Po odmotaní zhruba 40ks LED to vzdal a reťaz roztrhal. Našťastie zistil, že taká roztrhnutá nesvieti a tak ju rovno zahodil a vzal len batérie.

schéma zapojenia LED

Reťaz je napájaná 3ks AA batériami, teda zapojenie LED je tu paralelné (3 - 4,5V). Keďže ide o dlhú reťaz, ťahali jeden vodič až na opačný koniec pre rovnomerné rozloženie úbytkov napätia. LED sú v oboch smeroch, teda žltá a červená svieti vždy spolu, tak ako modrá a zelená. A možno ich prepínať medzi sebou, či rýchlym striedaním polarity zapnúť naraz.

Máme pretrhnuté 3 vodiče, najskôr spojím priechodzí vodič (nepripojený na LED), potom premeriam v mieste spojenia dvoch zvyšných, ktorý je z nich spojený priamo na priechodzí, ten zapojím ako posledný aby som nevytvoril skrat. Ten, čo mi ostal pokusne prepojím, ak svieti polovičným svitom celá reťaz, prepojil som nesprávne a pripojím druhý. Zostáva posledný a je to.
Pri pretrhaní na viacerých miestach overím otočenie pre rovnaké farby multimetrom v diódovom režime.