ESP8266 কি কোনওভাবে ওয়াইফাই অ্যাক্সেস ডেটা মনে রাখে?


10

আজ আমি একটি ESP8266 এর সাথে কিছু টিঙ্কারিং করেছিলাম, ওটিএ চেষ্টা করে দেখছি এবং একটি ওয়েবসভার লিখছি। একটি ত্রুটি সন্ধান করতে, আমি স্কেচটি কেবল নীচের লাইনে কমিয়ে দিয়েছি:

#include <ESP8266WebServer.h>

ESP8266WebServer server(80);

void setup() {
  Serial.begin(115200);
  server.on("/", []() {
    Serial.println("Sending response...");
    server.send(200, "text/plain", "Hi there!");
  });
  server.begin();
}

void loop() {
  server.handleClient();
}

লক্ষ্য করুন যে কোনও ওয়াইফাই নেটওয়ার্কে সংযোগের জন্য কোনও কোড নেই। তবে, চিপটি এখনও প্রতিটি বুটে আমার স্থানীয়, ডাব্লুপিএ 2-সুরক্ষিত, নেটওয়ার্কের সাথে সংযোগ করে। আমি চিপটি পিং করতে পারি, আমার ব্রাউজারটি "হাই হাই!" পেতে পারে http এর মাধ্যমে বার্তা, সিরিয়াল বার্তাটি মুদ্রিত হয় gets

এটা কিভাবে সম্ভব? ESP8266 কি কোনওভাবে ওয়াইফাই তথ্য ধরে রাখে, সম্ভবত কিছু পুরানো ওটিএ ডেটার কারণে যা পুরোপুরি ওভাররাইট করা হয়নি?

আমি প্ল্যাটফর্মিও ব্যবহার করছি এখানে আমার সম্পূর্ণ প্ল্যাটফর্মিওআইএনআই:

[env:d1_mini]
platform = espressif8266
board = d1_mini
framework = arduino

আমি এখানে সংকলন এবং আপলোড লগ পোস্ট করেছি: https://pastebin.com/BtGrFZiu

উত্তর:


12

হ্যাঁ, সাধারণত শেষ ওয়াইফাই শংসাপত্রগুলি ফ্ল্যাশে সংরক্ষণ করা হবে এবং ESP8266 এই ডেটাটিকে বুটআপে লোড করে এবং সর্বশেষ জ্ঞাত ওয়াইফাইতে পুনরায় সংযোগ স্থাপন করবে। Https://github.com/esp8266/Ardino/issues/2843#issuecomment-334250100 দেখুন :

এসডিকে ফ্ল্যাশের একটি সেক্টরে ওয়াইফাই শংসাপত্রগুলি সহ কিছু তথ্য সঞ্চয় করে।

আপডেটের পরে দ্রুত প্রারম্ভিকরণের জন্য সেই সেক্টরটিকে ফ্ল্যাশিংয়ের মধ্যে রাখা হয়। বুটে, আপনার স্কেচটি কার্যকর হওয়ার আগে, এসডিকে ওয়াইফাই শংসাপত্রগুলি পুনরুদ্ধার করবে এবং একটি দ্রুত সংযোগ দেওয়ার চেষ্টা করবে।

Https://github.com/esp8266/Ardino/blob/master/doc/esp8266wifi/station-class.rst#setautoconnect এWiFi.setAutoConnect(autoConnect) ডকুমেন্টেড হিসাবে ফাংশনটি ব্যবহার করে এই আচরণটি নিয়ন্ত্রণ করা যেতে পারে । এটিকে পরিবর্তে এসপ্রেসিফ এসডিকে ফাংশন ( এপিআই রেফারেন্স ) বলা হয়wifi_station_set_auto_connect

এখানে চিত্র বর্ণনা লিখুন

সংক্ষেপে: এটি স্বাভাবিক আচরণ। আপনি যদি নিশ্চিত করতে চান যে আপনার ESP8266 কোনও ওয়াইফাইয়ের সাথে সংযোগ স্থাপন করছে না যদি না আপনি এটি স্পষ্টভাবে না বলে থাকেন তবে WiFi.setAutoConnect(autoConnect)শুরুতে কল করুন।

সম্পাদনা করুন: ফার্মওয়্যার কোডের মধ্যে থেকে আপনি ব্যবহার করতে পারেন system_restore। ডকুমেন্টেশন বলছে যে এটি ওয়াইফাই সম্পর্কিত ডেটা পুনরায় সেট করবে। এটি পূর্ববর্তী সেটিংস ধ্বংস করতে হবে। ফাংশনটি আরডুইনো-ইএসপি 8266 এর মধ্যে https://github.com/esp8266/Ardino/blob/master/tools/sdk/incolve/user_interface.h থেকে অন্তর্ভুক্ত করা যেতে পারে । আমি নিজেই এটি চেষ্টা করে দেখিনি বা এও বলতে পারি না যে এটি প্রকৃতপক্ষে ফ্ল্যাশ থেকে সুরক্ষা-সমালোচনামূলক তথ্য মুছে ফেলে।

অ আ ক খ

অথবা, যেমন আপনি এটিও জানতে পেরেছেন, পুরো ফ্ল্যাশটিকে হার্ড-মুছে ফেলার ফলে ওয়াইফাই ডেটা পরম নিশ্চিততার সাথে মুছে ফেলা হবে। এই ব্যবহার করে অর্জন করা যেতে পারে esptool.pyসঙ্গে erase_flashবিকল্প, যেমন python esptool.py -p COM6 erase_flash। তারপরে আপনি নতুন ফার্মওয়্যারটি ফ্ল্যাশ করতে পারবেন যা পূর্ববর্তী ওয়াইফাই সেটিংস ব্যবহার করবে না (তবে সম্ভবত এটি আবার ডিফল্ট অ্যাক্সেস পয়েন্টটি খুলবে)।

তারপরে এটি রয়েছে ESP.eraseConfigযা কেবলমাত্র প্রাসঙ্গিক ফ্ল্যাশ সেক্টরগুলি মুছে দেয়।


ধন্যবাদ. পূর্বে ফ্ল্যাশ থেকে সেট করা শংসাপত্রগুলি মুছার কোনও উপায় আছে? সম্পাদনা: পাওয়া গেছে যে এটি এসপটোলের মাধ্যমে সম্ভব: esp8266.com/viewtopic.php?f=32&t=8204
জিয়ার

1
@ জিয়ার আপডেট হয়েছে।
ম্যাক্সিমিলিয়ান গারহার্ড

1
ওয়াইফাই.ডিসকনেক্ট () স্মরণ করা শংসাপত্রগুলিও সরিয়ে দেয়
জুরজ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.