সুচিপত্র:

ফ্ল্যাশ ESP-01 (ESP8266) ইউএসবি-থেকে-সিরিয়াল অ্যাডাপ্টার ছাড়া রাস্পবেরি পাই ব্যবহার করে: 3 ধাপ
ফ্ল্যাশ ESP-01 (ESP8266) ইউএসবি-থেকে-সিরিয়াল অ্যাডাপ্টার ছাড়া রাস্পবেরি পাই ব্যবহার করে: 3 ধাপ

ভিডিও: ফ্ল্যাশ ESP-01 (ESP8266) ইউএসবি-থেকে-সিরিয়াল অ্যাডাপ্টার ছাড়া রাস্পবেরি পাই ব্যবহার করে: 3 ধাপ

ভিডিও: ফ্ল্যাশ ESP-01 (ESP8266) ইউএসবি-থেকে-সিরিয়াল অ্যাডাপ্টার ছাড়া রাস্পবেরি পাই ব্যবহার করে: 3 ধাপ
ভিডিও: কিভাবে ESP8266 ESP-01 Wi-Fi রিলে মডিউল প্রোগ্রাম করবেন 2024, নভেম্বর
Anonim
ফ্ল্যাশ ESP-01 (ESP8266) ইউএসবি-থেকে-সিরিয়াল অ্যাডাপ্টার ছাড়া রাস্পবেরি পাই ব্যবহার করে
ফ্ল্যাশ ESP-01 (ESP8266) ইউএসবি-থেকে-সিরিয়াল অ্যাডাপ্টার ছাড়া রাস্পবেরি পাই ব্যবহার করে

এই ইন্সট্রাকটেবল আপনাকে কিভাবে আপনার ESP8266 মাইক্রোকন্ট্রোলারকে ESP-01 WIFI মডিউলে প্রোগ্রামিং শুরু করতে হয় সে বিষয়ে নির্দেশনা দেয়। আপনাকে যা শুরু করতে হবে (অবশ্যই ESP-01 মডিউল ছাড়া)

  • রাস্পবেরি পাই
  • জাম্পার তার
  • 10K প্রতিরোধক

আমি আধুনিক আলেক্সা নিয়ন্ত্রিত এলইডি নাইট ল্যাম্পে একটি পুরানো বেডসাইড ল্যাম্প পুনর্নির্মাণ করতে চেয়েছিলাম। ভয়েস কমান্ড ব্যবহার করে এটি চালু/বন্ধ করা কিছুই অভিনব নয়। আমি অনলাইনে এলইডি সহ সবচেয়ে সহজ ESP-01 WIFI মডিউল, রিলে এবং তারের অর্ডার দিয়েছিলাম এবং ESP8266 মাইক্রোকন্ট্রোলার প্রোগ্রামে ইউএসবি-থেকে-সিরিয়াল অ্যাডাপ্টারের অর্ডার দিতে সম্পূর্ণ ভুলে গিয়েছিলাম। কিন্তু যেহেতু আমার একটি রাস্পবেরি পাই ছিল এবং রাস্পবেরি পাই এবং ESP-01 বোর্ড উভয়ই UART পিন ছিল, আমি ভেবেছিলাম আমি আমার RPi ব্যবহার করতে পারি ESP8266 অ্যাডাপ্টার ছাড়া।

ধাপ 1: রberry্যাপবেরি পাই কনফিগার করুন

র‍্যাপবেরি পাই কনফিগার করুন
র‍্যাপবেরি পাই কনফিগার করুন

আমি রাস্পবেরি পাই 3 মডেল বি+ব্যবহার করেছি, তবে, নির্দেশাবলী অন্যান্য সংস্করণগুলিতে কাজ করা উচিত, বিশেষত মডেল বি তে।

সুতরাং, প্রথমে জিনিসগুলি - আমাদের Pi তে UART সক্ষম করতে হবে।

RPi কনফিগারেশন সেটিংসে যান। টার্মিনাল উইন্ডো রান

$ sudo raspi-config

5 ইন্টারফেসিং বিকল্পগুলিতে যান, তারপরে P6 সিরিয়াল নির্বাচন করুন। আপনি তারপর অনুরোধ করলেন আপনি কি লগইন শেলটি সিরিয়ালে অ্যাক্সেসযোগ্য হতে চান? নির্বাচন করুন যেহেতু আমরা পাই হেডলেস চালানোর জন্য ইউএআরটি ব্যবহার করতে চাই না, কিন্তু অন্যান্য ডিভাইসের সাথে যোগাযোগ করতে চাই, অতএব নিম্নলিখিত পর্দায় যখন জিজ্ঞাসা করা হয় আপনি সিরিয়াল পোর্ট হার্ডওয়্যার সক্ষম করতে চান? নির্বাচন করুন অনুরোধ অনুসারে পাই পুনরায় চালু করুন। UART এখন রাস্পবেরি পাই 3 এর RX এবং TX পিনে সিরিয়াল যোগাযোগের জন্য সক্ষম হওয়া উচিত।

