duinozone.cz - Arduino a Raspberry fórum

Autor Téma: Identifikace proměnné  (Přečteno 3757 krát)

Offline tribal.cz

  • Bastlíř amatér
  • **
  • Příspěvků: 71
Identifikace proměnné
« kdy: Duben 11, 2015, 18:21:06 odpoledne »
Zdravím omlouvám se za nepřesný název ale nevím jak přesně můj problém popsat. Ale k věci mám dvě arduina každé  má vlastní napájení z USB a jsou propojeny pomocí RX a TX jedná se o uno a megu. Mega měří hodnoty a posílá je do sériové linky z které je čte uno a následně vypíše do serial monitoru/displeje/souboru na SD kartě (kam to je jedno). Problém je že se na seriovou linku odeílají data které ve výstupu z una mít nechci přesněji se jedná o inicializaci SD karty a nějaké kontrolní hodnoty ohledně senzoru DHT22 potřebuji čistě výstup teploty a vlhkosti. Což je problém nevím jak je identifikovat hodnota teploty se odesílá pod proměnnou temperature a vlhkost pod proměnnou humidity. Zkoušel sem je všelijak identifikovat pomocí polí samotných proměnný ale bezúspěšně buď se vypisují kraviny nebo kompilace skončí chybou.

Offline posjirka

  • Zkušený bastlíř
  • ****
  • Příspěvků: 433
Re:Identifikace proměnné
« Odpověď #1 kdy: Duben 11, 2015, 20:51:25 odpoledne »
Tak ty udaje neposilej na seriovou linku. Bud si pouzil nejaky program kteremu nerozumis a ten ti  pak pise veci jako inicializace sd karty - v tom pripade se projdi program a zakomentuj tyto prikazy. Druha varianta je pouzivas knihovny ktere takto odesilaji status pak doporucuji zmenit knihovny. Treti varianta a nejspis ta nejvic pravdepodobna vyuzivas uart (seriovou linku) jak pro komunikaci s pc tak pro komunikaci s druhym arduinem. Nevim sice jak by se ti to podarilo ale mutes vyuzit jinych pinu a s knihovnou software serial nasimulovat dalsi seriovou komunikaci ciste pro prenos dat. Ja bych radsi pouzil i2c protokol pro komunkaci. To ovsem jen odhaduji protoze BEZ KODU ti NIKDO asi NEPOMUZE. Takze sem vloz kody obou arduin a muzeme se z rezimu Sibyla prepnout na Sherloc

Offline tribal.cz

  • Bastlíř amatér
  • **
  • Příspěvků: 71
