Oldast
Vytvořené odpovědi
-
AutorPříspěvky
-
jurda23
Účastníkproblem s web byl vyřešen nevšimnul jsem si že používám porty 10, 11, 12, 13 ktere potřebuje ethernet shild
[code]
#include <SD.h>
#include <Ethernet.h>
#include <SPI.h>
#include <SoftwareSerial.h>
#include <MemoryFree.h>
#include <LCD.h>
#include <LiquidCrystal.h>
#include <LiquidCrystal_I2C.h>
#include <OneWire.h>
#include <Wire.h>
#include <DallasTemperature.h>float T00;
float T01;
float T02;
//float T03;
// zde si upravte podle sebe
byte mac[] = { 0x90, 0xA2, 0xDA, 0x0F, 0xC4, 0x36 };
// IP adresabyte ip[] = { 192, 168, 99, 150 };
byte gateway[] = { 192, 168, 99, 1 };
byte subnet[] = { 255, 255, 255, 0 };
String readString;
// port
EthernetServer server(80);
//RGBLED
int bluePin1 = 40; //Digital Pin fĂĽr Blaue LED1 in RGB-LED
int greenPin1 = 41; //Digital Pin fĂĽr GrĂĽne LED1 in RGB-LED
int redPin1 = 42; //Digital Pin fĂĽr Rote LED1 in RGB-LEDint redIn1 = 0;
int greenIn1 = 1;
int blueIn1 = 2;int redVal1;
int greenVal1;
int blueVal1;int bluePin2 = 4; //Digital Pin fĂĽr Blaue LED2 in RGB-LED
int greenPin2 = 5; //Digital Pin fĂĽr GrĂĽne LED2 in RGB-LED
int redPin2 = 6; //Digital Pin fĂĽr Rote LED2 in RGB-LEDint redIn2 = 3;
int greenIn2 = 4;
int blueIn2 = 5;int redVal2;
int greenVal2;
int blueVal2;//Relays
int relPin1 = 2; //Digital Pin fĂĽr Relay1
int relPin2 = 3; //Digital Pin fĂĽr Relay2
int relPin3 = 8; //Digital Pin fĂĽr Relay3
int relPin10 = 22; //Digital Pin fĂĽr Relay22
int relPin11 = 24; //Digital Pin fĂĽr Relay24int relPin1In = 22;
int relPin2In = 1;
int relPin3In = 5;
int relPin10In = 23;
int relPin11In = 25;int relPin1Val;
int relPin2Val;
int relPin3Val;
int relPin10Val;
int relPin11Val;
//Heater Status
int heiz1Val;
int heiz2Val;
//#define WS5200_CS 10
//#define SDCARD_CS 4
#define BACKLIGHT_PIN 13
#define ONE_WIRE_BUS 32
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); // Set the LCD I2C address
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
//Adresy CIDEL
DeviceAddress C = { 0x28, 0xC0, 0x97, 0x8A, 0x06, 0x00, 0x00, 0x74 };
DeviceAddress Cc = { 0x28, 0x3E, 0x11, 0x8A, 0x06, 0x00, 0x00, 0x42 };
DeviceAddress Ccc = { 0x28, 0x73, 0x9B, 0x89, 0x06, 0x00, 0x00, 0x83 };
//DeviceAddress C03 = { 0x28, 0x73, 0x9B, 0x89, 0x06, 0x00, 0x00, 0x83 };
int backLight = 13; // pin 13 will control the backlight
int LEDbrightness; //void setup() {
sensors.begin();
Serial.begin(9600);Ethernet.begin(mac, ip, gateway, subnet);
server.begin();
sensors.requestTemperatures();
Serial.print(„server is at „);
Serial.println(Ethernet.localIP());// Velikost slova (bit) 9 10 11 12
//Rozlišenà (°C) 0.5 0.25 0.125 0.0625
//Doba převodu (ms) 93,75 187,5 375 750
sensors.setResolution(C, 9);
sensors.setResolution(Cc, 9);
sensors.setResolution(Ccc, 9);
//sensors.setResolution(C03, 9);
lcd.begin(16, 4);
lcd.clear(); // initialize the lcd
lcd.backlight();//T03 = sensors.getTempC(C03); //teplota solaru
pinMode(relPin1, OUTPUT); //Output Mode for Relay1
pinMode(relPin2, OUTPUT); //Output Mode for Relay2
pinMode(relPin3, OUTPUT); //Output Mode for Relay3
pinMode(relPin10, OUTPUT); //Output Mode for Relay2
pinMode(relPin11, OUTPUT); //Output Mode for Relay3
// digitalWrite(relPin1, HIGH);
// digitalWrite(relPin2, HIGH);
// digitalWrite(relPin3, HIGH);
// digitalWrite(relPin10, HIGH);
// digitalWrite(relPin11, HIGH);}
void loop() {
sensors.requestTemperatures();
T00 = sensors.getTempC(C); //teplota bazenu
T01 = sensors.getTempC(Cc); //teplota panelu
T02 = sensors.getTempC(Ccc); //teplota solaru
//T03 = sensors.getTempC(C03); //teplota solarulcd.setCursor(0, 0);
lcd.print(„Bazen: „);
lcd.print(T00); //teplota venku
lcd.print(„C“);
lcd.setCursor(0, 2);
lcd.print(„Ohrev: „);
lcd.print(T01); //teplota solaru
lcd.print(„C“);
// Serial.println();
// Serial.print(„T0 „);
// Serial.print(T00);
// Serial.println();
// Serial.print(„T1 „);
// Serial.print(T01);
// Serial.println();
// Serial.print(„T2 „);
// Serial.print(T02);//Je nach Temperatur Farbe der RGB-LED anpassen und Rel 1 schalten
if(T01 <= 27)
{
redVal1 = 0;
greenVal1 = 0;
blueVal1 = 150;
relPin1Val = LOW;
relPin3Val = LOW;
lcd.setCursor(0, 1);
lcd.print(„Topeni: Zap „);
}
else if(T01 > 27 && T01 < 29)
{
redVal1 = 0;
greenVal1 = 150;
blueVal1 = 0;
relPin1Val = HIGH;
relPin3Val = LOW;
lcd.setCursor(0, 1);
lcd.print(„Topeni: Vyp „);
}
else if(T01 > 29)
{
redVal1 = 150;
greenVal1 = 0;
blueVal1 = 0;
relPin1Val = HIGH;
relPin3Val = HIGH;
lcd.setCursor(0, 1);
lcd.print(„VÄ›tránĂ: Vyp „);
}//Je nach Temperatur Farbe der RGB-LED anpassen und Rel 2 schalten
if(T02 <= 27)
{
redVal2 = 0;
greenVal2 = 0;
blueVal2 = 255;
relPin2Val = LOW;
lcd.setCursor(0, 3);
lcd.print(„Topeni: Zap „);
}
else if(T02 > 27 && T02 < 29)
{
redVal2 = 0;
greenVal2 = 255;
blueVal2 = 0;
relPin2Val = HIGH;
lcd.setCursor(0, 3);
lcd.print(„Topeni: Vyp „);
}
else if(T02 > 29)
{
redVal2 = 255;
greenVal2 = 0;
blueVal2 = 0;
relPin2Val = HIGH;
lcd.setCursor(0, 3);
lcd.print(„Topeni: Vyp „);
}
{analogWrite(redPin1, redVal1);
analogWrite(greenPin1, greenVal1);
analogWrite(bluePin1, blueVal1);
analogWrite(redPin2, redVal2);
analogWrite(greenPin2, greenVal2);
analogWrite(bluePin2, blueVal2);
digitalWrite(relPin1, relPin1Val);
digitalWrite(relPin2, relPin2Val);
digitalWrite(relPin3, relPin3Val);
digitalWrite(relPin10, relPin10Val);
digitalWrite(relPin11, relPin11Val);}
Serial.println();
Serial.print(„Locating devices…“);
Serial.print(„Found „);
Serial.print(sensors.getDeviceCount(), DEC);
Serial.println(“ devices.“);
//Serial.print(„Free Memory = „);
//Serial.println(getFreeMemory());
// kdyĹľ je pĹ™ipojen klient, zjistĂme, zda jsou odeslána data
// od klienta směrem k nám
EthernetClient client = server.available();
String buffer = „“;// dokud je klient pĹ™ipojen
while (client.connected()) {
// ÄŤti data od nÄ›j dokud nenarazĂš na znak novĂ©ho řádkuif (client.available()) {
char c = client.read();
buffer = buffer + c;
if (c == ‚\n‘) {if(buffer.indexOf(„rele1=1“)>=0)
digitalWrite(2,HIGH);else if(buffer.indexOf(„rele1=0“)>=0)
digitalWrite(2,LOW);if (buffer.indexOf(„rele2=1“) >= 0)
digitalWrite(3, HIGH);
else if (buffer.indexOf(„rele2=0“) >= 0)
digitalWrite(3, LOW);if (buffer.indexOf(„rele10=1“) >= 0)
digitalWrite(22, HIGH);else if (buffer.indexOf(„rele10=0“) >= 0)
digitalWrite(22, LOW);if (buffer.indexOf(„rele11=1“) >= 0)
digitalWrite(24, HIGH);else if (buffer.indexOf(„rele11=0“) >= 0)
digitalWrite(24, LOW);// delay(1);
// odešle klasickou hlavičku HTML stránky
client.println F ((„HTTP/1.1 200 OK“));
client.println F ((„Content-Type: text/html“));
client.println F ((„Connection: close“));client.println ();
client.println F ((„<!DOCTYPE HTML>“));// zde jiĹľ klasická html data
client.println F ((„<html>“));
client.println F ((„<head>“));
// Název stránky
client.println F ((„<title>Arduinio Server – Rele control</title>“));
client.println F ((„</head>“));
client.println F ((„<body>“));
client.print F ((„<h3 align=center>Program pro ovladani rele</h3>“));
client.println F ((„</br>“));// vygeneruje formulář
if (digitalRead(2)) {
client.print F ((„<button style=’background:red;width:20%;height:30px‘>RELE 1 VYPNUTO</button>“));
} else {
client.print F ((„<button style=’background:green;width:20%;height:30px‘>RELE 1</button>“));
}
client.println F ( (“ test“));
client.println F ((„</br>“));if (digitalRead(3)) {
client.print F ((„<button style=’background:red;width:20%;height:30px‘>RELE 2 VYPNUTO</button>“));
} else {
client.print F ((„<button style=’background:green;width:20%;height:30px‘>RELE 2</button>“));
}
client.println F ((“ svetlo“));
client.println F ((„</br>“));if (digitalRead(22)) {
client.print F ((„<button style=’background:red;width:20%;height:30px‘>RELE 3 VYPNUTO</button>“));
} else {
client.print F ((„<button style=’background:green;width:20%;height:30px‘>RELE 3</button>“));client.println F ((“ filtrace“));
client.println F ((„</br>“));if (digitalRead(24)) {
client.print F ((„<button style=’background:red;width:20%;height:30px‘>RELE 4 VYPNUTO</button>“));
} else {
client.print F ((„<button style=’background:green;width:20%;height:30px‘>RELE 4</button>“));
}
client.println F ((“ tlacitko pro kotel 4″));client.println F ((„</br>“));
client.println F ((„</br>“));
client.println („</br>“);client.println („Teplota0“);
client.println (T00);
client.println („</br>“);
client.println („Teplota1:“);client.println (T01);
client.println („</br>“);
client.println („Teplota2:“);client.println (T02);
client.println („</br>“);client.print („<meta http-equiv=\“refresh\“ content=\“5\“>“); //stránka se naÄŤte automaticky jednou za 3 s
client.println („</body>“);
client.println („</html>“);Serial.println(buffer);
delay(1); //dáme klientovi čas na zpracování
//ukončà přenos
client.stop();
} }
}
} }[/code]
jaracim
ÚčastníkProblém je vyřešen, dík.
Zbyšek Voda
ÚčastníkPokud jsem kód dobře pochopil, přijde mi, že sice máte zobrazená tlačítka, ale nemáte k nim obslužný kód.
Předpokládám, že chcete, aby po kliknutí na tlačítko program odeslal požadavek s informacemi o stavu relé.Dalo by se to udělat třeba tak, že z tlačítek uděláte odkazy vedoucí na určitou URL s přidanými parametry za url. Jak přidat URL ke tlačítku řeší třeba zde.
Arduino pak bude zpracovávat HTTP požadavek, ze kterého si vybere požadované informace z parametru.
jurda23
Účastníkno momentalně vše zkouším metodou pokus-omyl potřebuji aby to fungovalo jako termostat na třech zavislostech,spinalo dvě rele, vše nastavitelné přes web
1.pokud je čas který nasavím (cca 9:00-17:00hod) bude seple rele1
2.teplota čidla1 dle nasavení ovlada rele2 za podmínky že teplota čidla2 neni menší než ktera bude nastavena
3.I2C displejna kterem budou rotovat dokola teploty z cca 6čidel a stavy relatek topení,oběh
Jedná se mi o to vytvořit automatiku která bude hlídat ohřev bazenu přes tep.vyměník ze zasobníku tepelného čerpadla ve kterem nesmí poklesnout teplota pod cca 40stupnu jinak se spustí příhřev topnou spirálou cca9KW čemuž chci zabránit,muj sen je aby to časem vypadalo stejně jako zde https://www.youtube.com/watch?v=ef9fpolMtxAjsem na začátku a potýkám se s tím že se nerozjede webserver ping na adresu jde,když už se rozjede občas tak mi nefunguji stavy rele a ovladaní. a netuším jak udělat podmínku na bod 1a2,modul realneho času je na cestě a nevímjak sinchronizovat čas přes NTP vše chci něák velmi jednoduše. Ještě tvořím jeden system,naplatformě cubieboard ten již funguje na adrese teblomer.juricekpavel.net:81
na arduinu jsem nováček tak se snažím lepit kod z toho co najdu na netu.jurda23
Účastníkno momentalně vše zkouším metodou pokus-omyl potřebuji aby to fungovalo jako termostat na třech zavislostech,spinalo dvě rele, vše nastavitelné přes web
1.pokud je čas který nasavím (cca 9:00-17:00hod) bude seple rele1
2.teplota čidla1 dle nasavení ovlada rele2 za podmínky že teplota čidla2 neni menší než ktera bude nastavena
3.I2C displejna kterem budou rotovat dokola teploty z cca 6čidel a stavy relatek topení,oběh
Jedná se mi o to vytvořit automatiku která bude hlídat ohřev bazenu přes tep.vyměník ze zasobníku tepelného čerpadla ve kterem nesmí poklesnout teplota pod cca 40stupnu jinak se spustí příhřev topnou spirálou cca9KW čemuž chci zabránit,muj sen je aby to časem vypadalo stejně jako zde https://www.youtube.com/watch?v=ef9fpolMtxAjsem na začátku a potýkám se s tím že se nerozjede webserver ping na adresu jde,když už se rozjede občas tak mi nefunguji stavy rele a ovladaní. a netuším jak udělat podmínku na bod 1a2,modul realneho času je na cestě a nevímjak sinchronizovat čas přes NTP vše chci něák velmi jednoduše. Ještě tvořím jeden system,naplatformě cubieboard ten již funguje na adrese teblomer.juricekpavel.net:81
na arduinu jsem nováček tak se snažím lepit kod z toho co najdu na netu.Zbyšek Voda
ÚčastníkDobrý den,
můžete prosím popsat, co konkrétně vám nefunguje?
Taky by se hodil popis projektu – co to má dělat, jak to funguje…
Zbyšek Voda
ÚčastníkV Arduino IDE v nabídce Tools v Ports vyberte COM5
daflik
Účastníkuž to jede. Musel jsem dát „jako správce“. Ale další problém je že mi neuplouduje. myslím že problém je v tom že deska má COM5 a program vysílá na COM1. Jak to sjednotit? diky.
Jinak mašinka je to super.:)jurda23
ÚčastníkNašel by se někdo hodný kdo mi pomuže?
David Dimitrov
ÚčastníkDobrý den, moc rád bych se přidal do vývoje domácí automatizace. Budu rád když spojíme nápady a dáme dohromady něco funkční co se dokáže využít, řeším to už dlouho, ale každý nový poznatek se hodí. Budu rád když se někdo ozve na skype: trapezeu
pms
Účastníkpřipojení adaptéru s napájením nepomohlo
Aleš
Účastník1. Zkuste to na jiném počítači.
2. Zkuste připojit do Arduina externí napájení. W5100 má odběr jako kr..a, je možné že to USB neutáhne.Zbyšek Voda
ÚčastníkNenapadá mě, kde by mohl být problém.
Navíc se mi nedaří najít jakékoliv info od výrobce (kromě nějakého fóra v čínštině). Možná by se dalo najít něco tam…pms
Účastníkpřesně tento ovladač mám nainstalovaný. Přesto jsem zadal aktualizovat. Problém (dle očekávání) trvá.
Aleš
ÚčastníkZkus tohle:
http://arduino8.webnode.cz/news/lekce-9-merime-vzdalenost-s-hc-sr04/Pokud to nebude fungovat, je senzor vadný.
Aleš
Účastník.
Zbyšek Voda
ÚčastníkDobrý den,
zkuste ještě tady: http://www.arduined.eu/ch340g-converter-windows-7-driver-download/ stáhnout driver pro CH340G.
V ovládacích panelech otevřete Správce zařízení, připojte Arduino a mělo by se vám někde objevit. Pak kliknete pravým a zvolíte Aktualizovat systém ovladače. Poté doveďte instalační program na stažené drivery.
Potom zkuste znovu programování Arduina v IDE.
jaracim
ÚčastníkNikdo neměl tento problém ?
daflik
ÚčastníkProblém je v tom že když stáhnu a nainstaluju arduino 1.6.5.r2- windows nenajdu tam složku arduino UNO inf.
Také žádnou plastovou páčku jsem nenašel.daflik
ÚčastníkTak se mi povedlo to přečíst:Proti obrázku je to poloviční, musel jsem si udělat dalekohled, ale je to:
ATMEL, MEGA 1602 ,/nebo 16u2/, 1452 TM A28 TNB
díkypms
ÚčastníkZbyšek Voda
ÚčastníkPošlete mi prosím odkaz na ebay, kde jste to koupil
pms
Účastníkpři odpojení Arduina položka Porty zmizí
Zbyšek Voda
ÚčastníkZobrazuje se vám něco ve Správci zařízení/Porty i když není Arduino připojeno?
Na nastavení Programátor bych nesahal a nechal tam původní.
pms
Účastníkkdyz zvolim Vývojová deska:“Arduino UNO“, chová se to stejně.
Co má být v Nástroje | Programátor?Zbyšek Voda
ÚčastníkTam kde je na tomto obrázku šipka USB FTDI
https://www.arduino.cc/en/uploads/Main/ArduinoDiecimilaComponents.jpg
jaký čip tam máte vy?
daflik
ÚčastníkJo už vím vy myslíte: J16.000 asi piko /nečit/.
Zbyšek Voda
ÚčastníkDobrý den,
a když v Tools/Boards vyberete Arduino UNO, tak se to nepovede?
daflik
ÚčastníkNyní mi bliká Light, a TX u grundu digitálního. 🙂
daflik
ÚčastníkMyslíte TX RX.
-
AutorPříspěvky