ধাপ 2: রাস্পবেরি পাই এর সাথে ESP-01 সংযুক্ত করুন

রাস্পবেরি পাই এর সাথে ESP-01 সংযুক্ত করুন
রাস্পবেরি পাই এর সাথে ESP-01 সংযুক্ত করুন

এখন আমরা একসঙ্গে সবকিছু তারের নিচে নামতে।

প্রথমত, আপনার RPi 3.3V পাওয়ার এবং GND (স্থল) পিনগুলিকে ESP8266 মাইক্রোকন্ট্রোলার, TXD (ট্রান্সমিট) এবং RXD (রিসিভ) পিনের সাথে যোগাযোগ করতে, এবং ESP8266 চালানোর জন্য দুটি সাধারণ উদ্দেশ্য পিন (যে পিনগুলি উচ্চ বা সেট করা যেতে পারে) কম)। Pinout.xyz- এ পিন ব্যবস্থা দেখুন অথবা টার্মিনালে টাইপ করুন:

$ pinout

দ্বিতীয়ত ESP-01 এ প্রয়োজনীয় পিন চিহ্নিত করুন। কিন্তু শুরুতে আমাদের ESP-01 পিনের বোঝাপড়া থাকা দরকার। আমি আপনাকে এই বিষয়ে সহায়তা করার জন্য ইন্টারনেটে বেশ কয়েকটি সহায়ক সংস্থান খুঁজে পেয়েছি। এটি একটি সংক্ষিপ্ততম, যখন এটি একটি আরও ভাল ব্যাখ্যা দেয়। সংক্ষেপে: 8 টি পিন আছে, তাদের 7 টির প্রয়োজন হবে, যেমন VCC পাওয়ার এবং GND (স্থল) পিনের জন্য পাওয়ার, TXD এবং RXD পিন যোগাযোগের জন্য, এবং RST (রিসেট), CH_PD (চিপ পাওয়ার ডাউন, কখনও কখনও লেবেলযুক্ত) CH_EN বা চিপ সক্ষম) এবং GPIO0 মডিউলটি পরিচালনা করতে। সাধারণত ESP8266 একটি নিয়মিত মোডে কাজ করে, কিন্তু ESP8266 এ একটি কোড আপলোড করার সময় এটি একটি ফ্ল্যাশ মোডে থাকতে হবে। নিয়মিত বা স্বাভাবিক অপারেশন মোডের জন্য মডিউলটিকে পাওয়ারের সাথে সংযুক্ত করা প্রয়োজন (স্পষ্টতই), কিন্তু পিন CH_PD কে 10K এর মাধ্যমে VCC এর সাথে সংযুক্ত করতে হবে (এই মানটি বিভিন্ন রিসোর্সে পরিবর্তিত হয়, আমি 3K পর্যন্ত মান পেয়েছি) পুল-আপ বুটে প্রতিরোধক। অন্যদিকে, ফ্ল্যাশিং বা প্রোগ্রামিং মোডে প্রবেশ করার জন্য আপনাকে বুট করার সময় GPIO0 পিন গ্রাউন্ড করতে হবে। GPIO0 এর মাধ্যমে অনিয়ন্ত্রিত বর্তমান প্রবাহ প্রতিরোধ করার জন্য গ্রাউন্ড করা হলে GPIO0 কে কিছু কম প্রতিরোধের প্রতিরোধক 300Ω - 470Ω এর মাধ্যমে মাটিতে সংযুক্ত করার সুপারিশ করা হয় (এই বিষয়ে এখানে আরো)। নাম হিসাবে RST পিন MCU রিসেট (বা পুনরায় আরম্ভ) প্রস্তাব করে। স্বাভাবিক ক্রিয়াকলাপের সময় এটি একটি 10K পুল-আপ প্রতিরোধকের মাধ্যমে VCC- এর সাথে সংযুক্ত হতে পারে, কিন্তু মাইক্রোকন্ট্রোলারটি পুনরায় সেট করার জন্য ভিত্তি করা উচিত। যদিও RST এবং GPIO0 পিন (বা এমনকি ম্যানুয়ালি একটি বোতাম সিমুলেট করার জন্য তারে যোগদান করা) এর জন্য শারীরিক বোতামগুলি ব্যবহার করা সবসময় সম্ভব, তবে মডিউলের RST এবং GPIO0 এ ভোল্টেজ উচ্চ এবং নিম্ন সেট করতে রাস্পবেরি পাই পিন ব্যবহার করা অনেক বেশি আনন্দদায়ক অভিজ্ঞতা। পিন এছাড়াও 10K এবং 470Ω প্রতিরোধকগুলির কোন প্রয়োজন নেই।

