Arduino schéma - arduino.sk

cidlo DS18B20 a web stranka

Programovanie arduina
Príspevky: 26
Registrovaný: Ned 17. Mar 2013 3:11:53

cidlo DS18B20 a web stranka

Poslaťod sampler » Str 19. Jún 2013 11:24:42

Zdravim, potreboval by som pomoct s vypisom udajov z DS18B20 vramci interneho web servera, ktory spustam v arduine.
Ak pouzijem funkciu na vypis teploty: client.println (sensors.getTempCByIndex(0)); tak nie je problem, problem je ze indexom urcujem poradie cidiel, respektive ktore cidlo v poradi ma arduino vypisat.
a tu mam obavu, aby sa nestalo ze sa poradie zameni :-) preto by som chcel priradit konkretne cislo cidla, ktore viem zistit aj program som nasiel, ale problem je ze vypis je realizovany takto:

Serial.print("Inside temperature is: ");
printTemperature(insideThermometer);

a to printTemperature(insideThermometer); neviem do client.println natrepat, pripadne ak ma niekto jednoduchy kod, pre tri a viac cidiel, kde nepouziva printTemperature(insideThermometer);
ale teplote je priradena premennej napr. temp1, tak budem velmi vdacny..
Dakujem

Príspevky: 1
Registrovaný: Str 19. Jún 2013 14:36:22

Re: cidlo DS18B20 a web stranka

Poslaťod Neolog » Str 19. Jún 2013 14:41:59

Akurat pracujem na takmer totoznom projekte. Akurat ze som uplny zaciatocnik. Mozes mi sem hodit tvoj kod? Momentalne sa snazim aby mi teplotu vobec vypisalo cez web. Zatial ju vypisuje len cez Serial. Neviem ako sa dopracovat k tomu aby teplotu zapisalo(a refreshovalo) cez ten webserver. Budem vdacny za kazdu radu :)


Kod(sklbeny webserver example s examplom ktory vypisuje teplotu do Serialu :oops: ):
Kód: Vybrať všetko
#include <OneWire.h>
#include <DallasTemperature.h>
#include <EtherCard.h>

#define ONE_WIRE_BUS 6

#define STATIC 1  // set to 1 to disable DHCP (adjust myip/gwip values below)

#if STATIC
// ethernet interface ip address
static byte myip[] = { 192,168,2,200 };
// gateway ip address
static byte gwip[] = { 192,168,2,1 };
#endif

// ethernet mac address - must be unique on your network
static byte mymac[] = { 0x74,0x69,0x69,0x2D,0x30,0x31 };

byte Ethernet::buffer[500]; // tcp/ip send and receive buffer

char page[] PROGMEM =
"HTTP/1.0 503 Service Unavailable\r\n"
"Content-Type: text/html\r\n"
"Retry-After: 600\r\n"
"\r\n"
"<html>"
  "<head><title>"
    "Temperature Webserver"
  "</title></head>"
  "<body>"
    "TEPLOTA TEPLOTA TEPLOTA"
  "</body>"
"</html>"
;

OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);

DeviceAddress insideThermometer = { 0x28, 0x96, 0xC2, 0xBC, 0x04, 0x00, 0x00, 0xA1 };
DeviceAddress outsideThermometer = { 0x28, 0xA5, 0x0E, 0xBD, 0x04, 0x00, 0x00, 0x99 };

void setup(void)
{
  // teplota sa bude zobrazovat na seriovej konzole
  Serial.begin(57600);
  Serial.println("\n[Webserver]");
  // Start kniznice
  sensors.begin();
  // Nastavenie rozlisenia na 10 bitov
  sensors.setResolution(insideThermometer, 10);
  sensors.setResolution(outsideThermometer, 10);
 
  if (ether.begin(sizeof Ethernet::buffer, mymac) == 0)
    Serial.println( "Failed to access Ethernet controller");
#if STATIC
  ether.staticSetup(myip, gwip);
#else
  if (!ether.dhcpSetup())
    Serial.println("DHCP failed");
#endif

  ether.printIp("IP:  ", ether.myip);
  ether.printIp("GW:  ", ether.gwip); 
  ether.printIp("DNS: ", ether.dnsip);

}

void printTemperature(DeviceAddress deviceAddress)
{
  float tempC = sensors.getTempC(deviceAddress);
  if (tempC == -127.00) {
    Serial.print("Chyba, senzor neodpoveda");
  } else {
    Serial.print("C: ");
    Serial.print(tempC);
  }
}

void loop(void)
{
\
// wait for an incoming TCP packet, but ignore its contents
  if (ether.packetLoop(ether.packetReceive())) {
    memcpy_P(ether.tcpOffset(), page, sizeof page);
    ether.httpServerReply(sizeof page - 1);

delay(2000);
  Serial.print("Zistujem teplotu...\n\r");
  sensors.requestTemperatures();

  Serial.print("Teplotny senzor 1: ");
  printTemperature(insideThermometer);
  Serial.print("\n\r");
  Serial.print("Teplotny senzor 2: ");
  printTemperature(outsideThermometer);
  Serial.print("\n\r");
 
 
 
  }
}

Príspevky: 26
Registrovaný: Ned 17. Mar 2013 3:11:53

Re: cidlo DS18B20 a web stranka

Poslaťod sampler » Str 19. Jún 2013 21:50:25

Jasan kod sem hodim, ked budem v praci a trocha ho ucesem :-)

Späť na Software