ale stále mi to neběží nedaří se mi to rozchodit
Teplotu mi to ukazuje správnou, ale když ji zvýším relé se nezapne, když teplota klesne také se nic nestane chybu ...nevím, jak to správně zapsat, aby to fungovalo.
Jediné co mi funguje je, že když kliknu na ostatní tlačítka, tak se mi dané relé obarví a po opětovném kliknutí se relé vypne a barva tlačítka změní, což je skvělé, jen bych to ještě potřeboval u prvního tlačítka změnit ne na kliknutí, ale na ovládání teplotou.
Můžete mi někdo s tím kódem pomoct?
Níže ho přikládám celý a předem děkuji za případnou pomoc.
kód:
#include <SPI.h>
#include <Ethernet.h>
#include <OneWire.h> //knihovna pro teplomer
// zde si upravte podle sebe
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
// IP adresa
IPAddress ip(192,168,0, 150);
// port
EthernetServer server(80);
OneWire ds_1(7); // on pin 10 (a 4.7K resistor is necessary) teplomer v zavorce pin teplomeru
int ledPin = 13;
//Serial.print(" Data = ");
//Serial.print(present, HEX);
Serial.print(" ");
for ( i = 0; i < 9; i++) { // we need 9 bytes
data[i] = ds_1.read();
//Serial.print(data[i], HEX);
Serial.print(" ");
}
//Serial.print(" CRC=");
//Serial.print(OneWire::crc8(data, 8), HEX);
Serial.println();
// Convert the data to actual temperature
// because the result is a 16 bit signed integer, it should
// be stored to an "int16_t" type, which is always 16 bits
// even when compiled on a 32 bit processor.
int16_t raw = (data[1] << 8) | data[0];
if (type_s) {
raw = raw << 3; // 9 bit resolution default
if (data[7] == 0x10) {
// "count remain" gives full 12 bit resolution
raw = (raw & 0xFFF0) + 12 - data[6];
}
} else {
byte cfg = (data[4] & 0x60);
// at lower res, the low bits are undefined, so let's zero them
if (cfg == 0x00) raw = raw & ~7; // 9 bit resolution, 93.75 ms
else if (cfg == 0x20) raw = raw & ~3; // 10 bit res, 187.5 ms
else if (cfg == 0x40) raw = raw & ~1; // 11 bit res, 375 ms
//// default is 12 bit resolution, 750 ms conversion time
}
celsius_1 = (float)raw / 16.0;
fahrenheit_1 = celsius_1 * 1.8 + 32.0;
/*Serial.print("Temperature = ");
Serial.print(celsius);
Serial.print(" Celsius, ");
Serial.print(fahrenheit);
Serial.println(" Fahrenheit");*/
float stupne_1 = celsius_1;
return stupne_1;
}
//------------------------------------konec teplomeru_1
void setup()
{
// inicalizace sítě
Ethernet.begin(mac, ip);
// inicializace serveru
server.begin();
// nastavíme pin 2 jako výstup pro rele
Serial.begin(9600);
pinMode(ledPin, OUTPUT); //pro ledku ke kouri zakladni nastaveni je vypnuta
}
void loop()
{
Serial.print("Teplota-1: ");
Serial.println(teplota1);
// Serial.println(teplomer1());
// 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 řádku
if (client.available()) {
char c = client.read();
buffer = buffer + c;
if (c == '\n') {
// odešle klasickou hlavičku HTML stránky
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("Connection: close");
client.println();
client.println("<!DOCTYPE HTML>");
// zde již klasická html data
client.println("<html>");
client.println("<head>");
// Název stránky
client.println("<title>Arduinio Server - Rele control</title>");
client.println("</head>");
client.println("<body>");
client.print("<h3 align=center>Program pro ovladani rele</h3>");
client.println("</br>");
Nemůžete odesílat nové téma do tohoto fóra. Nemůžete odpovídat na témata v tomto fóru. Nemůžete upravovat své příspěvky v tomto fóru. Nemůžete mazat své příspěvky v tomto fóru. Nemůžete hlasovat v tomto fóru. Nemůžete připojovat soubory k příspěvkům Můžete stahovat a prohlížet přiložené soubory
Informace na portálu Elektro bastlírny jsou prezentovány za účelem vzdělání čtenářů a rozšíření zájmu o elektroniku. Autoři článků na serveru neberou žádnou zodpovědnost za škody vzniklé těmito zapojeními. Rovněž neberou žádnou odpovědnost za případnou újmu na zdraví vzniklou úrazem elektrickým proudem. Autoři a správci těchto stránek nepřejímají záruku za správnost zveřejněných materiálů. Předkládané informace a zapojení jsou zveřejněny bez ohledu na případné patenty třetích osob. Nároky na odškodnění na základě změn, chyb nebo vynechání jsou zásadně vyloučeny. Všechny registrované nebo jiné obchodní známky zde použité jsou majetkem jejich vlastníků. Uvedením nejsou zpochybněna z toho vyplývající vlastnická práva. Použití konstrukcí v rozporu se zákonem je přísně zakázáno. Vzhledem k tomu, že původ předkládaných materiálů nelze žádným způsobem dohledat, nelze je použít pro komerční účely! Tento nekomerční server nemá z uvedených zapojení či konstrukcí žádný zisk. Nezodpovídáme za pravost předkládaných materiálů třetími osobami a jejich původ. V případě, že zjistíte porušení autorského práva či jiné nesrovnalosti, kontaktujte administrátory na diskuzním fóru EB.