Vojtěch Vosáhlo
Vytvořené odpovědi
-
AutorPříspěvky
-
Vojtěch VosáhloÚčastník
Máte to super vymyšlené a to je hodně důležité u jakéhokoliv projektu. Zaprvé máte už nějak navržené schéma? Většinou je lepší nejdříve dořešit hardware a pak až software. Taky by mě zajímalo pár věcí ohledně vašich rozhodnutí. Psal jste o teplotních čidlech. Proč byste rád použil analogová? Nic proti nim nemám ale nevím jak to bude s přesností při použití ADC (analogově digitální převodník) u arduina. Nevím jestli bude tak jednoduché zjistit rozdíl mezi 25 a 28 stupni (u některých je rozdíl třeba 10mV na stupeň celsia), pak by možná bylo lepší něco digitálního nebo použít externí napěťovou referenci (externí „zdroj“ napětí s minimálním šumem se kterým se potom porovnává napětí na analogových pinech). Bohužel nemluvím z vlastních zkušeností tak mě tu snad opraví někdo kdo analogy používá pokud melu nesmysly.
Fotorezistory můžete taky použít jen 2 místo 4. Panel by mohl při spuštění programu „proskenovat“ oblohu a zjistit kde slunce je a podle toho určit jestli je ráno nebo večer. Možná máte jiný důvod pro používání i těch pevně přichycených fotorezistorů ale já ho nevidím.
Určitě bych počítal s použitím limitových spínačů které vypnou motory když se panel otočí na určitou koncovou pozici. Ušetří vám to hodně starostí a zabere jen 2 piny.
Co se týče kódu, řešil bych to teprv až budete mít opravdu vymyšlený hardware. Pokud to ale chcete přesně tak jak jste napsal tak můžem začít makat na prográmku 🙂
Mimo to vítejte, super že se to tu tak rozrůstá
Vojta
Vojtěch VosáhloÚčastníkNašel jsem je na PTshop.cz, nemám žádný zkušeností ale mají je skladem.
https://www.ptshop.cz/Dupont-c24_6_2.htm
Divím se že SOSelectronic, GES, HWkitchen ani žádný další to nemá. Tolik věcí nám v ČR chybí…Vojtěch VosáhloÚčastníkNejlepší bude číst data z url, tedy nastavit textbox jako formulářový a mít pod ním tlačítko nastavené jako submit. Po stisknutí tlačítka se data z formuláře „odešlou“ a vy je přečtete z url. Otázka je jakou přesně aplikaci potřebujete. Je o tlačítko na odeslání přípustné nebo chcete číst na jiný podnět?
Vojtěch VosáhloÚčastníkPokud chcete samostudium tak stačí vědět co vlastně dělá client.read() a pak mít základní povědomí o smyčkách for a while.
Ve vašem případě by stačilo přidat do smyčky proměnnou ke které se při každém cyklu přičte 1. O tolik se pak posuneme v poli.
Zápis dat do pole by tedy vypadal asi takto:
int i = 0; while (client.available()) { c[i] = client.read(); i++; } i = 0;
pokud byste pak chtěl data vyčítat a třeba vypisovat, použil byste smyčku for asi takto:
for(int j = 0; i < sizeof(c); i++){ Serial.print(c[i]); }
Vojtěch VosáhloÚčastníkAsi tento plugin, stáhněte si ho a nainstalujte.
Poté kamkoliv na svou stránku vložte toto:
[insert_php] $thingspeakAPItemp = file_get_contents('https://api.thingspeak.com/channels/216038/fields/1/last'); $thingspeakAPIpress = file_get_contents('https://api.thingspeak.com/channels/216038/fields/3/last'); $thingspeakAPIhumi = file_get_contents('https://api.thingspeak.com/channels/216038/fields/2/last'); $tempLast = round($thingspeakAPItemp, 2) . " °C "; $pressLast = round($thingspeakAPIpress, 2) . " hPa "; $humiLast = round($thingspeakAPIhumi, 2) . "%"; [/insert_php] <h1>[insert_php] echo $tempLast; [/insert_php]</h1> <h1>[insert_php] echo $pressLast; [/insert_php]</h1> <h1>[insert_php] echo $humiLast; [/insert_php]</h1>
Vojtěch VosáhloÚčastníkNo jo, taky máme meteostanici na thingspeaku 🙂
Pro získání jsonu s poslední hodnotou stačí totohttps://api.thingspeak.com/channels/216038/fields/1/last.json?timezone=Europe%2FPrague
Když to obalíme jednoduchým php dostanete takovýto kódík který vypíše poslední hodnoty.
<?php $thingspeakAPItemp = file_get_contents('https://api.thingspeak.com/channels/216038/fields/1/last'); $thingspeakAPIpress = file_get_contents('https://api.thingspeak.com/channels/216038/fields/3/last'); $thingspeakAPIhumi = file_get_contents('https://api.thingspeak.com/channels/216038/fields/2/last'); $tempLast = round($thingspeakAPItemp, 2) . "°C "; $pressLast = round($thingspeakAPIpress, 2) . "hPa "; $humiLast = round($thingspeakAPIhumi, 2) . "%"; ?> <!DOCTYPE html> <html> <body> <h1><?php echo $tempLast ?></h1> <h1><?php echo $pressLast ?></h1> <h1><?php echo $humiLast ?></h1> </body> </html>
Pokud chcete vidět ukázku uploadnul jsem jí sem.
Vojtěch VosáhloÚčastníkJen malinký dodatek z mojí zkušenosti. Většinou když dostávám něco z webu třetích stran vytvářím si webového „prostředníka.“ Nějaký malý skript v php nebo čemkoliv jiném který si vyžádá potřebná data a převede je na to co chci já. Rozhodně je to jednoduší než se snažit dělat podobná kouzla přes arduino. Samo sebou si neplatím hosting na každý projekt, stránka na webzdarma.cz bohatě postačí ?
Vojtěch VosáhloÚčastníkJde to s arduinem udělat? Ano. Je na to vhodné? Asi né tak úplně, raspberry by mohlo být třeba lepším a jednodušším řešením, je otázka na co se vy cítíte.
Jde o takovou důležitou maličkost. Musí „projekt“ umět hrát několik věcí najednou? Např. rep 1 hraje tón 1 zatímco 2 hraje tón 2.
Na přehrávání zvuků existuje mnoho modulů, pak se to dá řešit i pomocí knihovny jen s arduinem, ale vše závisí na předchozí otázce…
Vojtěch VosáhloÚčastníkDobře, generuje mi to stejně, nebo alespoň podobně, můj hex je v příloze, je jiný než ten váš ale je to jen zkompilované arduinoISP. V tomhle případě bych tedy asi řádek dopsal FF tzn. toto:
:02134000 FFCFDD
se změní na toto:
:02134000 FFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDD
Tak by to asi mělo fungovat, to DD musí být na konci protože by to měl být checksum který my ignorujeme, takže data která pošlete by mělo být těchto 16B FFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
Vojtěch VosáhloÚčastníkPošlete *.ino jestli máte abych to zkompiloval.Pardon, to je obyčejné ISP, je to z Příkladů ne?
Vojtěch VosáhloÚčastníkTakhle vám to vygenerovalo ten intel hex soubor? To vypadá opravdu divně. Hoďte sem ten *.hex co to vygenerovalo a i ten kód ze kterého jste to generoval, já to zkusím u sebe.
Vojtěch VosáhloÚčastníkDobrý den, dostal jste se s tím někam nebo jste na mrtvém bodě? Já se k tomu bohužel dostanu až o víkendu…
Vojtěch VosáhloÚčastníkZdravím, kouknu na to zas co nejdřív, akorát mám teď hodně práce. Jen aby jste věděl že jsem nezapoměl ?
Vojtěch VosáhloÚčastníkJeště jsem zapoměl zmínit že jsou tam 2 programy. Kratší je blink v GCC s pauzou 100ms a delší je arduinovské Blink s pauzou 1s. Prostě si odkomentujte co potřebujete a nebo zkuste vlastní kód.
Vojtěch VosáhloÚčastníkNic extra, prostě jen metoda pokus omyl. Vím že při malých datech to fungovalo ale když bylo dat víc, nevzalo arduino vše, tak jsem tipnul a vyšlo to ?
-
AutorPříspěvky