Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Arduino hodnota zadaná v proměnné

Zdravím
Ptám se z předstihem jak de dává hodnota do řetězce ? mám takový AT příkaz
SIM800LSerial.print("AT+FTPPUT=2,1024\r");
ale neznám napřed pevnou hodnotu 1024ta se musí do počítat podle výsledku tu vypočítanou hodnotu vrazim do proměnné například zbytek ale to nefunguje takto
SIM800LSerial.print("AT+FTPPUT=2,zbytek\r");
jak se to dělá ? díky

Předmět Autor Datum
Pochopiteľne nemôžeš posielať hodnotu čísla v premennej priamo v textovom reťazci... Máš 2 možnosti…
pme 31.07.2021 19:39
pme
Ale to furt neřeší jak to propašuji číslo 1024 do toho příkazu Serial.print("AT+FTPPUT=2,1024\r"); d…
Víťa 01.08.2021 19:10
Víťa
Tebe ale chýbajú základné elementárne znalosti...Skús si prečítať ako sa pracuje zo serial portom, a… poslední
pme 01.08.2021 20:08
pme

Pochopiteľne nemôžeš posielať hodnotu čísla v premennej priamo v textovom reťazci...

Máš 2 možnosti:

int anInt = 123;
Serial.print("Number ");
Serial.print(anInt);
Serial.println(" on the screen");

prípadne zkombinuješ text a číslo z premmennej do textového reťazca a až následne ten pošleš:

char buffer[30];
int anInt = 123;
sprintf(buffer, "Number %d on the screen", anInt);
Serial.println(buffer);

Ale to furt neřeší jak to propašuji číslo 1024 do toho příkazu Serial.print("AT+FTPPUT=2,1024\r");
další věc já si ukládám do proměnné mesage odpovědi s modulu SIM800 abych věděl co ten modul odpovídá ,a ten text je dlouhý 1kB aby se to přeneslo na můj ftp server a ty odpovědi mě napadlo že si přečtu,a přitom tam by mělo být OK nebo ERROR a na serveru ftp mám toto 9711610511010332505152327566321021149710910132981171021021011143270971051081011001391699391999710910111497469958494954499332999710910111497951051101051164041583270971051081011003211611132971081081119997116101321021149710910132981171021021011141369324049575755413210311210511158321031121051119510511511495104971101001081011149511410110911111810140515754415832718073793210511511432115101114118105991013210511532110111116321051101151169710810810110044329997108108321031121051119510511011511697108108951051151149511510111411810599101404132102105114115116139169939199971091011149746995849505548933210111511295999710910111497951051101051164041583267120524848569910148535848120511021029849102100481313821019811111111610511010346464613416584438365806682615144494434671111101161211121013444347180828334131310837377564848328249524649561310131069828279821310658443836580668261514449443465807834443410511011610111411010111634131310797513106584438365806682614944491313107975131065844383658066826150444913131043836580668258324944494434494
právě nevím jestli proměnnou mesage a ten text čili dva řetězce spojuji znaménkem + dobře a vůbec nevím jestli ta konstrukce

while(Serial.available()){
    mesage=mesage+Serial.read();
  } 

je dobrá nebo ne ?

Serial.print("AT+FTPPUT=2,1024\r");
Serial.flush();
delay(3000); 
 while(Serial.available()){
    mesage=mesage+Serial.read();
  } 
  Serial.print(  mesage + " Web Web, na kterém se uživatel bez registrace - IP adresa, cookies, datum a čas návštěvy, stránky na webu navštívené, identifikace zařízení, typ prohlížeče, jeho verze a nastavení, rozlišení obrazovky, operační systém V červnu roku 1963 ukázala Valentina Těreškovovová (84) celému světu, že žena je schopna stejně věhlasných činů jako muži, když během třídenní výpravy do kosmu osmačtyřicetkrát obletěla zeměkouli. Legendou zůstala dodnes, přestože už dávno vyšly najevo nelichotivé okolnosti jejího letu, který málem skončil tragédií.Po přelomové cestě Jurije Gagarina do vesmíru nebyl důvod pochybovat o tom, že by stejnou misi teoreticky zvládla i žena, pokud by k tomu byla náležitě vyškolena. Emancipace v poválečném světě nabrala na síle a Sovětský svaz uctíval řadu hrdinek, které se za války osvědčily jako neohrožené pilotky. Žena v kokpitu už zkrátka nebyla tabu. Sovětům ale nestačila teorie. O nezdolné síle a schopnostech svých žen chtěli podat živý důkaz. A navíc se jim líbila myšlenka, že by k prvnímu muži ve vesmíru historie připsala i první ženu - a opět se zkratkou SSSR v závorkách.");

já vím že to popisuji divně ale snad to někdo pochopí :-| díky

Tebe ale chýbajú základné elementárne znalosti...Skús si prečítať ako sa pracuje zo serial portom, aké údaje - v akom tvare dostaneš serial.read....
Začni trebárs tu: https://www.arduino.cc/reference/en/language/functions/communication/serial/read/

Ak je Tvoja premenná message string, nemôžeš to spájať s tým čo príde zo serial portu, lebo to čo sa načíta je číslo nie znak (decimálne vyjadrenie znaku)...

A keď už, tak na ftp serveru Ti prichádza text, akurát vyjadrený v decimálnom tvare:

Malá ukážka:

97 116 105 110 103 32 50 51 52 32 75 66 32 102 114 97 109 101 32 98 117 102 102 101 114 32 70 97 105 108 101 100 13 91 69 93 91 99 97 109 101 114 97 46 99 58 49 49 54 49 93 32 99 97 109 101 114 97 95 105 110 105 116

znamená po prevedení na znaky toto:

ating 234 KB frame buffer Failed
[E][camera.c:1161] camera_init

Edit: Prečo si neskúsil môj postup v prvej odpovedi ??? Stále si myslíš, že si pôjdeš to svoje a bude Ti tu niekto hľadať chyby ???

Edit2: Zrejme Ti pomôže čítanie znakov a nie bytov: Serial.readString()
https://www.arduino.cc/reference/en/language/functions/communication/serial/readstring/

Zpět do poradny Odpovědět na původní otázku Nahoru