এখন ESP-01 পিনের বিশেষত্ব সম্পর্কে সচেতন হওয়ায় আমরা সবকিছু একসাথে সংযুক্ত করা শুরু করতে পারি। আপনি উপরের অঙ্কনের সাথে একটি রেফারেন্স হিসাবে নিম্নলিখিত টেবিলটি ব্যবহার করতে পারেন:

ESP-01 রাস্পবেরি পাই

  • VCC (3.3V) পিন #1 (3.3V)
  • GND পিন #6 (GND)
  • TXD পিন #10 (RXD / BCM 15)
  • RXD পিন #8 (TXD / BCM 14)
  • CH_PD পিন #1 (3.3V)
  • RST পিন #3 (BCM 2)
  • GPIO 0 পিন #5 (BMC 5)

শেষ VCC পিন সংযুক্ত করুন। আপনি যেভাবে VCC পিন সংযুক্ত করেছেন আপনার ওয়াই-ফাই মডিউল চালু হবে। RPi এবং ESP8266 UART ব্যবহার করে যোগাযোগ করতে পারে কিনা তা পরীক্ষা করার জন্য স্ক্রিন বা মিনিকম ব্যবহার করুন (নোট: আপনাকে প্রথমে স্ক্রিন বা মিনিকম ইনস্টল করতে হতে পারে, কারণ সেগুলি ডিফল্টরূপে রাস্পবিয়ানে ইনস্টল করা বলে মনে হয় না)।

স্ক্রিন রান ব্যবহার করে:

$ sudo স্ক্রিন /dev /serial0 115200

মিনিকম রান ব্যবহার করে:

$ sudo minicom -b 115200 -o -D /dev /serial0

দ্রষ্টব্য: অনেক অনলাইন রিসোর্স ESP8266 /dev /ttyAMA0 এ সংযোগ করার পরামর্শ দেয়, কিন্তু এটি RPi ডকুমেন্টেশন অনুযায়ী RPi 3 বা তার পরে (শূন্য W সহ) কাজ করে না। পরিবর্তে /dev /serial0 অথবা /dev /ttyS0 এর মাধ্যমে সংযোগ করুন।

আপনি স্ক্রিন বা মিনিকম প্রবেশ করার পর, ESP8266 এর সাথে যোগাযোগ করার জন্য AT কমান্ড ব্যবহার করুন। AT লিখুন, তারপর Enter চাপুন এবং তারপর Ctrl+J চাপুন কমান্ড পাঠাতে। আপনি প্রতিক্রিয়ায় ঠিক পেতে হবে। উপলব্ধ AT কমান্ডের তালিকা espressiff.com বা শুধু এখানে পাওয়া যাবে।

ডিভাইসগুলি শারীরিকভাবে সংযুক্ত এবং একে অপরের সাথে কথা বলে আমরা RPi GPIO পিন প্রোগ্রামিং করতে এবং অবশেষে, ESP8266 নিজেই নামতে পারি।

ধাপ 3: সফটওয়্যার সেটআপ (অপারেট করার জন্য পাইথন এবং প্রোগ্রামে Arduino IDE)

অংশ 1. ESP8266 মোড পাল্টানোর জন্য পাইথন ব্যবহার করা

উপরে উল্লিখিত হিসাবে এটি ESP8266 এর অপারেশন মোড পরিবর্তন করতে RPI এর GPIO পিন ব্যবহার করা সুবিধাজনক। আমি দুটি মৌলিক পাইথন কোড লিখেছি যা ESP8266 কে নিয়মিত বা প্রোগ্রামিং মোডে রাখে।

