Notepadden veri okuyup değişkene atama

Merhabalar, Nodemcu kullanarak bir proje geliştirdim. Nodemcu’nun ortamda ki wifi ye bağlanarak İnternete çıkması lazım. SSID ve şifreyi sd karttaki notepaddan okutup bir değişkene atama yapabilir miyim. Yani ortamda ki ssid ve şifre değiştiğinde Arduino İDE programına ihtiyaç kalmadan sd kartın içinde ki notepadden değiştirmek istiyorum. Fikirlerinizi bekliyorum. Teşekkürler.

SPIFFS kütüphanesi işinizi görebilir fakat ,bu yöntemin yerine wifimanager i kullanabilirsiniz .

Aslında sadece wifi için düşünmüyorum projemde wifi ile birlikte toplam 10 tane değişken var. Spiffs örneklerine baktım fakat tr kaynak hiç yok neredeyse

yazılımda tr kaynak bulmanız genel olarak zor , aşağıdaki linkte flash bölümüne bi göz atın işinizi görebilir http://gomuluyazilim.com/esp8266-ile-flash-dosya-sistemi-multi-tasking-ve-tcp-server-kullanimi/

Wifimanager ve ArduinoJson kütüphaneleri ile bir yöntem buldum fakat kodları derleme aşamasında aşağıda ki hatayı alıyorum. “DynamicJsonBuffer is a class from ArduinoJson 5. Please see arduinojson.org/upgrade to learn how to upgrade your program to ArduinoJson version 6” ArduinoJson kütüphanesinin 6 versiyonu kurulu zaten. Yardımcı olabilir misiniz

DynamicJsonBuffer Json kütüphanesinin 5. versiyonuna ait parametre, 5 i yükleyip deneyiniz.

5 versiyon yükledim hata vermedi fakat farklı bir sorunum daha çıktı. Derlemeyi bitirip cihazın arayüzüne giriyorum ssid, pass ,port ,server ve token bilgilerimi kaydettiğimde tarayıcıda ki link ile arduino serial monitörde ki link aynı değil. Port kısmında tokenin bir kısmı çıkıyor. Ek görüntüsü : https://hizliresim.com/MRlm3k Sebebi ne olabilir yardımcı olursan çok sevinirim.

Kod ya da kod bloğunu paylaşır mısın

https://github.com/tzapu/WiFiManager/blob/master/examples/AutoConnectWithFSParameters/AutoConnectWithFSParameters.ino Hocam burada ki örnekten yola çıkarak yaptım. Kod çok uzun olduğu için link paylaşmak zorunda kaldım kusura bakma

Uygulamanızda mqtt server kullanıyor musunuz , kullanmıyorsanız diye tahmin ediyorum aşağıdaki uygulamayı kodunuza ekleyin, https://github.com/tzapu/WiFiManager/blob/master/examples/AutoConnect/AutoConnect.ino bir kere bağlandıktan sonra bağlantı yapamazsanız wifiManager.resetSettings(); komutunu aktif edip tekrar bağlantı sağlayabilirsiniz

Hocam bu uygulama ile server, port, blynk parametrelerini nasıl göndereceğim. Ayrıca kodu derledikten sonra direk wifi bağlantısı yapıyor otomatik.4.1 ip ile arayüze bağlanamıyorum Bahsettiğiniz reset kodu bunun için miydi.

Projenizde wifiye otomatik bağlanmayı istiyordunuz ilk başlarda , şimdi post yapmak isterseniz sunucunuz olması gerekli , local de olabilir bu sunucu, Reset komutunua gelecek olursak wifimanager kütüphanesi ile bağlantı sağladıktan sonra tekrar bahsettiğiniz 4.1 ip ile bağlantı yapamazsınız , kodunuza wifiManager.resetSettings(); ekleyip tekrar yükleme yapıp daha sonra eski kodunuzu yükleyebilirsiniz , sizin bağlandığınız wifi ismi aynı olduğu için tekrar bağlantı yapıyor,wifi ismi farklı olduğunda otomatik bağlantı yapmayacağı için tekrar kodunuzu derlemenize gerek yok

https://github.com/tzapu/WiFiManager/blob/master/examples/AutoConnect/AutoConnect.ino Hocam bu uygulama benim projeme uygun bir örnek değil malesef. En başta ben anlatamamış olabilirim konuyu. Yapmak istediğim wifi manager kütüphanesi kullanarak kod içerisinde ki değişkenlere 4.1 arayüzünden değerler atamak. Yukarda ki postta gönderdiğim link tam da bu isteğimi karşılıyor. Fakat port değişkenine doğru değer ataması yapılamıyor malesef. Blynk satırını koddan bloklayıp derlediğimde hiç bir sorun yok. Ssid, pass, server ve port değişkenlerine istediğim atamayı yapabiliyorum. Şu durumda verdiğiniz link üzerine değil de port sorunu üzerine eğilsek daha uygun değil mi hocam.