Re:Identifikace proměnné
« Odpověď #2 kdy: Duben 11, 2015, 21:44:13 odpoledne »
Ty udaje potřebuji na seriove lince (i když tam nebudou tak se samozřejmě nic neděje), ale časem tam přibudou další údaje což už pak bude docela problém. V tomto příkladu (http://arduino.cz/propojujeme-arduino-s-jinym-i-zarizenimi/) je to jednoduché není potřeba žádná identifikace proměnné posílají se pouze znaky které se pak ověřují ale v případě že v systému bude zařazeno více čidel třeba DHT 1-5 + cidlo světla, vodotěsné teplotní, barometrický tlak a já nevim co všechno a všechna tato data bude zpracovávat mega (kvůli paměti) aby v unu mohlo být zase něco jiného třeba nějaký interface pro dotykový displey/oled displej nebo jen obyčejné TFT (na tom nesejde) tak by bylo dobré nějakou proměnnou identifikovat myslel jsem že by to šlo pomocí pole třeba dht[1], dht[2] atd. ovšem takto se mi to nedaří zprovoznit. Samozřejmě mohu veškré funkce nechat jen na unu ale v takovém případě mi zbyde velmi málo místa

Kód: [Vybrat]
Typ uno:
Projekt zabírá 17 468 bytů (54%)  úložného místa pro program. Maximum je 32 256 bytů.
Globální proměnné zabírají 1 547 bytů (75%)  dynamické paměti, 501 bytů zůstává pro lokální proměnné. Maximum je 2 048 bytů.

zatímco na typu mega
Projekt zabírá 17 770 bytů (6%)  úložného místa pro program. Maximum je 253 952 bytů.
Globální proměnné zabírají 1 547 bytů (18%)  dynamické paměti, 6 645 bytů zůstává pro lokální proměnné. Maximum je 8 192 bytů.


Nahradím li kontrolu karty něčím jednodušším třeba tímto

Kód: [Vybrat]
Serial.print("Initializing SD card...");
  if (!SD.begin(SD_CS)) {
    Serial.println("failed!");
    return;
  }
  Serial.println("OK!");

Získám navíc 1% úložného místa a 10% pro globální proměnné není to moc ale lepší než nic, avšak stále toho moc nezmůžu. Pro řízení termostatu na kotel (v takovém případě bych to neřešil a navíc použil jen oled nebo nějaký obyčejný TFT displej s minimalistickým frontendem) by to stačilo, ale účel má být jiný proto potřebuji aby většina backendu závisela právě na typu mega a uno pouze obstarávalo roli klienta které patřičná data nezpracovaná odešle na server (mega) který si je zpracuje a odešle dále uno si ze sériové linky vytáhne vše potřebné a zbytek nechá nedotčený. Tento proces nakonec může probíhat mezi více zařízeními kdy třeba dvě nebo tři arduina mini pro odešlou surová data a pouze obdrží výsledek.

Je možné že to nejde v tom případě pak schopnost komunikace dvou arduin mezi sebou je nadbytečná a absolutně zbytečná. Proto věřím že to musí jít akorát sem ještě nepřišel na způsob jak toho docílit.

server
Kód: [Vybrat]
/*
   - Keyboard - Keypad.h
   - TFT lcd - SPI.h, TFT.h
   - SD slot - SD.h
   - Temp&Humidity - dht.h
*/
#include <dht.h>
#include <SD.h>
#include <SPI.h>
#include <TFT.h>
#include <Keypad.h>

/* --Define objects-- */


dht sensor;

//-----

PImage logo;

//-----

Sd2Card card;
SdVolume volume;
SdFile root;

/* --Create keyboard-- */

const byte ROWS = 4;
const byte COLS = 3;

char hexaKeys[ROWS][COLS] = {
  {'1', '2', '3'},
  {'4', '5', '6'},
  {'7', '8', '9'},
  {'A', '0', 'B'}
};

byte rowPins[ROWS] = {40, 41, 42, 43};
byte colPins[COLS] = {30, 31, 32};

Keypad keys = Keypad(makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS);

/* --Create display-- */

#define sd_cs 4
#define lcd_cs 10
#define dc 9
#define rst 8

TFT TFTscreen = TFT(lcd_cs, dc, rst);

/* -- Define variables --*/

int piezo = 53;
int dht = 23;
int btn[] = {22};
int led[] = {23};

int temperature;
int humidity;

//-----

String defaultPassword = "1379";
String input;

//-----

bool loged = false;

void setup() {

  Serial.begin(9600); // Start serial comunication with 9600 baud

  //initializing

  while (!Serial) { // Wait for serial comunication
  }
  Serial.print("Initializing SD card... ");
  if (!card.init(SPI_HALF_SPEED, sd_cs)) {
    Serial.println("SD Card not found!");
    return;
  }
  Serial.println("Sd Card found");
  sdStatus = true;

  // Card type

  Serial.print("Card type: ");
  switch (card.type()) {
    case SD_CARD_TYPE_SD1:
      Serial.println("SD1");
      break;
    case SD_CARD_TYPE_SD2:
      Serial.println("SD2");
      break;
    case SD_CARD_TYPE_SDHC:
      Serial.println("SDHC");
      break;
    default:
      Serial.println("Unknow Card type");
  }

  // Now we will try to open the 'volume'/'partition' - it should be FAT16 or FAT32
  if (!volume.init(card)) {
    Serial.println("System file FAT16/FAT32 not found. Please format this card");
    return;
  }

  // print the type and size of the first FAT-type volume
  uint32_t volumesize;
  Serial.print("\nVolume type is FAT");
  Serial.println(volume.fatType(), DEC);
  Serial.println();

  volumesize = volume.blocksPerCluster();    // clusters are collections of blocks
  volumesize *= volume.clusterCount();       // we'll have a lot of clusters
  volumesize *= 512;                            // SD card blocks are always 512 bytes
  Serial.print("Volume size (bytes): ");
  Serial.println(volumesize);
  Serial.print("Volume size (Kbytes): ");
  volumesize /= 1024;
  Serial.println(volumesize);
  Serial.print("Volume size (Mbytes): ");
  volumesize /= 1024;
  Serial.println(volumesize);
}

void loop() {
  sensor.read(dht);
  temperature = sensor.temperature;
  humidity = sensor.humidity;

  Serial.print("Aktualni teplota je: ");
  Serial.print(temperature);
  Serial.println("°C");
  Serial.print("Aktualni vlhkost je: ");
  Serial.print(humidity);
  Serial.println("%");
}

void pressKeypad(int) {
  char presskey = keys.getKey();
  if (presskey) {
    tone(piezo, 1200, 80);
  }
}

klient
Kód: [Vybrat]
void setup() {
 Serial.begin(9600);
}

void loop() {
  while(Serial.available()) {
    int a = Serial.read();
    Serial.write(a);
  }

}

Samozřejmě je mi jasné že tímto klient nekončí je to jen pro demonstraci a hlavně zatím testuji

Offline posjirka

  • Zkušený bastlíř
  • ****
  • Příspěvků: 433
Re:Identifikace proměnné
« Odpověď #3 kdy: Duben 11, 2015, 22:42:23 odpoledne »
Zkusim se na to v klidu zitra podivat. Napada me myslenka resit to formou dotaz/odpoved. Nez si posilat tuny dat a tridit je mozna by bylo lepsi aby se mega ptala na konkretni hodnotu ... Jen takova myslenka

Offline posjirka

  • Zkušený bastlíř
  • ****
  • Příspěvků: 433
Re:Identifikace proměnné
« Odpověď #4 kdy: Duben 13, 2015, 19:21:55 odpoledne »
Omlouvam se nejak se na to nedostavam ... Zkusim si tento tyden udelat cas a otestovat

Offline tribal.cz

  • Bastlíř amatér
  • **
  • Příspěvků: 71
Re:Identifikace proměnné
« Odpověď #5 kdy: Duben 14, 2015, 15:18:06 odpoledne »
V pořádku, momentálně zkouším použít I2C u které ho se je zaměřit na jedno dané zařízení a přímo do něho tlačit daná data takže ke každé desce půjde to co má jít, ale stále se potýkám se stejným problémem takže buď za proměnou dosadit znak a v cílové desce se budou muset výsledná data poskládat. Nevím jestli znáš jazyk PHP ale v něm je šikovná funkce explode která ti rozebere řetězec na základě doplňkových znaků například tečka vypadá to nějak takto

Kód: [Vybrat]
<?php
 $string 
"ahoj.jak.se.mas"//do proměnné string uložíme řetězec
 
$output explode("."$string); //Obsah proměnné rozebereme podle zvoleného pravidla tj. tečky

 
echo($output[0]); // vystup => ahoj
 
echo($output[3]); // vystup =>mas
 
echo($output[2]); // vystup =>se
?>


Bohužel žádná taková funkce pro arduino neexistuje možná nějaká knihovna.... Nakonec možná funkci budu muset sesmolit sám. Každopádně se nejprve ale budu muset lépe a podrobněji seznámit s I2C jelikož mé zkušenosti s ní jsou minimální.

Offline posjirka

  • Zkušený bastlíř
  • ****
  • Příspěvků: 433
Re:Identifikace proměnné
« Odpověď #6 kdy: Duben 14, 2015, 21:08:13 odpoledne »
no takhle přímo to u arduina nejde ale mužeš si tu samou funkci udělat. String je vlastně pole znaků a dá se tak i projít např smyčkou FOR. můžeš přesypávat data do jiných proměnných nebo do 2 rozměnrného pole.
myslím si ale že pro to co potřebuješ je toto zybtečné. Opravdu bych se zaměřil na formát otázka/odpověd.
Mám ted v hlavě hrubou kostru programu jen to hodit do IDE a vyzkoušet. Arduino mám myslím v práci tak aspoň zkusím emulátor na 123d.

Offline posjirka

  • Zkušený bastlíř
  • ****
  • Příspěvků: 433
Re:Identifikace proměnné
« Odpověď #7 kdy: Duben 14, 2015, 23:30:19 odpoledne »
tak jsem našel doma arduino a vyzkoušel komunikaci přes seriovy port / usb.

Kod klienta/merenici stanice je niže. Ovládám to přes seriový port, který je nastaven na 9600 bd  a příkaz ukončen znakem NEW LINE.
Reaguje na příkazy
t1
t2
t3
kdy posílá zpět náhodně generované hodnoty.
Ostatní příkazy ignoruje.

Kód: [Vybrat]
/*
klient promenna_v01

modelovy priklad autonomniho mereni s odeslanim 3 aktualnich hodnot (t1, t2 nebo t3) jako odezvu na dotaz po seriovem portu
Je dulezite vzdy ukoncit slovo znakem '/n'  alias NEW LINE.
Když master pošle dotaz t1 vrátí se mu aktualni hodnota t1
to samé t2 nebo t3
pro kontrolu komunikace je zde dotaz       status
jakékoliv jiné prikazy  nebo  neukoncene dotazy ignoruje

Mereni probiha ve hlavní smycce mimo komunikaci.
Zatim je komunikace resena pres Serial monitor z Arduino IDE,
 */
// pokusne promenne
int t1 = 0; // identifikace t1
int t2 = 20; // id t2
int t3 = 41; // id t3
String serialString = ""; // sem se bude ukladat prichozi data

void setup() {
  Serial.begin(9600); // inicializace serioveho portu
  serialString.reserve(100); // rezervace 100 bytu pro string
}

void loop() {
  // mereni t1
  t1 = random(100);
  // tady t2
  t2 = random(100);
  // tady t3
  t3 = random(100);
}

// funkce prijmu dat ze serioveho portu
void serialEvent() {
  while (Serial.available()) {
    char inChar = (char)Serial.read(); // cte novy prichozi znak
    if (inChar == '\n') { // jestli je znak typu NEW LINE konci smycku
      if (serialString == "t1") {
        Serial.println(t1); // pokud je string == t1 posli zpet teplotu t1
      }
      if (serialString == "t2") {
        Serial.println(t2); // ...
      }
      if (serialString == "t3") {
        Serial.println(t3); // ...
      }
      if (serialString == "status") {
        Serial.println("ok"); // test komunikace
      }
      serialString = ""; // vymaz string
    } else {
      serialString += inChar; // prida jej do stringu
    }
  }
}
« Poslední změna: Duben 14, 2015, 23:32:43 odpoledne od posjirka »

Offline tribal.cz

  • Bastlíř amatér
  • **
  • Příspěvků: 71
Re:Identifikace proměnné
« Odpověď #8 kdy: Duben 17, 2015, 15:08:15 odpoledne »
Tak po celém týdnu mám konečně čas vyzkoušet tvé řešení konec konců mi možná bude vyhovovat více uvidíme. Nicméně předpokládám že po minimální úpravě lze program obdobně použít i pro I2C komunikaci, ke které se nejspíš nakonec stejně přikloním jelikož mám na cestě nějaké periferie které právě pomocí I2C fungují každopádně děkuji.

Mykee

  • Host
Re:Identifikace proměnné
« Odpověď #9 kdy: Říjen 23, 2016, 23:20:02 odpoledne »
Ahoj pani,  trochu toto tema ozivim. Bojuju s ovladanim una gsm modulem (neoway590) pouzil jsem kostru  vyse uvedeneho kodu  pro ovladani, ale bohuzel se mi nedari to neako ozivit:( inChar z modulu mi prikaz na serial monitoru v IDE vypise v poradku. Ale uno na ne nereaguje :( zitra zkusim vlozit kod pro ukazku. Byl bych rad za jakoukoli radu ci nakopnuti:) ma to byt projekt Uno-gsm modul-2×rele-2×Ds1820 prikazem napr Rele1-ZAP/VYP, dotaz - STAV pro teploty a stavy relatek. Podarilo se mi rozchodit pouze s jednim prikazem a vyse uvedeny kod si mi pro tohle reseni docela libil. Ale nekde mam botu :(

Offline posjirka

  • Zkušený bastlíř
  • ****
  • Příspěvků: 433
Re:Identifikace proměnné
« Odpověď #10 kdy: Říjen 23, 2016, 23:38:19 odpoledne »
hod sem kod a mrkenem na to ...

Mykee

  • Host
Re:Identifikace proměnné
« Odpověď #11 kdy: Říjen 24, 2016, 12:50:04 odpoledne »
zde je kod predelany pro UNO a GSM (m590) tento jsem zkousel jen aby pri  sms prikazu t1* odeslal teplotu a napeti, ale bohuzel :) kdyz v void serialEvent() zvolim misto M590.read() -- Serial.read() a prikaz poslu pres serial monitor chova se to tak jak bych si predstavoval. prilozim jeste funkcni kod s trochu jinym resenim. Diky za kazdou radu :))