রেগুলার মোড: মাইক্রোকন্ট্রোলারকে নিয়মিত অপারেশন মোডে রাখার জন্য আমাদের কেবল এটিকে পাওয়ার করতে হবে এবং পুল-আপ রেজিস্টরের মাধ্যমে CH_PD কে VCC এর সাথে সংযুক্ত করতে হবে, কিন্তু এমসিইউকে প্রোগ্রামিং থেকে স্বাভাবিক মোডে স্যুইচ করার জন্য আমাদের এটি পুনরায় সেট করতে হবে (রিস্টার্ট ভাবুন)। RPi তে এটি করার জন্য আমরা ESP-01 এ RST পিনের সাথে সংযুক্ত RPi এর GPIO কে সংক্ষিপ্তভাবে টেনে আনতে যাচ্ছি (ডিফল্টরূপে RPi পিন যা আমি পুনরায় সেট করার জন্য ব্যবহার করেছি তা উচ্চতে সেট করা আছে)। কিভাবে সংক্ষেপে? আমার জন্য এটি একটি অনুমানমূলক প্রশ্ন। আপনি বিভিন্ন সময় অন্তর চেষ্টা করতে পারেন, কিন্তু আমি দেখতে পেলাম যে 200 - 500 ms ঠিক কাজ করে। আপনার যদি আরও ভাল ধারণা থাকে তবে মন্তব্যে লিখুন। Reset.py হিসাবে আপনার কোড সংরক্ষণ করুন।

#!/usr/bin/python

GPIO হিসাবে RPi. GPIO আমদানি করুন GPIO.setmode (GPIO. BOARD) # সেট করুন GPIO সনাক্তকরণ ফিজিকাল পিন নম্বর রিসেটপিন = 3 # ESP8266 RST পিন GPIO.setup (resetPin, GPIO. OUT) এর সাথে সংযুক্ত RPi ফিজিক্যাল পিন চিহ্নিত করুন # সেট রিসেট আউটপুট হিসাবে পিন করুন GPIO.output (resetPin, GPIO. LOW) # RST পিন টাইমে ঘুমের ভোল্টেজ। ঘুম (.2) #.2 s GPIO.output এর জন্য অপেক্ষা করুন (resetPin, GPIO. HIGH) # RST পিন GPIO তে ভোল্টেজ পুনরুদ্ধার করুন। cleanup () # RPI- এ পিন রিসেট করুন ভবিষ্যতের রানটাইম সতর্কতা রোধ করতে

  • প্রোগ্রামিং মোড: এমসিইউকে প্রোগ্রামিং মোডে রাখার জন্য আমাদের ESP8266 কে GPIO0 গ্রাউন্ডেড করতে হবে, অথবা বিকল্পভাবে এটি পুনরায় সেট করতে হবে এবং বুট করার সময় GPIO0 গ্রাউন্ড করতে হবে (আবার ভোল্টেজ ড্রপের সঠিক সময়কাল আমার কাছে খুব পরিচিত নয়, তাই কঠোর হবেন না ব্যবহৃত মান দ্বারা পরিচালিত)। কোডটি flash.py হিসাবে সংরক্ষণ করুন অথবা নিচে ডাউনলোড করুন। কর্মের উত্তরাধিকার নিম্নরূপ:

    • RST পিন নিচে টানুন
    • GPIO0 পিন নিচে টানুন
    • RST পিন টানুন
    • GPIO0 পিন টানুন

#!/usr/bin/python

GPIO হিসাবে RPi. GPIO আমদানি করুন GPIO.setmode (GPIO. BOARD) # সেট করুন GPIO সনাক্তকরণ ফিজিকাল পিন নম্বর রিসেট পিন = 3 # ESP8266 RST পিন ফ্ল্যাশপিন = 5 # সংযুক্ত RPi ফিজিকাল পিন সনাক্ত করুন ESP8266 GPIO0 পিন সংযুক্ত GPIO.setup (resetPin, GPIO. OUT) # সেট রিসেট পিন আউটপুট GPIO.setup (flashPin, GPIO. OUT) # সেট ফ্ল্যাশ পিন আউটপুট হিসেবে GPIO.output (resetPin, GPIO. LOW) # ড্রপ ভোল্টেজ RST পিন টাইমে। ঘুম (.2) # এই প্রতীক্ষার জন্য প্রয়োজন হল ফিকাসিয়াল GPIO.output (flashPin, GPIO. LOW) # GPIO0 time এ ড্রপ ভোল্টেজ। ঘুম (.2) # এই অপেক্ষার জন্য প্রয়োজন অনুমান GPIO.output (resetPin, GPIO. HIGH ESP8266 সময় বুট করা শুরু করুন। ঘুম (.5) # ESP8266 GPIO.ouput (flashPin. GPIO. HIGH) বুট করার জন্য অপেক্ষা করুন

টার্মিনাল পরিবর্তনের অনুমতিগুলিতে:

$ sudo chmod +x flash.py

$ sudo chmod +x reset.py

এখন থেকে যখনই আপনাকে টার্মিনালে চালানো প্রোগ্রামিং মোডে প্রবেশ করতে হবে:

$ python /flash.py

কোড আপলোড করার পর স্বাভাবিক অপারেশন মোডে প্রবেশ করুন:

