The ESP8266 properly works. (Arduino Nano is just used as a bridge)
I print and read from serial with a C# program, it correctly works.
What I send from C# program:
AT+CWJAP="APN", "Pass"
The message from ESP:
AT+CWJAP="APN", "Pass" OK
But, when I change the setup as follows:
- Green wire (green wire on picture) to Arduino Digital2 pin - Red wire (red wire on picture) to Arduino Digital3 pin - Use Arduino code to read/write serial, instead of C# program - Create a software serial from code (esp8266 = SoftwareSerial(2, 3))
What I send from SoftwareSerial:
AT+CWJAP="APN", "Pass"
The message from ESP:
AT+CWJAP="APN", "Pass" ERROR
Do you have any ideas? Why isn't the result on SoftwareSerial identical to Serial?
If there are clues you have found, please contact me at: bcitizen@gmail.com
DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.
Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.
Ctrl+Shift+M ile açılan serial monitor bazen doğru cevap veriyor
Fırat Deveci'nin yazdığı program her zaman doğru cevap veriyor
PuTTY'ye ERROR dönüyor, serial port aynı deveci'nin programındaki gibi olduğu halde Bizim c# ile yazdığımız program PuTTY'nin cevabının aynısını veriyor. Halbuki deveci'nin programı da c# ile yazılan bir port dinleme programı?
Arduino'nun SoftwareSerial'dan ilettiği cevaba da ERROR geliyordu.
Hatta AT+CWJAP=... sorgusuna gelen cevaplar şöyle oluyor:
Arduino softwareserial => ERROR Fırat devecinin programı => OK Ctrl+Shift+M ile açılan şey => ERROR
Halbuki ESP8266 bizim ona gönderdiğimiz komutu echo da yapıyor, komutta bir yanlışlık olmadığı açık bir şekilde gözüküyor. İletilen kod doğru. (bkz 1. mesajda ilk haberleşme, 1. mesajda ikinci haberleşme)
Demek ki Serial haberleşmenin başka parametreleri de var.
Bu "başka parametreler" şunlar olabilir. C#'ta şöyle şeyler var:
//Code to read serial data. Find out more athttp://www.therobotlab.co.uk/2011/read-serial-c-sharp-arduino-tutorial/. //------------------------------------------------------------------------------------------------------------------------------------- //Set up the serial port. Use the following values for an Arduino, changing "COM3" to your own Serial Port. static SerialPort sp = new SerialPort("COM3", 9600, Parity.None, 8, StopBits.One);
----
Bunun dışında Fırat Deveci'ye bununla ilgili soru sorduk, arduinoyu profesyonel bulmuyorum dedi, kendisinin c#'ta yazdığı programın düzgün çalıştığı açık. Nedenini bilmiyorum ama çalışıyor. Benim c# programına gelen cevap aynı putty'e veya SoftwareSerial'a verilen cevap gibi ERROR şeklinde.
Yapılacak şey:
- Bir şekilde Fırat Deveci'nin kullandığı programın çalışma prensibinin aynsına, kendi C# programımızı getirmek. - Böylece temel sorunu bulmuş olacağız. - Temel sorunu bulunca, Arduino'daki kodların neden aynı şeyi yapamadığını da anlamış olacağız.
PuTTY'de Ctrl+J yapmadan önce enter'a basılırsa \r\n atıyor
AT+RST yaptıktan sonra AT+RST ERROR
demesinin nedeni büyük ihtimal \r\n verilmemesi. Bir defa entera bastıktan sonra ctrl+j yapınca yedi.
Aynı şekilde C# programımda da komutu gönderirken sonuna \r\n ekledikten sonra çalıştı. (WriteLine kullanmama rağmen ekstradan \r\n istiyor. İlginç değil mi?)
Bazen 1 defa \r\n yapmak yetmiyor, iki defa enter istiyor PuTTY. Bu da bulunsun notlarımda.
Şuan tek çözemediğim şu kaldı, AT+CWJAP yaparken ne kadar \r\n yapılırsa yapılsın Deveci'nin yazdığı program gibi olmuyor, ERROR dönüyor. Onu yarın tekrar deneyeyim. O büyük ihtimal Serial Timeout değeriyle ilgili. Biraz beklemesi gerekiyor (deveci'nin programı bekliyordu)
When I setup like the picture and connect Arduino Nano to PC by USB:
< Resime gitmek için tıklayın >
The ESP8266 properly works. (Arduino Nano is just used as a bridge)
I print and read from serial with a C# program, it correctly works.
What I send from C# program:
The message from ESP:
But, when I change the setup as follows:
- Green wire (green wire on picture) to Arduino Digital2 pin
- Red wire (red wire on picture) to Arduino Digital3 pin
- Use Arduino code to read/write serial, instead of C# program
- Create a software serial from code (esp8266 = SoftwareSerial(2, 3))
What I send from SoftwareSerial:
The message from ESP:
Do you have any ideas? Why isn't the result on SoftwareSerial identical to Serial?
If there are clues you have found, please contact me at: bcitizen@gmail.com
DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.
Üye Ol Şimdi DeğilÜye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.