Kód: [Vybrat]
#include <SoftwareSerial.h>
SoftwareSerial M590(7, 8);  // Rx, Tx
#define BOUNCE 1000
#define BOUNCE1 3000
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 6
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
DeviceAddress insideThermometer = { 0x28, 0xFF, 0xD4, 0xC9, 0x43, 0x16, 0x04, 0x51 };
char  inchar;
int analogInput = 0;
float vout = 0.0;
float vin = 0.0;
float R1 = 100000.0;
float R2 = 10000.0;
int value = 0;
int t1 = 0; // identifikace t1
int t2 = 20; // id t2
int t3 = 41; // id t3
String serialString = ""; // sem se bude ukladat prichozi data

void setup() {
 
  Serial.begin(9600);// initialize both serial ports:
  serialString.reserve(100); // rezervace 100 bytu pro string
  // after change baud rate at 9600bps with AT commnad: AT+IPR=9600
  M590.begin(19200);
 //M590.println("AT+IPR=9600");//zmena rychlosti prenosu
  delay(BOUNCE);
  M590.println("ati");
  delay(BOUNCE);
  M590.println("AT+CNMI=1,2,0,0,0");
 delay(BOUNCE);
  M590.print("AT+CSCS=\"GSM\"\r");   
 delay(BOUNCE);
  M590.print("AT+CMGF=1\r");   
 delay(BOUNCE);
 // M590.print("\r");
 delay(BOUNCE);
  M590.print("AT+CMGS=\"+420608338553\"\r");    //Number to which you want to send the sms
 delay(BOUNCE);
  M590.print("Modul pripraven !\r");   //The text of the message to be sent
 delay(BOUNCE);
  M590.write(0x1A);  // command for send sms, code for CTRL-Z
  delay(BOUNCE);


   
 
  sensors.begin();
  // Nastaveni rozliseni na 10 bitu
  sensors.setResolution(insideThermometer, 10);
 


 
}
void sendTemp(DeviceAddress deviceAddress){
  float tempC = sensors.getTempC(deviceAddress);
  if (tempC == -127.00) {
    Serial.print("Chyba, senzor neodpoveda");
  } else {
    Serial.print("C: ");
    Serial.print(tempC);
     M590.println("AT+CMGD=1,4"); // mazani SMS
Serial.println("delete all SMS");
    delay(BOUNCE);
    M590.print("AT+CMGS=\"+420608338553\"\r");
    delay(BOUNCE);
    M590.print("Teplota: ");
    M590.print(tempC);
    M590.print(" C°    ");
    M590.print("Nap. ");
    M590.print(vin);
    M590.print(" V");
   
         delay(BOUNCE);
  // delay(BOUNCE1);
 M590.write(0x1A);  // odslani sms
  delay(BOUNCE);
  delay(BOUNCE);
 
  }
 
}

