Forum » Elektrotehnika in elektronika » Arduino in luči
Arduino in luči
SonoR ::
Zdravo!
Zasvojila me je misel, da bi si naredil remote control luč/i. Na youtubu sem videl malo morje takih primerov, vendar noben ne prikaže kako je to naredil korak po korak oziroma pokažejo vendar vse na tisti mali tablici. Rad bi vedel, če se da priklopiti arduino na tiste žice, ki so v stikalu, da bi enostavno odprl stikalo na steni in priklopil adurino ploščo. O teh stvareh nimam ravno pojma, ampak bi se hitro naučil, v bistvu je tako vse na internetu, sem že pogledal par kod, ki bi jih naložil.
Hvala za nasvete že v naprej :)
Zasvojila me je misel, da bi si naredil remote control luč/i. Na youtubu sem videl malo morje takih primerov, vendar noben ne prikaže kako je to naredil korak po korak oziroma pokažejo vendar vse na tisti mali tablici. Rad bi vedel, če se da priklopiti arduino na tiste žice, ki so v stikalu, da bi enostavno odprl stikalo na steni in priklopil adurino ploščo. O teh stvareh nimam ravno pojma, ampak bi se hitro naučil, v bistvu je tako vse na internetu, sem že pogledal par kod, ki bi jih naložil.
Hvala za nasvete že v naprej :)
nikjozo ::
Če so tiste žice na stikalu od omrežne električne napeljave, boš ob priklopu gor v najboljšem primeru skuril ploščico, v najslabšem pa še sebe zakuril :)
Arduino rabi 3-5V za napajanje, odvisno od konektorja/modela.
Poglej si na internetu za remote IR komando. Na Arduino si naštimaj IR sprejemnik in rele, ki vklopi stikalo. Na tak način boš lahko kar z daljincem od TVja vklapljal in izklapljal luč.
Če rabiš IR sprejemno diodo pa si iz LJ, mi sporoči.
Arduino rabi 3-5V za napajanje, odvisno od konektorja/modela.
Poglej si na internetu za remote IR komando. Na Arduino si naštimaj IR sprejemnik in rele, ki vklopi stikalo. Na tak način boš lahko kar z daljincem od TVja vklapljal in izklapljal luč.
Če rabiš IR sprejemno diodo pa si iz LJ, mi sporoči.
SonoR ::
Ja ne vem kaj drugega bi lahko bile tiste žice, kot pa od električne napeljave, če se preko njih prižge luč. Arduino vem da rabi napajanje 3-5V, saj bi ga napajal preko kakega adapterja, zanima me samo če potem preko releja priklopim gor žice iz stikala, če bo to vse skurilo, ali obstaja možnost da bi delovalo.
Nisem iz LJ, pa tudi raje bi izbral drugo varianto, kot pa IR in prižiganje z daljincem. Hvala vseeno.
Nisem iz LJ, pa tudi raje bi izbral drugo varianto, kot pa IR in prižiganje z daljincem. Hvala vseeno.
franseliski ::
http://www.instructables.com/id/Arduino...
Google:
Arduino Lighting Control
Jaz imam raje namenski senzor, (220v motion detector) na hodniku. V spalnici bi kvečjemu uporabil stikalo na ploskanje, ker močno dvomim da se boš hodil spat z daljincem. Lahko Arduino komot naučiš da se obnaša kot stikalo na ploskanje, a je blesavo ker rabiš ene transformatorčke, pa občutljivost nastavljat...
Morda kaj takega:
http://www.ebay.com/itm/220V-Wall-Mount...
Google:
Arduino Lighting Control
Jaz imam raje namenski senzor, (220v motion detector) na hodniku. V spalnici bi kvečjemu uporabil stikalo na ploskanje, ker močno dvomim da se boš hodil spat z daljincem. Lahko Arduino komot naučiš da se obnaša kot stikalo na ploskanje, a je blesavo ker rabiš ene transformatorčke, pa občutljivost nastavljat...
Morda kaj takega:
http://www.ebay.com/itm/220V-Wall-Mount...
SonoR ::
Saj ne bi šel spat z daljincem zato sem tudi rekel, da se mi tista ideja ne zdi vredu, bi pa šel spat z telefonom v bližini ;)
Teh filmčkov sem pogledal že milijon, ampak nikjer ni postopka kako zvezati tole na že narejeno inštalacijo v stanovanju..
Teh filmčkov sem pogledal že milijon, ampak nikjer ni postopka kako zvezati tole na že narejeno inštalacijo v stanovanju..
nikjozo ::
Saj ne bi šel spat z daljincem zato sem tudi rekel, da se mi tista ideja ne zdi vredu, bi pa šel spat z telefonom v bližini ;)
Teh filmčkov sem pogledal že milijon, ampak nikjer ni postopka kako zvezati tole na že narejeno inštalacijo v stanovanju..
če je tako kot si napisal, potem si nabavi 5V/230V rele, NO kontakt releja zveži na omrežno stikalo (prej seveda izklopi hišno varovalko), rele boš pa prožil z enim od digitalnih izhodnih pinov, ki jih imaš na ploščici. Poraba teh reječkov je dovolj majhna, da izhodni digitalni pin brez težav dalj časa krmili rele. Če je mogoče si nabavi relejsko ploščico ki vsebuje ločilnik - optocoupler, da vi primeru slučajnega preboja omrežne napetosti da ti ne skuri ploščice in naprej.
Kako boš pa vklapljal rele imaš pa malo morje načinov. Praviš da ne želiš na IR. Predlog je bil torej na zvok, imaš še možnosti na senzor gibanja, prek web vmesnika, s tipko na daljavo...
Če hočeš prek telefona si nabavi še ethernet ali wifi shield, postavi mini arduino web server in potem lahko s preprosto html skripto dostopaš do stikala in ga po želji vklapljaš izklapljaš. Varianta je tudi da napišeš andorid/ios/karkoli aplikacijo za tvoj telefon pa potem tako krmiliš, ampak to je že bolj zahtevno od webserverja.
::
1. Arduino rabi napajanje od 7V navzgor, jaz jih napajam z 8V. Če imaš premalo, na izhodih ne dobiš zadostne napetosri če imaš preveč boš pregreval regulator.
2. za prižiganje luči rabiš releje. Komot uporabiš tazga, imaš tudi večkanalne izvedbe in take, kjer je med relejem in arduinom še optoizolator (da ne prekuriš arduinota).
3. Arduinota+rele lahko daš v stensko dozo od tam pa do žarnic pelješ 230V do stikal pa signle vhodov od ardunota - odvisnost od tega kako imaš napeljate cevi v steni
4. v programu za AVR si narediš interupte, ki ti pošlušajo za spremembe na vhodih in na ta način prižigaš luči - če je stikalo vhoda sklenjeno luč gori drugače ne. lahko pa namesto stikal uporabiš tipke (pride prav če imaš za eno te isto luč več šalterjov) in potem pritiski tipk narediljo toggle stanja za luč
5. za primer da zmanka elektrike lahko vsakokratno stanje zapišeš v eprom da potem ko elektrika pride nazaj gorijo iste luči kod pred ispadom - enako delovanje kot pri kalsični inštalaciji
6. vso robo tudi ardunota za kaj takega dobiš od kitajca za nekaj evrov
2. za prižiganje luči rabiš releje. Komot uporabiš tazga, imaš tudi večkanalne izvedbe in take, kjer je med relejem in arduinom še optoizolator (da ne prekuriš arduinota).
3. Arduinota+rele lahko daš v stensko dozo od tam pa do žarnic pelješ 230V do stikal pa signle vhodov od ardunota - odvisnost od tega kako imaš napeljate cevi v steni
4. v programu za AVR si narediš interupte, ki ti pošlušajo za spremembe na vhodih in na ta način prižigaš luči - če je stikalo vhoda sklenjeno luč gori drugače ne. lahko pa namesto stikal uporabiš tipke (pride prav če imaš za eno te isto luč več šalterjov) in potem pritiski tipk narediljo toggle stanja za luč
5. za primer da zmanka elektrike lahko vsakokratno stanje zapišeš v eprom da potem ko elektrika pride nazaj gorijo iste luči kod pred ispadom - enako delovanje kot pri kalsični inštalaciji
6. vso robo tudi ardunota za kaj takega dobiš od kitajca za nekaj evrov
SonoR ::
No, ti odgovori so mi pa že bolj všeč :) Nabavil bom tale arduino , ta wifi shield in te releje. Menda je to vse kar potrebujem.
Zgodovina sprememb…
- spremenil: SonoR ()
nikjozo ::
No, ti odgovori so mi pa že bolj všeč :) Nabavil bom tale arduino , ta wifi shield in te releje. Menda je to vse kar potrebujem.
To je to, mogoče še za napajalnik poglej.
::
Pa to pazi kadar kupuješ kitajskega ardunota, da dobiš ustrezen USB-serial driver v kolikor ploščica ni identična originalu. Saj na koncu dela ampajk porabiš mnogo časa da najdeš tapravi driver.
d4vid ::
Jaz mam sicer to narejeno kar se da enostavno. Do tipkal (namesto stikal) imam svoje kable, deluje pa na 12V (v prihodnosti 24V), nato pa preko optocouplerja na arduino, da je cim manj motenj. Luci vklapljam preko plosce, na kateri je 8 relejev.
Na arduinotu poganjam firmata firmware, povezan je na raspberry, ki ima nameščen fhem. Gor imam se 3 DS18B20 temperaturne senzorje.
Na arduinotu poganjam firmata firmware, povezan je na raspberry, ki ima nameščen fhem. Gor imam se 3 DS18B20 temperaturne senzorje.
Main PC: Asus PN50 | AMD Ryzen 5 4500U | 16 GB RAM | 256 GB SSD
PC2: HP Z400 | Intel Xeon L5630 | 6 GB RAM | 120 GB SSD
Laptop: HP Elitebook 840G1 | Intel i5 | 8 GB RAM | 256 GB SSD
PC2: HP Z400 | Intel Xeon L5630 | 6 GB RAM | 120 GB SSD
Laptop: HP Elitebook 840G1 | Intel i5 | 8 GB RAM | 256 GB SSD
franseliski ::
FX6300B ::
preden kaj delaš se loti na https://123d.circuits.io/ pač preko relejev boš moral , mogoče ti bom narisal shemo :D(če se mi bo dalo :D)
May the force be with you!
Zgodovina sprememb…
- spremenil: FX6300B ()
SonoR ::
približno že vem, kako bi stvari priklopil, sem pregledal kar nekaj youtube posnetkov, ampak to je pa vsekakor tudi dobra stvar za preizkus, hvala :)
FX6300B ::
evo nahitro za eno žarnico https://123d.circuits.io/circuits/11325...
May the force be with you!
d4vid ::
je izjavil:
Kako imaš narejeto povezavo s razberijom?
Točno to zadevo imam povezano serijsko oz. prek USBja, na arduinotu je pa Serial -> USB pretvornik.
Imam pa naročen arduino uno + ethernet shield, saj imam plan nekaj senzorjev (temperatura, vlaga) montirat v kurilnico, imam pa zraven, v garaži modem.
So še drugi načini komunikacije kot firmata. Npr. Mysensors je podprt v FHEMu, tam je pa malo drugače. En arduino, povezan serijsko, prek etherneta ali wifija, služi kot nek gateway oz. prehod. Na njem je še NRF24L04 za komunikacijo na 2.4 GHz. Potem so pa senzorji ali aktuatorji. Vsak tak node je sestavljen iz arduinota in NRF24L01 + tisto, kar mora imet senzor/aktuator.
Sedaj če hočeš samo luči regulirat, je arduino + releji + nekaj žic dovolj. Seveda pa je priporočeno še kak protobord, nekaj uporov, kak kondenzator ter optocoupler, za odpravo napak. Npr. ko prižgeš luč, se ti prižge še druga.
Nekako tako sem začel jaz. Potem sem zraven dal IR sprejemnik. Pa sem vklapljal luči z daljincem. Pa ni bilo dovolj, pa sem montiral še LAN kartico, da sem vklapljal in izklapljal s telefonom.
Potem sem se začel igrat s Raspberryjem in našel FHEM. Sedaj se pa grem home-automation on budget. Senzorji temperature 1€, releji 5€... Narediš marsikaj.
Razmišljam, da bi RPI zamenjal s Orange Pi.
Main PC: Asus PN50 | AMD Ryzen 5 4500U | 16 GB RAM | 256 GB SSD
PC2: HP Z400 | Intel Xeon L5630 | 6 GB RAM | 120 GB SSD
Laptop: HP Elitebook 840G1 | Intel i5 | 8 GB RAM | 256 GB SSD
PC2: HP Z400 | Intel Xeon L5630 | 6 GB RAM | 120 GB SSD
Laptop: HP Elitebook 840G1 | Intel i5 | 8 GB RAM | 256 GB SSD
FX6300B ::
sem tudi sam naročil 2 arduinota pa 10 rejejev pa dost te robe za 28€(2 pošilke) pa še čakam iz pekinga ;D
d4vid kolk relejev dobiš za 5€? jst sm naroču 10relejev z kitajske pa je pršlo 8€ me je mal strah da nebi delal :D ne sj bojo
d4vid kolk relejev dobiš za 5€? jst sm naroču 10relejev z kitajske pa je pršlo 8€ me je mal strah da nebi delal :D ne sj bojo
May the force be with you!
Zgodovina sprememb…
- spremenil: FX6300B ()
d4vid ::
Na banggood je nekaj čez 5EUR 8 kanalov. Preverjeno delujejo, mi luči vklapljajo in izklapljajo že kakšno leto.
Takole nekako zgleda vse skupaj So pa seveda to že izdelane rešitve... Ni moje delo. Imam namen se naučit perl in razvit kak modul, ker kakšna stvar včasih manjka.
EDIT: Shrani.si mi nagaja :)
Takole nekako zgleda vse skupaj So pa seveda to že izdelane rešitve... Ni moje delo. Imam namen se naučit perl in razvit kak modul, ker kakšna stvar včasih manjka.
EDIT: Shrani.si mi nagaja :)
Main PC: Asus PN50 | AMD Ryzen 5 4500U | 16 GB RAM | 256 GB SSD
PC2: HP Z400 | Intel Xeon L5630 | 6 GB RAM | 120 GB SSD
Laptop: HP Elitebook 840G1 | Intel i5 | 8 GB RAM | 256 GB SSD
PC2: HP Z400 | Intel Xeon L5630 | 6 GB RAM | 120 GB SSD
Laptop: HP Elitebook 840G1 | Intel i5 | 8 GB RAM | 256 GB SSD
Zgodovina sprememb…
- spremenil: d4vid ()
d4vid ::
Nekak se mi zdi precej brezveze enokanalne jemat, če misliš vse na en arduino povezat. Pri 8 kanalnih privarčuješ kar nekaj žic zaradi VCC in GND.
Main PC: Asus PN50 | AMD Ryzen 5 4500U | 16 GB RAM | 256 GB SSD
PC2: HP Z400 | Intel Xeon L5630 | 6 GB RAM | 120 GB SSD
Laptop: HP Elitebook 840G1 | Intel i5 | 8 GB RAM | 256 GB SSD
PC2: HP Z400 | Intel Xeon L5630 | 6 GB RAM | 120 GB SSD
Laptop: HP Elitebook 840G1 | Intel i5 | 8 GB RAM | 256 GB SSD
FX6300B ::
res je vendar sem uzel tudi 2 arduinota :D pač bomo vidl kaj bo iz tega
May the force be with you!
::
Na banggood je nekaj čez 5EUR 8 kanalov. Preverjeno delujejo, mi luči vklapljajo in izklapljajo že kakšno leto.
Kolko pa traja da pridejo? Meni ponavadi robo foter naroči na dx.com.
FX6300B ::
odvisno če je EU WAREHOUSE je hitro lahko će v parih dneh (po navadi) če pa je iz kitajske pa traja kakšna 2 tedna do 3 tedne no vsaj če imaš srečo lako pa se zavleče
aja pa če boš karkoli naročeval glej da bo pod 22€ če imaš v košarici robe za več kot 22€ pač izvedeš več nakupov ker če je pod 22€ ni davka in carine itd. tako povedano je oproščeno vseh dajatev
aja pa če boš karkoli naročeval glej da bo pod 22€ če imaš v košarici robe za več kot 22€ pač izvedeš več nakupov ker če je pod 22€ ni davka in carine itd. tako povedano je oproščeno vseh dajatev
May the force be with you!
FX6300B ::
evo danes sem dobil 2 arduinota mega 2560 in zaenkrat še testiram dobil se m pa cca 7€ po kosu
May the force be with you!
SonoR ::
evo danes sem dobil 2 arduinota mega 2560 in zaenkrat še testiram dobil se m pa cca 7EUR po kosu
kje si jih pa naročo, da so tako hitro prišli?
Zgodovina sprememb…
- spremenil: SonoR ()
FX6300B ::
aliexpress točno tale http://www.aliexpress.com/item/Free-shi... 5.10 so dali na chinapost
tudi dela out of the box samo driverje je treba naložit so pa teli http://kiguino.moos.io/2014/12/31/how-t...
tudi dela out of the box samo driverje je treba naložit so pa teli http://kiguino.moos.io/2014/12/31/how-t...
May the force be with you!
Zgodovina sprememb…
- spremenil: FX6300B ()
SonoR ::
aaa, jaz sem mislo da si pred par dnevi naročo, ker si takrat rekel da si naročil dva :D super, jaz bom rabo iste driverje :)
FX6300B ::
evo ti čist točen link http://www.wch.cn/downfile/5
releje pa še čakam k sem jih pri enem drugem naročil da ni presegalo 22€ pa tut sm jih najdu tm ceneje
tele http://www.aliexpress.com/item/Hot-Sell...
releje pa še čakam k sem jih pri enem drugem naročil da ni presegalo 22€ pa tut sm jih najdu tm ceneje
tele http://www.aliexpress.com/item/Hot-Sell...
May the force be with you!
Zgodovina sprememb…
- spremenil: FX6300B ()
SonoR ::
res poceni ja. ne vem še sicer čist točno, če mam naročen arduino z enakim čipom, da bi bli tile driveri pravi, morem počakat da prispe :D
FX6300B ::
jst sm zej ugotovu da mi na enmu ne dela "ON" ledica na drugmu pa :( sm mu že poslou sporočiu sicr me ne mot sam useen
May the force be with you!
FX6300B ::
jap ker je itak samo odvisno od usb to serial čipa ki je na arduinu
May the force be with you!
SonoR ::
kaj naj naredim... na arduino mega2560 imam priključen wifi shield cc3000 in mi vedno napiše v serijskem vmesniku "WiFi shield not present", probal sem že vse živo :/
SonoR ::
ok, torej očitno nisem probal vsega, ker ene stvari vseeno delajo :)
mi lahko kdo združi ti dve kodi? Gre se za prižig recimo luči preko stikala oz. preko računalnika/telefona.
mi lahko kdo združi ti dve kodi? Gre se za prižig recimo luči preko stikala oz. preko računalnika/telefona.
int zarnica1 = 0;//"poimenovanje" pina na arduiotu (digital) int stikalo1 = 13; int st1; void setup() {//v setup se bo izvedlo samo enkrat pinMode(zarnica1, OUTPUT);//mu pove da je žarnica izhod pinMode(stikalo1, INPUT);//stikalo pa vhod } void loop() {//v zanki loop se bo to izvajalo skozi dokler je arduino prižgan st1 = digitalRead(stikalo1); if (st1 == HIGH){ digitalWrite(zarnica1, HIGH); //če je "OUTPUT" stikala pozitiven vklopi } delay(100); if (st1 == LOW){ digitalWrite(zarnica1, LOW);//če je "OUTPUT" stikala pozitiven IZKLOPI } }
/* WirelessControllerWifi is one of the applicatioin of CC3000 Wifi Module - This sample application code simply turns on and off an LED remotely via Wifi. - It is suggested to use Atmega644 to avoid further RAM issues. - The IP address given to CC3000 by the Access Point is static. Therefore, it is advisable to make sure that the IP address entered to the browser is correct. Execution: 1. Once uploaded to the microcontroller, open the serial. 2. Wait for successful connection. 3. When DHCP request is successful, Copy the IPaddress given to your device. 4. Enter the IPaddress to your browser. 5. The small Wireless Controller webpage will then be loaded. 6. Click ON button to turn on the LED and OFF button to turn it off. Wiring Connection: 1. Connect +pin of LED(series with current limiting resistor if needed) to pin 13(A0). -pin to GND. This will be the LED to be controlled. 2. Connect +pin of LED(series with current limiting resistor if needed) to pin 9. -pin to GND. This will be the wifi connection indicator. Notes: Reserved pins for CC3000 and SD Card communication are as follows. CC3000 Breakout Board Gizduino SCK <------------------> Digital pin 13 MISO <------------------> Digital pin 12 MOSI <------------------> Digital pin 11 CS <------------------> Digital pin 10 V_EN <------------------> Digital pin 5 uSDCS <------------------> Digital pin 4 IRQ <------------------> Digital pin 3 References: - Adafruit_CC3000 ChatServer.ino - Ethernet WebServer.ino - Important Libraries from Adafruit: https://learn.adafruit.com/adafruit-cc3000-wifi/cc3000-library-software Created On: 28 APR 14 By: e-Gizmo Mechatronix Central */ #include <Adafruit_CC3000.h> #include <SPI.h> #include "utility/debug.h" #include "utility/socket.h" /* --- CC3000 constants --- */ // These are the interrupt and control pins #define ADAFRUIT_CC3000_IRQ 3 // MUST be an interrupt pin! // These can be any two pins #define ADAFRUIT_CC3000_VBAT 5 #define ADAFRUIT_CC3000_CS 10 // Use hardware SPI for the remaining pins // On an UNO, SCK = 13, MISO = 12, and MOSI = 11 Adafruit_CC3000 cc3000 = Adafruit_CC3000(ADAFRUIT_CC3000_CS, ADAFRUIT_CC3000_IRQ, ADAFRUIT_CC3000_VBAT, SPI_CLOCK_DIVIDER); // you can change this clock speed #define WLAN_SSID "arkamadona" // cannot be longer than 32 characters! #define WLAN_PASS "samsung1" // Security can be WLAN_SEC_UNSEC, WLAN_SEC_WEP, WLAN_SEC_WPA or WLAN_SEC_WPA2 #define WLAN_SECURITY WLAN_SEC_WPA2 #define LISTEN_PORT 80 Adafruit_CC3000_Server gizduinoServer(LISTEN_PORT); //(LISTEN_PORT); /* --- Webpage variables --- */ String req; // Will handle the request of the client. String reqsub; // Request substring to for keyword "on" or "of". char webpage[404] = "<!DOCTYPE HTML><html><body><center><h1>Wireless Controller via Wi-Fi</h1><p>by e-Gizmo</p><br><form method=\"get\"><input type=\"button\"style=\"height:100px;width:100px\" value=\"ON\"onclick=\"window.location='/?on'\"> <input type=\"button\"style=\"height:100px;width:100px\"value=\"OFF\"onclick=\"window.location='/?of'\"></form></center></body></html>"; /* --- LED Indicators --- */ #define controlLED 13 #define wifiLED 9 void setup(void) { Serial.begin(9600); Serial.print("Free RAM: "); Serial.println(getFreeRam(), DEC); /* Initialise the module */ Serial.println("Initializing..."); if (!cc3000.begin()) { Serial.println("Couldn't begin()! Check your wiring?"); while(1); } Serial.print("Attempting to connect to "); Serial.println(WLAN_SSID); if (!cc3000.connectToAP(WLAN_SSID, WLAN_PASS, WLAN_SECURITY)) { Serial.println("Failed!"); while(1); } Serial.println("Connected!"); Serial.println("Request DHCP..."); cc3000.checkDHCP(); // Display the IP address DNS, Gateway, etc. while (! displayConnectionDetails()) { delay(1000); } gizduinoServer.begin(); // Start listening for connections Serial.println("Waiting for Client..."); pinMode(wifiLED,OUTPUT); // LED pin for Wifi connection indicator. digitalWrite(wifiLED,HIGH); pinMode(controlLED,OUTPUT); // LED pin to be controlled. } void loop(void){ if(!cc3000.checkConnected()){ Serial.println("CONNECTION LOST!"); digitalWrite(wifiLED,LOW); while(1); }else{ // Try to get a client which is connected. Adafruit_CC3000_ClientRef client = gizduinoServer.available(); if (client) { Serial.println("New client"); // an http request ends with a blank line boolean currentLineIsBlank = true; while (client.connected()) { if (client.available()) { char c = client.read(); Serial.write(c); req += c; reqsub = req.substring(6,8); if (reqsub == "of"){ digitalWrite(controlLED, LOW); } if (reqsub == "on"){ digitalWrite(controlLED, HIGH); } // Send a reply to the client if (c == '\n' && currentLineIsBlank) { // send a standard http response header client.println("HTTP/1.1 200 OK"); client.println("Content-Type: text/html"); client.println("Connection: close"); // the connection will be closed after completion of the response client.println(); // Give the web page to the client client.println(webpage); client.println(""); break; } if (c == '\n') { // you're starting a new line currentLineIsBlank = true; } else if (c != '\r') { // you've gotten a character on the current line currentLineIsBlank = false; } } } // give the web browser time to receive the data delay(100); // close the connection client.close(); Serial.println("Client disconnected"); req=""; } } } /**************************************************************************/ /*! @brief Tries to read the IP address and other connection details */ /**************************************************************************/ bool displayConnectionDetails(void) { uint32_t ipAddress, netmask, gateway, dhcpserv, dnsserv; if(!cc3000.getIPAddress(&ipAddress, &netmask, &gateway, &dhcpserv, &dnsserv)) { Serial.println(F("Unable to retrieve the IP Address!\r\n")); return false; } else { Serial.print(F("\nIP Addr: ")); cc3000.printIPdotsRev(ipAddress); Serial.print(F("\nNetmask: ")); cc3000.printIPdotsRev(netmask); Serial.print(F("\nGateway: ")); cc3000.printIPdotsRev(gateway); Serial.print(F("\nDHCPsrv: ")); cc3000.printIPdotsRev(dhcpserv); Serial.print(F("\nDNSserv: ")); cc3000.printIPdotsRev(dnsserv); Serial.println(); return true; } }
Zgodovina sprememb…
- spremenil: SonoR ()
mojca ::
Samo na začetek druge kode dodaj
dodaj še
in enako par vrstic nižje za HIGH. Z digitalWrite({pin}, LOW) nastaviš napetost na 0 V oz. izklopiš, s HIGH pa na 5 V oz. vklopiš.
int zarnica1 = 0;(oz. tisto številko pina, ki je priklopljen na rele) in tam, kjer prižigaš in ugašaš ledico z:
digitalWrite(controlLED, LOW);
dodaj še
digitalWrite(zarnica1, LOW);
in enako par vrstic nižje za HIGH. Z digitalWrite({pin}, LOW) nastaviš napetost na 0 V oz. izklopiš, s HIGH pa na 5 V oz. vklopiš.
mojca ::
A se ti LEDica prižiga preko spleta?
Pošlji fotografijo, kako imaš stvari zvezane med seboj.
Pošlji fotografijo, kako imaš stvari zvezane med seboj.
mojca ::
Kam točno si povezal rumeno/oranžno/rdečo žičko (iz fotografije to ni razvidno)?
Samo en problem: tole se mi ne zdi v redu, pa prej nisem bila pozorna:
Digitalna vrata 0 pripadajo serijskemu portu. Skoraj ziher sem, da tole pokvari komunikacijo med Wifi ploščico in Arduinotom. Če je rumena žička na D13, pa ti morda sploh kode ni potrebno spreminjati in bi se moral rele vklopiti skupaj z LEDico.
Samo en problem: tole se mi ne zdi v redu, pa prej nisem bila pozorna:
digitalWrite(0, LOW);
Digitalna vrata 0 pripadajo serijskemu portu. Skoraj ziher sem, da tole pokvari komunikacijo med Wifi ploščico in Arduinotom. Če je rumena žička na D13, pa ti morda sploh kode ni potrebno spreminjati in bi se moral rele vklopiti skupaj z LEDico.
mojca ::
Še en potencialen problem glede na zgornje komentarje:
SCK <------------------> Digital pin 13
Verjetno tudi pin 13 ni najboljša izbira.
Morda lahko rumeno žičko spelješ na pin 8 (recimo, da ta ni zaseden) in potem rele vklapljaš/izklapljaš z digitalWrite(8, HIGH/LOW).
SCK <------------------> Digital pin 13
Verjetno tudi pin 13 ni najboljša izbira.
Morda lahko rumeno žičko spelješ na pin 8 (recimo, da ta ni zaseden) in potem rele vklapljaš/izklapljaš z digitalWrite(8, HIGH/LOW).
mojca ::
Poskusi rumeno priklopiti na 8 na Arduinu in na Arduino naložiti naslednji program:
Če si vse pravilno zvezal, bi se ti morala luč prižigati in ugašati. (Iz slike tudi ni razvidna vezava na levi.)
Ko ti bo to delalo pravilno, lahko kodi združiš.
int zarnica1 = 8; void setup() { // v setup se bo izvedlo samo enkrat pinMode(zarnica1, OUTPUT);//mu pove da je žarnica izhod } void loop() { // v zanki loop se bo to izvajalo skozi dokler je arduino prižgan digitalWrite(zarnica1, HIGH); // prižgi luč delay(1000); digitalWrite(zarnica1, LOW); // ugasni luč delay(1000); }
Če si vse pravilno zvezal, bi se ti morala luč prižigati in ugašati. (Iz slike tudi ni razvidna vezava na levi.)
Ko ti bo to delalo pravilno, lahko kodi združiš.
SonoR ::
saj se prižiga. Ne vem, če me razumeš pravilno. Jaz bi to stvar rad uporabil na sobni luči in bi rad da se luč prižge ali preko arduinota ali preko stikala na steni. Sedaj to samo preizkušam na led diodi, za lažjo razlago. Ker pa nisem programer, sem prosil, da bi mi kdo te dve kodi enostavno združil, ker vsaka za sebe delujeta brez problema. Sedaj samo ne vem, kam priklopiti stikalo, će je na pin 8 priključen rele.
mojca ::
Res je, nisem razumla, da si spraševal, kam priklopiti fizično stikalo.
Najprej k problemu združevanja kode. Če se ti zdaj prižiga ledica, potem
spremeni v
na vrhu datoteke dodaj
in v setup() dodaj
Za stikalo na steni imaš verjetno dve opciji:
- stvar zvežeš tako, da na stikalo pravilno pripelješ 5 V enosmerne napetosti iz Arduina namesto 230 V izmenične in postane stikalo na steni eden od "senzorjev", ki jih bereš z Arduinom ter na podlagi stanja tega stikala povsem softversko prižigaš/ugaaš luč (kot če bi imel tisti mali knofek na breadboard-u)
- potrebuješ izmenično stikalo in izmenično vezavo (kar mora podpirati tudi rele) in vklapljaš/izklapljaš kot katerokoli drugo luč z dvema neodvisnima stikaloma
Ampak tole potrebuje še kakšno shemo.
Najprej k problemu združevanja kode. Če se ti zdaj prižiga ledica, potem
if (reqsub == "of"){ digitalWrite(controlLED, LOW); } if (reqsub == "on"){ digitalWrite(controlLED, HIGH); }
spremeni v
if (reqsub == "of"){ digitalWrite(controlLED, LOW); digitalWrite(zarnica1, LOW); } if (reqsub == "on"){ digitalWrite(controlLED, HIGH); digitalWrite(zarnica1, HIGH); }
na vrhu datoteke dodaj
int zarnica1 = 8; // poveš, na kateri PIN si povezal rele
in v setup() dodaj
// Arduinu poveš, da bo na PIN-u 8 digitalni izhod, // ki bo kontrolirar žarnico (in ne morda senzor, iz katerega boš bral) pinMode(zarnica1, OUTPUT);
Za stikalo na steni imaš verjetno dve opciji:
- stvar zvežeš tako, da na stikalo pravilno pripelješ 5 V enosmerne napetosti iz Arduina namesto 230 V izmenične in postane stikalo na steni eden od "senzorjev", ki jih bereš z Arduinom ter na podlagi stanja tega stikala povsem softversko prižigaš/ugaaš luč (kot če bi imel tisti mali knofek na breadboard-u)
- potrebuješ izmenično stikalo in izmenično vezavo (kar mora podpirati tudi rele) in vklapljaš/izklapljaš kot katerokoli drugo luč z dvema neodvisnima stikaloma
Ampak tole potrebuje še kakšno shemo.
SonoR ::
ok kodo sva rešila, še vedno pa ne razumem čist točno, kam vezati fizično stikalo, torej na katere pine. Naj še enkrat ponovim kako imam na arduino vezan rele: VCC na 5v, IN1 na digitalni pin 8 in GND na gnd. Kam na katere pine naj vežem sedaj stikalo? Oprosti, ampak sem res popolni laik pri tem
mojca ::
Najprej moramo razčistiti par stvari:
Če slednje in imaš v sobi samo eno stikalo, predlagam, da stvar na breadboardu najprej stestiraš z enim miniaturnim stikalcem. Eno nogico stikala zvežeš na GND. Drugo nogico stikala zvežeš na 10 k upor (na drugi strani upor vežeš na 5 V) in na en digitalni pin (recimo 9, ampak zares je vseeno). V setup() uporabiš:
in potem stanje stikala bereš s
Kodo boš moral še malo predelati, da bo delala točno tako, kot bi si želel (da ob sprememi stanja stikala vklopi oz. izklopi luč glede na prejšnje stanje). Ko ti bo delalo z mini stikalcem, lahko začneš z demontažo stikala v sobi, prej pa nima smisla oz. si morda lahko kupiš eno navadno stensko stikalo za trening.
Mimogrede, jaz bi ti predlagala, da si pogledaš tole:
- Na koliko stikalih lahko trenutno prižgeš luč? Samo na enem ali na večih?
- Bi rad luč kontroliral izključno z Arduinom (pri čemer boš stikalo na steni odklopil stran od 230 V in mu dal zgolj vlogo priveska na Arduinu kot alternativo spletnemu ugašanju)?
Če slednje in imaš v sobi samo eno stikalo, predlagam, da stvar na breadboardu najprej stestiraš z enim miniaturnim stikalcem. Eno nogico stikala zvežeš na GND. Drugo nogico stikala zvežeš na 10 k upor (na drugi strani upor vežeš na 5 V) in na en digitalni pin (recimo 9, ampak zares je vseeno). V setup() uporabiš:
pinMode(stikalo, INPUT); // na vrhu pred tem definiraš spremenljivko "int stikalo = 9;"
in potem stanje stikala bereš s
stanjeStikala = digitalRead(stikalo);
Kodo boš moral še malo predelati, da bo delala točno tako, kot bi si želel (da ob sprememi stanja stikala vklopi oz. izklopi luč glede na prejšnje stanje). Ko ti bo delalo z mini stikalcem, lahko začneš z demontažo stikala v sobi, prej pa nima smisla oz. si morda lahko kupiš eno navadno stensko stikalo za trening.
Mimogrede, jaz bi ti predlagala, da si pogledaš tole:
SonoR ::
luč lahko prižgem na dveh stikalih.
Če bi želel luč kontrolirati izključno z arduinom, ne bi toliko spraševal, ker je to že sedaj mogoče .
Ves čas že stvari testiram na breadboardu z malim stikalom.
Programiranje mi ne gre najbolje od rok, vseeno pa znam razbrati pomen sintaks.
Če bi želel luč kontrolirati izključno z arduinom, ne bi toliko spraševal, ker je to že sedaj mogoče .
Ves čas že stvari testiram na breadboardu z malim stikalom.
Programiranje mi ne gre najbolje od rok, vseeno pa znam razbrati pomen sintaks.
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Kdo se spozna na ESP8266 in Arduino?Oddelek: Pomoč in nasveti | 2416 (1994) | chiiiii |
» | Arduino(slave) + ESP8266(master) preko I2CjaOddelek: Elektrotehnika in elektronika | 1036 (889) | teoo |
» | Pomoč C++Oddelek: Pomoč in nasveti | 1365 (1084) | samo111 |
» | Arduino "leteče luči"Oddelek: Elektrotehnika in elektronika | 3012 (1889) | zrataj4201 |
» | Arduino - krmiljenje stepper motorjevOddelek: Elektrotehnika in elektronika | 3757 (2936) | steling |