1
Vývoj / Re:Micropython do produkčního zařízení
« kdy: 18. 10. 2023, 23:34:58 »Před pár lety jsem si dělal domácí meteostanici. Pro čidla jsem použil micropython, čidlo fungovalo velmi rychle a super. Jen výdrž na baterie byla mizerná. Když mne to neustálé nabíjení přestalo bavit, tak jsem kód přepsal do C. Architekturu jsem víceméně zachoval, kód dělá 1:1 to samé. A najednou mám 6x větší výdrž na baterii.
6 krát viac pri načítaní čidiel, to sa mi nepozdáva. Je pre to nejaké vysvetlenie? Robili ste všetko optimálne?
Vysvětlení mám dvě - používám ESPNow a v době micropy verze kódu byla implementace ESPNow pro micropy velmi nestabilní a pravděpodobně neoptimalizovaná, takže wifi bylo delší dobu aktivní při odesílání (a spotřeba je v tom případě enormní). Ale hlavní důvod bude v tom, že micropy kód běžel velmi dlouho - čidlo je v deepsleep a buzené časovačem - u micropy se musí vzbudit, nabootovat micropy, ten musí spustit kód atakdále... U nativního kódu v C se mi průměrnou dobu vzbuzení povedlo zkrátit asi 5x, což odpovídá výdrži baterie.
Jinak, kód v principu funguje takhle:Kód: [Vybrat]- změř veličiny,
- porovnej veličiny s předchozím měřením a pokud je rozdíl příliš veliký
nebo
- - už určitou dobu nebyly odeslána žádná data
nebo
- - není dostupné předchozí měření, tak:
- - - inicializuj wifi,
- - - odešli nová data,
- - - vypni wifi,
- - - ulož nová data
- uspi zařízení.
Ale je fakt, že u micropy verze nebyla řešená efektivita kódu...
Ďakujem za vysvetlenie.