void loop() {

value = analogRead(analogInput);
   vout = (value * 5.0) / 1024.0;
   vin = vout / (R2/(R1+R2));
   if (vin<0.09)
   vin=0.0;
 
  // mereni t1
  t1 = random(100);
  // tady t2
  t2 = random(100);
  // tady t3
  t3 = random(100);
      }


void serialEvent() {
  while (M590.available()) {
    char inChar = (char)M590.read(); // cte novy prichozi znak
    if (inChar == '*') { // sms prikaz koncim hvezdickou
      if (serialString == "t1") {
        Serial.println("teplota odeslana"); // pokud je string == t1 posli zpet teplotu t1
        sendTemp(insideThermometer);
      }
      if (serialString == "t2") {
        Serial.println(t2); // ...
      }
      if (serialString == "t3") {
        Serial.println(t3); // ...
      }
      if (serialString == "status") {
        Serial.println("ok"); // test komunikace
      }
      serialString = ""; // vymaz string
    } else {
      serialString += inChar; // prida jej do stringu
    }
  }
}
 


Mykee

  • Host
Re:Identifikace proměnné
« Odpověď #12 kdy: Říjen 24, 2016, 12:57:25 odpoledne »
zde prikladam funkci kod s funkci po sms prikazu Mod01 posle teplotu z ds1820 a namerene napeti. zde vse funguje, ale potrebuji rozsirit paletu prikazu :( a s tim si touhle cestou  nevim rady :( A predem se omlouvam za chaoticke reseni :)))) verim ze ten kod jde napsat elegantneji, jsem v zacatcich tak me pochopte :) diky :)

