Çözüldü Arduino gelen sayı değerini "digit" olarak alıyor

Reklam Alanı #5

muratturk

Yeni üye
Katılım
15 Ocak 2019
Mesajlar
4
Tepkime puanı
0
Puanları
1
Konum
Kars
Merhaba, Arduino ile esp8266 iletişimi üzerinde çalışıyorum. Pic ile yaptığım sayıcı devresinden sayıyı arduinoya yollayıp arduinodan da server a yolluyorum. sayıyı 0 dan 9 a kadar sorunsuz yolluyorum ama sayı 2 basamaklı olunca arduino gelen sayıyı digit olarak alıyor. Mesela 14 sayısını arduinoya yolluyorum. Arduino ilk 1 sayısını alıyor servera yolluyor sonra 4 sayısını alıyor servera yolluyor. server da oluşan dosyaya baktığımda haliyle sayı 4 olarak gözüküyor. Bu tip bir sorunla karşılaşan oldu mu?

Kodlar:

C++:
#define ag_ismi "iPhone48"
#define ag_sifresi "is6536307"
#define IP "192.168.137.87"
#include <SoftwareSerial.h>
SoftwareSerial portbir(6,7);
char sayi;
void setup()
{
portbir.begin(2400);
Serial.begin(115200);
Serial.println("AT");
delay(3000);
analogReference(INTERNAL);
if(Serial.find("OK")){
Serial.println("AT+CWMODE=1");
delay(2000);
String baglantiKomutu=String("AT+CWJAP=\"")+ag_ismi+"\",\""+ag_sifresi+"\"";
Serial.println(baglantiKomutu);
delay(5000);
}
}

void loop(){
portbir.listen(); /* portbir dinleniyor */
while (portbir.available() > 0) {
char sayi = portbir.read();
sayi_yolla(sayi);
delay(2000);
}
}

void sayi_yolla(int sayi){

Serial.println(String("AT+CIPSTART=\"TCP\",\"") + IP + "\",82");
if(Serial.find("Error")){
Serial.println("AT+CIPSTART Error");
return;
}
String yollanacakkomut = "GET /sensor.php?p=123&s=fff&c=";
yollanacakkomut += (char(sayi));
yollanacakkomut += " Host: 192.168.137.87";
yollanacakkomut += "\r\n\r\n";
delay(3000);

Serial.print("AT+CIPSEND=");
Serial.println(yollanacakkomut.length()+4);

delay(1000);

if(Serial.find(">")){

Serial.print(yollanacakkomut);
Serial.print("\r\n\r\n");

}

else{
Serial.println("AT+CIPCLOSE");
}

}
 

alponero

Yeni üye
Katılım
26 Eki 2018
Mesajlar
101
Tepkime puanı
15
Puanları
1
Konum
Hollanda
picden yolladığınız sayıyı string olarak yollayın, aslında tüm sistemi sadece esp8266 ile yapabilirsiniz,
 

muratturk

Yeni üye
Katılım
15 Ocak 2019
Mesajlar
4
Tepkime puanı
0
Puanları
1
Konum
Kars
picden yolladığınız sayıyı string olarak yollayın, aslında tüm sistemi sadece esp8266 ile yapabilirsiniz,
Yapılabileceğini biliyorum ama sayaçta kullandığım piç dahili 4mhz iletişim sağlıyor. Bu sebeple 115200 lu hızlara çıkamıyorum. Kartı değiştirme şansım da yok. Picden gelen sayıda sıkıntı yok bu arada farklı bir program yazıp bakıyorum aldığı sayı doğru geliyor. Resimdeki gibi c= yazan kısım gelen sayı . 14 sayısını 1 i ayrı 4 u ayrı olarak aldı.

Ekli dosyayı görüntüle 496
 

Reklam Alanı #6

Reklam Alanı #1

Yeni konular

Reklam Alanı #2

Üst