Vítejte na Elektro Bastlírn?
Nuke - Elektro Bastlirna
  Vytvořit účet Hlavní · Fórum · DDump · Profil · Zprávy · Hledat na fóru · Příspěvky na provoz EB

Vlákno na téma KORONAVIRUS - nutná registrace


Nuke - Elektro Bastlirna: Diskuzní fórum

 FAQFAQ   HledatHledat   Uživatelské skupinyUživatelské skupiny   ProfilProfil   Soukromé zprávySoukromé zprávy   PřihlášeníPřihlášení 

Arduino odeslání http get

 
Přidat nové téma   Zaslat odpověď       Obsah fóra Diskuzní fórum Elektro Bastlírny -> Miniaturní počítače (Arduino, Raspberry a další)
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
sidbin



Založen: Nov 07, 2013
Příspěvky: 13

PříspěvekZaslal: ne červenec 26 2015, 13:33    Předmět: Arduino odeslání http get Citovat

Ahoj, řeším drobný problém. Pomocí arduina odesílám data z DHT22 na sdsmicro a když odešlu testovací GET ve tvaru:
client.print( "GET /sdscep?p=6&sys140=123456");
V zařízení zobrazí jako přijaté číslo 1234562 (poslední číslo je zkrátka navíc)
když chci odeslat:
client.print( "GET /sdscep?p=6&sys140=");
client.println(h1)

Kde h1 je hodnota vlhkosti z DHT22, tak se niz nezapíše, ale seriová linka píše odeslání: /sdscep?p=6&sys140=3200
Do zařízení se zapíše jen nula, což by znamenalo GET ve tvaru /sdscep?p=6&sys140= bez odeslané hodnoty vlhkosti.

Nemá někdo nějaký nápad?
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
p32



Založen: Jan 13, 2007
Příspěvky: 15518
Bydliště: Olomouc

PříspěvekZaslal: ne červenec 26 2015, 14:47    Předmět: Citovat

Jak poznáš, že 123456 je číslo a ne něco jiného ?
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
sidbin



Založen: Nov 07, 2013
Příspěvky: 13

PříspěvekZaslal: ne červenec 26 2015, 15:14    Předmět: Citovat

Zkoušel jsem i jiné čísla Smile Při ručním zadání nějaké hodnoty to tedy skoro funguje.
Vždy se nakonec přidalo nějaké jiné
kód:
#include <SPI.h>
#include <Ethernet.h>
#include "DHT.h"

#define DHTPIN 2     // what pin we're connected to
#define DHTTYPE DHT22   // DHT 22  (AM2302)
byte mac[] = { 0x23, 0x14, 0x41, 0x32, 0x31, 0x44};                                     
EthernetClient client;
char server[] = "192.168.1.10"; // IP SDS
int  interval = 3600; // Wait between dumps

DHT dht(DHTPIN, DHTTYPE);
void setup() {

  Serial.begin(9600);
  Ethernet.begin(mac);
  dht.begin();

  Serial.print("IP Address        : ");
  Serial.println(Ethernet.localIP());
  Serial.print("Subnet Mask       : ");
  Serial.println(Ethernet.subnetMask());
  Serial.print("Default Gateway IP: ");
  Serial.println(Ethernet.gatewayIP());
  Serial.print("DNS Server IP     : ");
  Serial.println(Ethernet.dnsServerIP());


}

void loop() {
  int h = dht.readHumidity();
  int h1 = (dht.readHumidity()*100); // nasobení kvůli sdsku
  //Serial.print("Humidity: ");
  //Serial.print(h);
  Serial.print(h1);
  Serial.println();
  Serial.println();
  delay(1000);
 
  if (client.connect(server, 80)) {
    Serial.println("-> Connected140");
    client.print( "GET /sdscep?p=6&sys140=123456");
    Serial.println( "GET /sdscep?p=6&sys140=123456");
    //client.print(h1);
    //Serial.println(h1);
    Serial.print( " HTTP/1.1 ");
    client.println( " HTTP/1.1 ");
    Serial.print( "Host: 192.168.1.10" );
    client.print( "Host: 192.168.1.10" );
    client.println();
    Serial.println();
    client.println("192.168.1.10");
    Serial.print("192.168.1.10");
    client.println("User-Agent: Arduino");
    Serial.println("User-Agent: Arduino");
    client.println("Content-Type: text/html");
    Serial.print("Content-Type: text/html");
    client.println("Connection: close");
    Serial.print("Connection: close");
    client.println();
    Serial.println();
    client.stop();
  }
  else {

    Serial.println("connection failed140");
  }
  delay(interval);
  }
 

// Takže další zjištění, pokud pošlu 6ti místné je to OK, ale pokud pošlu 5ti místné, tak se uloží jako 7 místné. 4 místné se uloží jako 4 místné.
Je to záhadné chování Very Happy
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
sidbin



Založen: Nov 07, 2013
Příspěvky: 13

PříspěvekZaslal: ne srpen 02 2015, 10:52    Předmět: Citovat

Tak jsem se po týdnu vrátil k tomuto problému a zkusil změnit kód na tohle:
client.print( "GET /sdscep?sys140=1");
Serial.print( "GET /sdscep?sys140=1");
client.print(h1);
Serial.print(h1);

na seriovou linku to zapíše GET /sdscep?sys140=14150
Tedy 1 a 4místnou hodnotu vlhkosti z dht22, ovšem do zařízení se zapíše jen číslo 1.
taky jsem vypozoroval, že se musí poslat jen číslo a žádný znak navíc (mezera, tečka, čárka) jinak se zapíše nula.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
toMajstr



Založen: Nov 10, 2013
Příspěvky: 332

PříspěvekZaslal: po září 28 2015, 20:58    Předmět: Citovat

Proč ty řetezce nesečteš? Tohle se posílá jako 2 samostatný texty.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Zobrazit příspěvky z předchozích:   
Přidat nové téma   Zaslat odpověď       Obsah fóra Diskuzní fórum Elektro Bastlírny -> Miniaturní počítače (Arduino, Raspberry a další) Časy uváděny v GMT + 1 hodina
Strana 1 z 1

 
Přejdi na:  
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

Powered by phpBB © 2001, 2005 phpBB Group
Forums ©
Nuke - Elektro Bastlirna

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.


PHP-Nuke Copyright © 2005 by Francisco Burzi. This is free software, and you may redistribute it under the GPL. PHP-Nuke comes with absolutely no warranty, for details, see the license.
Čas potřebný ke zpracování stránky 0.13 sekund