$ python /reset.py

এই মুহুর্তে আপনি ESP8266 ফার্মওয়্যার আপডেট করতে চাইতে পারেন। এটি কীভাবে করা যায় সে সম্পর্কে অনেকগুলি অনলাইন টিউটোরিয়াল রয়েছে, তাই আমি এটি কীভাবে করব সে সম্পর্কে বিশদ বিবরণে যাব না।

পার্ট 2. Arduino IDE সেট আপ করা

যদি আপনার ইতিমধ্যেই Arduino IDE ইনস্টল করা থাকে, আপনি এখনও আপনার IDE ESP8266 এর জন্য প্রস্তুত কিনা তা নিশ্চিত করে বিভাগের মাধ্যমে স্কিম করতে চাইতে পারেন।

Rapberry Pi তে আপনি আপনার ESP8266 প্রোগ্রাম করার জন্য Arduino IDE ব্যবহার করতে পারেন। RPi তে IDE ইনস্টল করার দুটি উপায় রয়েছে:

  • Apt-get install ব্যবহার করে সংগ্রহস্থল থেকে কমান্ড লাইনের মাধ্যমে
  • arduino.cc থেকে ম্যানুয়ালি ডাউনলোড এবং ইনস্টল করুন।

আমি দৃ strongly়ভাবে শেষ পথে যাওয়ার পরামর্শ দিই। সংগ্রহস্থল থেকে IDE সংস্করণটি অপ্রচলিত বলে মনে হচ্ছে এবং ESP8266 প্রোগ্রামিং শুরু করার জন্য আপনাকে অবশ্যই আরো অনেক কিছু করতে হবে। ঝামেলা এড়াতে, Arduino.cc ডাউনলোড পৃষ্ঠায় যান এবং লিনাক্স এআরএম সংস্করণ ডাউনলোড করুন। পরবর্তী অসম্পূর্ণ এবং ইনস্টল করুন: ডাউনলোড করা ফাইলের নাম যদি এই arduino-X. Y. Z-linuxarm.tar.xz এর মত কিছু দেখায়, ডাউনলোড ফোল্ডারে রান করুন:

$ tar -xvf arduino-X. Y. Z-linuxarm.tar.xz

এই ফাইলটি arduino-X. Y. Z ফোল্ডারে কম্প্রেস করা উচিত। চালান:

$ sudo./arduino-X. Y. Z/install.sh

এটি আইডিই ইনস্টল করা উচিত। ইনস্টলেশন সম্পন্ন হওয়ার পরে, IDE শুরু করুন।

  • Arduino IDE থেকে File> Preferences এ যান। পছন্দ উইন্ডোর নীচে "অতিরিক্ত বোর্ড ম্যানেজার ইউআরএল" সন্ধান করুন। Http://arduino.esp8266.com/stable/package_esp8266com_index.json লিখুন “অতিরিক্ত বোর্ড ম্যানেজার ইউআরএল” ফিল্ডে, “ওকে” বাটনে ক্লিক করুন।
  • সরঞ্জাম> বোর্ড: XXX> বোর্ড ম্যানেজারে যান। উইন্ডোতে অনুসন্ধান ব্যবহার করুন অথবা নিচে স্ক্রোল করুন, ESP8266 বোর্ড মেনু নির্বাচন করুন এবং ইনস্টল ক্লিক করুন। ইনস্টলেশন শেষ হওয়ার জন্য অপেক্ষা করুন এবং উইন্ডোটি বন্ধ করুন।
  • আবার সরঞ্জাম> বোর্ড: XXX এ যান এবং ESP8266 বোর্ডগুলি সন্ধান করুন। জেনেরিক ESP8266 মডিউল নির্বাচন করুন।

এখন IDE ESP8266 প্রোগ্রাম করার জন্য প্রস্তুত। আইডিই উইন্ডোতে টাইপ করুন বা পছন্দসই কোড পেস্ট করুন এবং এটি সংরক্ষণ করুন। আপলোড ক্লিক করুন। টার্মিনাল রান flash.py থেকে, এটি আপনার বোর্ডকে প্রোগ্রামিং মোডে রাখা উচিত। আইডিই কম্পাইল এবং আপলোড শেষ করার জন্য কয়েক মিনিট অপেক্ষা করুন (দ্রষ্টব্য: ESP-01 সাধারণত 2 এলইডি দিয়ে আসে, কোডটি আপলোড করার সময় নীল LED ফ্ল্যাশ হবে) এবং reset.py চালান। এখন আপনার ESP-01 বোর্ড দায়িত্ব পালনের জন্য প্রস্তুত।

প্রস্তাবিত: