Luke_CZ
Vytvořené odpovědi
-
AutorPříspěvky
-
Vojtěch Vosáhlo
ÚčastníkJá osobně bych u takového projektu volil DS18B20, dají se najít i v hezkých vodotěsných obalech a nikdy s nimy nebyl problém. Pojďme tedy na takovou reprezentaci programu slovy:
//definice pinů a proměnných smyčka{ pokud (cas = den){ pokud(chceme ohrivat){ //třeba 10, chce to nějaký prostor, testovat jestli se = 0 by nemělo význam dokud (rozdil fotorezistoru < 10){ otacejMotor(strana = x); //Otáčej motor na stranu kde je na fotor. víc světla } }nebo pokud(nechceme ohrivat){ otacejMotor(strana = x); //Otáčej motor tak aby na pannel svítilo co nejmíň světla - nebo nastav panel na jednu z konečných pozic } }pokud (cas = noc); // Nedelej nic }
Je to super zjednodušené ale pomůže to pro představu. Osobně bych začal „kódit“ trochu od prostředka. Pojďme zkusit třeba zrealizovat funkci co přečte rozdíl mezi fotorezistory.
int rozdilRezistoru(){ int R1 = analogRead(pinR1); //Přečtu napětí na prvním fotorezistoru int R2 = analogRead(pinR2); //Přečtu napětí na druhém fotorezistoru int rozdil = R1 - R2; //Rozdíl napětí return rozdil; //Vrátím rozdíl napětí jako hodnotu }
Tahle funkce vám jednoduše vrátí rozdíl mezi senzory. Ale pozor, není to hodnota napětí. analogRead(); totiž vrací hodnoty 0-1023 (10bit) které jsou vlastně namapované na referenci. Tzn. s referencí 5V znamená hodnota 0 0V a 1023 5V. Je to zatím srozumitelné? Můžete začít stavět základní strukturu programu podle toho co jsem napsal výše a pak přidávat funkce které vám ulehčí práci.
Ptejte se na vše co vám přijde na mysl. Taky si kdyžtak řekněte pokud popisuju něco co jsou pro vás už banálnosti, opravdu nevím jak jste na tom 🙂
marvik.jiri
ÚčastníkDobrý den Vojto,
děkuji za reakci a první připomínky a také za přijetí.
Hardwarově to vymyšlené mám. Mechanika je brnkačka 🙂
Již se projevuje má neznalost a málo zkušeností. V žádném případě netrvám na analogovém vstupu. Chtěl bych použít teplotní čidla například DS18B20. Jsou vodotěsná takže bych s jedním mohl měřit i teplotu vody.Samozřejmě před namontováním a zkušebním provoze program musím doladit na parapetu a výpisem na sériovou linku a s externím teploměrem vedle. Naměřené hodnoty pak zapsat do programu, tak aby fungoval dle představ a ne třeba o pár stupňů celsia jinak. Takjisto zkalibrovat světelné podmínky při použití fotodporů.
Použití 4 fotorezistorů s nichž jsou dva pevné jsem volil z toho důvodu, že by program hned věděl kde zhruba je a jakým směrem má natočit solární panel aby našel slunce. Fungovalo by to na principu rozdílu hodnot na fotorezistorech a zvolení směru natočení k tomu, který snímá větší intenzitu světla. Dále by fungovalo ovládání již jen podle těch dvou pohyblivých na panelu. Samozřejmě by vůbec nevadilo aplikovat pouze dva fotorezistory a napsat program jak uvádíte Vy. Funkce je naprosto stejná a funkční.
Vlastně máte pravdu. Slunce vychází pořád na stejné straně a tak by program věděl jakým směrem se má točit po zapnutí 😀
Zapomněl jsem uvést, že bych zařízení na noc nevypínal. Bylo by v provozu non-stop přes sezónu. Ideálně v programu dát podmínku při snížení intenzity světla zastavit program a pokračovat až ráno začne svítat znovu jej obnovit a natočit na východní stranu.Použití koncových spínačů mám v plánu jen jsem nechtěl v prvním příspěvku rozepisovat.
Vlastně tam budou na každé straně dva. Ideálně jeden pro impuls pro Arduino a druhý jako bezpečnostní, který odstaví napájení motoru kdyby motor nezastavil.Jirka
Vojtěch Vosáhlo
ÚčastníkMá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í…MilosMerta
ÚčastníkĎakujem, cez víkend skúsim a dám vedieť.
posjirka
Účastníkpodívej se sem:
třeba to pomůže… je tam popsáno, že je vhodne použít pullup odpory pro vstupy, atd..posjirka
Účastníknevidím tam spojení zemí arduina a H-mustku … Tady bych si hledal chybu.
MilosMerta
ÚčastníkZ mojich súčiastok vo fritzingu chýba L298N,12V batéria. Ďalej tam mám použite Arduino UNO,DC motor,HC-05,batéria 9V.
Keby že zoženiem L298N do fritzingu tak tu schému spravím ináč.
Vodiče na vstup 1,2,ENA-8,7,9
RX,TX-10,11posjirka
Účastníktohle není schéma, ale vrabčí hnízdo. Promiň a le z toho opravdu nepoznám co je co. hlavně vůbec netuším co je to za IO u H-mustku = nevím jak má být zapojený, nedodržené barvy vodiču to totálně znepřehlednují.
Vůbec z toho nepoznám kde máš spojenou zem obou zdrojů. jinak ti H-mustek nemuže fungovat … atd.MilosMerta
ÚčastníkVo fritzingu nieje 12V batéria tak som to spravil takto. Alebo sa Vák nepáči niečo iné?
posjirka
Účastník??? to myslíš vážně?
MilosMerta
ÚčastníkTu by mala byť schéma.
Attachments:
posjirka
Účastníkbez schematu se těžko radí …
MilosMerta
ÚčastníkZnaky už prichádzajú tak ako majú, len teraz mám problém s motorom. Rozbehne sa iba ak je zapojený iba jeden pin smeru motora a je prepojený na GND.
Mirda0124
ÚčastníkDobrý den,
Rád vám to naprogramuji, napište mi na mir.novacek@gmail.comRo667
ÚčastníkNo ale keď potrebujem prečítať text a potom ho zobraziť na sériovom monitore.
Ro667
ÚčastníkĎakujem.
Zbyšek Voda
ÚčastníkKdyž chcete vstup pro heslo, tak použijete
<input type="password" ... >
Potom se místo zanků zobrazí hvězdičky.Ro667
ÚčastníkAaha Dakujem, no a keď potrebujem zadávať heslo tak mi ho bude vidno ?
Zbyšek Voda
ÚčastníkVe článku Programování webových rozhraní pro Arduino je v sekci Ovládání LED napsáno, jak se dá získat data z GET požadavku.
V můžete udělat HTML formulář a zvolit jako metodu přenášení dat právě GET. A potom už je to stejné, jak popisuji ve článku, jen nečtete jeden znak, ale více.
Jak udělat formulář s metodou get je popsáno třeba zde. Jen zaměníte vstup input za textarea.
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?
Miro
ÚčastníkTak to ma riesene ten https://farmbot.io/
Miro
ÚčastníkAhojte, ja som nasiel na nete https://farmbot.io/. Mozno od veci ale ako inspiracia podla mna dobra vec.
PS: Som absolutny amater ale fascinuje ma to.
Oldřich Horáček
SprávceOmlouvám se že to trvá tak dlouho, firma co řeší převedení obsahu ze starého fóra na nové za to chce moc peněz a přehození svépomocí se nepodařilo. Proto to vyřešíme napojením na stará vlákna a zpřístupněním starého obsahu pro čtení. Díky i tak za nabídnutí pomoci, vážím si toho. Oldřich
mkolka
ÚčastníkDakujem, najskor skusim najst taky kondenzator. Ak to nepomoze, skusim tu nabijacku.
Dakujem za snahu.
Aleš
ÚčastníkMezi piny GND a VCC. Je možné, že při sepnutí relátka vznikne pokles napětí, a displej kvůli tomu zblbne. Kondenzátor by tomu měl zabránit. Případně zkusit externí napájení toho relé. Vzít např. nabíječku na mobil, odpojit VCC relátka od Arduina, a připojit ho na +5V z té nabíječky. GND nabíječky propojit s GND Arduina.
kejlicz
ÚčastníkTO Luke_CZ
Proč jako orat brambory Veyronem. To je jako by jsi napsal, že oheň jde rozdělal mlácením křemenů o sebe , tak proč používat zapalovač. Co získám navíc použitím NodeMcu? Vůbec nic. Zakladatel diskuze se baví o „chytrém domu“ ne o nějakém primitivním měření jedné veličiny.Já už mám vlastnoručně postavený systém přes 2 zimy v provozu a je to paráda. Za celou dobu odešlo jen jedno spínací relátko, jinak to šlape. Udělal jsem to tak, že mám „server“ na hostingu. První verze měla server lokálně na Arduinu a na hosting jsem to posílal jen kvůli logování dat a zobrazení grafů. Programovaní Arduina je ale opruz a nejsem v tom moc zběhlý, takže to byl Ctrl + C , Ctrl + V poslepovaný paskvil. Proto jsem se rozhodl udělat server na hostingu na internetu a naprogramovat to v PHP Nette/Doctrine2 což mi možnosti posouvá a několik levelů výš . Je to sice „závislé“ na internetu, ale čemu to vadí? Beru to prostě jako závislost elektrice. Doma mám 2 Arduina Mega a dvě Nano. Jedna Mega data přijímá od těch dvou Nano a posílá je na server na internetu. Na serveru se to vyhodnotí. Mám doma veřejnout IP a přesměrované porty a hosting přes to pošle povel druhému Arduino Mega, co má sepnout. Na hostingu mám naprogramovaný docela promakaný systém, kam jdou jednoduše přidávat místnosti, do nich ovládací prvky a ovládané veličiny. Když chci regulovat něco nového, stačí mi naklikat, že chci nějakou veličinu, nazvat jí a říct systému, název parametru, pod kterým tu hodnotu hosting dostane. Třeba teplota (i když tu už to samozřejmě umí). Pak si naklikám, že chci nový ovládací prvvek, vyberu si ze seznamu ovládanou veličinu, číslo PINu, na jakém je připojeno ovládání toho ovládacího prvku (třeba topení), vyberu zda prvek veličinu zvedá nebo snižuje (topení / klimatizace). U ovládacích prvků si můžu nastavit opožděný start, minimální doba běhu, závislosti na dalších veličinách, závislosti na denní době, dále to jestli je prvkem pod napětím vypnutý nebo zapnutý.
Pak jen nastavím, že chci např. teplotu v nějaké místnosti min. 21 stupňů. Pokud je teplota nižší, systém se podívá zda má v dané místnosti ovládací prvek, který zvyšuje veličinu „teplota“. Mám tam zadané jako ovládací prvky teploty radiátory. Na nich jsou termohlavice spínané 12V.Všechno se mi krásně loguje, mám nastavené automatické změny požadované teploty, dají se nastavit alarmy kdy mi to při překročení nebo poklesu nějaké veličiny třeba pošle email a podobně.
Taky proč by se neměl dostat do domu při výpadku netu??? Zaprvé tady nic nevidím, že by to používal na odemykání dveří a i kdyby jo, tak se to dá proti takovým věcem vždycky ošetřit.
Luke_CZ
ÚčastníkTO boylucky:
A, nebylo by od věci sdělit na jakém HW to pojede (pokud to vůbec tušíš)
B, používat PHP(MySQL, Apache) apod. pro zobrazení teploty v HTML je jak orat brambory Veyronem
C, nejdříve si ujasni, co to má umět a potom sháněj pomocTO kejlicz:
pro měření teploty, vlhkosti stačí i NodeMcu apod., ten zvládne i jednoduchou flat file dbTO vojjta:
A, po zkušenostech s těmito „hotovými“ systémy jdu raději cestou vlastního návrhu, než pochopíš jak to rozchodit a upravit, tak vyjde nová verze, kde je všechno jinak
B, spočítej si spotřebu energie, páč to musí jet na desktopuL.
PS. Technika se super, jen bude sranda, až spadne net a z tebe se stane bezdomovec, páč do baráku se prostě nedostaneš.mkolka
ÚčastníkRelatko ma 3 piny VCC, GND a IN. VCC+GND je napajane priamo z Arduina a cez digitalny pin spinam IN. Takto to funguje, ale je tam ten problem s displayom. Kam teda potom zaradit ten kondenzator?
Dakujem, za rady a trpezlivost.
Attachments:
Aleš
ÚčastníkV tom schématu chybí +napájení relatka. Kam ho máte zapojené? Na výstup 5V z Arduina? Zkuste k napájení toho relé přidat nějaký elektrolytický kondenzátor 500-1000mF/10V
-
AutorPříspěvky