Yaptığınız port ve server ayarları mqtt protokolü ile 8080 portu üzerinden bağlanmanız gerekli olan ayarlar , ve ayarlar yaptığınızda mortu 8080 server i 24 girdiğinizde serial monitorde de aynı yazıyı görecekseniz ve bir kere bağlantı olduğu için resetlenmediğinden tekrar bağlanmayacaktır . zaten dediğiniz inputlar bir kere girilen inputlar ve server a ait inputlar değişken olarak atamak komik olabilr:) Sizin yapmak istediğiniz, localden açılan html sayfasından inputları girdiğinizde nodemcu üzerinden değerleri okuyup ona göre değişkenler ile işlemler yapmak istiyorsunuz. Aşağıdaki linke bir göz atın derim. https://randomnerdtutorials.com/esp32-esp8266-input-data-html-form/ Mqtt protokolünü kullanmanıza gerek yok

https://github.com/tzapu/WiFiManager/blob/master/examples/AutoConnectWithFSParameters/AutoConnectWithFSParameters.ino Hocam ben bu uygulamayı mqtt için tercih etmedim. Konuya daha detaylı açıklık getirmek istiyorum. Sms atan Isı nem takip sistemi yapıyorum. Projemde ssid,pass,maksimum sıcaklık,sms atılacak cep telefonları ve blynk token gibi değişkenlere dışardan istediğim zaman değer atamak istiyorum. Bu anlamda mqtt örneği tam da benim aradığım örnek proje. Proje içinde ki server ve port değişkenlerini maks_sicaklik ve sms_cep_tel olarak değiştirip kendi projeme uyarlayabildim. Zatem ssid ve pass değişkenlerinde de sorun yok 4.1 arayüzünden bu bilgileri de girebiliyorum. Yani sadece blynk_token bilgisini kaydettiremiyorum. Önerdiğiniz örnek proje için ayrıca teşekkürler. Değerlendiriceğim onu da.

char mqtt_server[40]; char mqtt_port[6] = “8080”; char blynk_token[34] = “YOUR_BLYNK_TOKEN”; Hatanızın sebebi char ın boyutunu aşmanızdan kaynaklanmakta , Projenize gelecek olursak dediğiniz projeyi verdiğiniz örnekten yapamazsınız. Sizin wifimanager i de kullanmanıza gerek yok, dediğiniz örnekten yola çıkarak; Access point ile hotspot kurup bağlanacaksınız http://192.168.4.1/ sabit ip si ile, Oradan değişkenlere istediğiniz değerleri girip arduino üzerinde değişiklik yapabilirsiniz, Sizin yapmak istediğiniz Wifimanagerden server,port değerleri yerine başka değerler göndermek , ve bunu yapsanız bile ağa otomatik bağlanacağınızdan giremeyeceksiniz. Wifimanager i unutun, ilk önce localhost a bağlanmayı ve veri almayı çözün ,tr kaynak da bulabilirsiniz nodemcu localhosta bağlanma vs diye , daha sonra access point ile hotspot açıp bağlantı yaparsınız

Hocam wifimanager ile blynk token hariç sorunsuz çalışıyor proje. Kodu derledikten sonra nodemcu direk AP moduna geçiyor ve 4.1 ile bağlanıyorum. Gelen arayüzden istediğim parametreyi değiştirip kaydet yapınca atadığım verileri serial monitörden izliyorum ve doğru görünüyor her şey. Tekrar bir şey değiştirmek istersem nodemcu üzerinde ki RST butonuna basarak AP moduna alıyorum ve tekrar 4.1 ile arayüze erişip yeni bilgileri kaydediyorum. Bu şekilde proje işimi görüyor. Fakat bir tek blynktr sorun yaşıyorum.

proje yarım yamalak işinizi görüyor zaten ondan bahsediyorum asıl kullanım amacı bu değil:) Hatanız char boyutunu aşmaktan dolayı , char boyutuna dikkat ediniz ben denediğimde serial monitörde de aynı çıktıları alabiliyorum

char mqtt_server[40]; char mqtt_port[6] = “8080”; char blynk_token[34] = “YOUR_BLYNK_TOKEN”; Mqtt_servera 2 basamaklı sayı, Mqtt_porta aralara virgül koyarak birden fazla cep telefonu yazmak istiyorum. Char hesaplamasını neye göre ve nasıl yapmalıyım.

https://hizliresim.com/MRlm3k bu resimdeki hatanızda mqtt portunuzdaki sayılar tutmuyor , onun sebebi; char mqtt_port[6] 6 yazmakta yani sizin girdiğiniz karakter sayısı fazla , o kısmı yükseltebilirsiniz