Kód: [Vybrat]
#include <SoftwareSerial.h>
SoftwareSerial M590(7, 8);  // Rx, Tx
#define BOUNCE 1000
#define BOUNCE1 3000
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 6
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
DeviceAddress insideThermometer = { 0x28, 0xFF, 0xD4, 0xC9, 0x43, 0x16, 0x04, 0x51 };
char  inchar;
int analogInput = 0;
float vout = 0.0;
float vin = 0.0;
float R1 = 100000.0;
float R2 = 10000.0;
int value = 0;


void setup() {
 
  Serial.begin(9600);// initialize both serial ports:
  // after change baud rate at 9600bps with AT commnad: AT+IPR=9600
  M590.begin(19200);
 //M590.println("AT+IPR=9600");//zmena rychlosti prenosu
  delay(BOUNCE);
  M590.println("ati");
  delay(BOUNCE);
  M590.println("AT+CNMI=1,2,0,0,0");
 delay(BOUNCE);
  M590.print("AT+CSCS=\"GSM\"\r");   
 delay(BOUNCE);
  M590.print("AT+CMGF=1\r");   
 delay(BOUNCE);
 // M590.print("\r");
 delay(BOUNCE);
  M590.print("AT+CMGS=\"+420608338553\"\r");    //Number to which you want to send the sms
 delay(BOUNCE);
  M590.print("Modul pripraven !\r");   //The text of the message to be sent
 delay(BOUNCE);
  M590.write(0x1A);  // command for send sms, code for CTRL-Z
  delay(BOUNCE);


   
  sensors.begin();
  // Nastaveni rozliseni na 10 bitu
  sensors.setResolution(insideThermometer, 10);
 


 
}
void sendTemp(DeviceAddress deviceAddress){
  float tempC = sensors.getTempC(deviceAddress);
  if (tempC == -127.00) {
    Serial.print("Chyba, senzor neodpoveda");
  } else {
    Serial.print("C: ");
    Serial.print(tempC);
     M590.println("AT+CMGD=1,4"); // delete all SMS
Serial.println("delete all SMS"); // delete all SMS
    delay(BOUNCE);
    M590.print("AT+CMGS=\"+420608338553\"\r");
    delay(BOUNCE);
    M590.print("Teplota: ");
    M590.print(tempC);
    M590.print(" C°    ");
    M590.print("Nap. ");
    M590.print(vin);
    M590.print(" V");
   
         delay(BOUNCE);
  // delay(BOUNCE1);
 M590.write(0x1A);  // odesle sms
  delay(BOUNCE);
  delay(BOUNCE);
 
  }
 
}


 

void loop() {

value = analogRead(analogInput);
   vout = (value * 5.0) / 1024.0;
   vin = vout / (R2/(R1+R2));
   if (vin<0.09)
   vin=0.0;
 
  sensors.requestTemperatures();
  if(M590.available() >0)
    {
 
     
      inchar=M590.read();
    Serial.write(inchar);
    if (inchar=='*')
    {
      delay(10);
 
      inchar=M590.read();
        if (inchar=='M')
        {
        delay(10);
       
       inchar=M590.read();
        if (inchar=='o')
        {
        delay(10);

        inchar=M590.read();
        if (inchar=='d')
        {
        delay(10);
       
        inchar=M590.read();
        if (inchar=='0')
        {
        delay(10);
       
        inchar=M590.read();
        if (inchar=='1')
        {
          sendTemp(insideThermometer);
         
          delay(BOUNCE);
         
  }    //
  }
   }
    }
     }
    }
      }
      }

Offline Mykee

  • Bastlíř začátečník
  • *
  • Příspěvků: 16
Re:Identifikace proměnné
« Odpověď #13 kdy: Říjen 24, 2016, 22:48:39 odpoledne »
Tak uz asi vim kde je muj problem:( nechal jsem si vypsat na seril monitor promenou serialString a ouha objevuje se tam info o odesilateli a casova znacka a po te na dalsim radku poslany prikaz (bez ukoncovaciho znaku v mem pripade teda bez hvezdicky). Tzn ze potrebuju zacit cist do promene serialString az po tech sys.informacichktery konci uvozovkami. Nebo poradi neake  jednodusi a elegantnejsi reseni ?

Offline posjirka

  • Zkušený bastlíř
  • ****
  • Příspěvků: 433
Re:Identifikace proměnné
« Odpověď #14 kdy: Říjen 25, 2016, 07:06:46 dopoledne »