Სარჩევი:

Flash ESP-01 (ESP8266) USB- სერიული ადაპტერის გარეშე Raspberry Pi გამოყენებით: 3 ნაბიჯი
Flash ESP-01 (ESP8266) USB- სერიული ადაპტერის გარეშე Raspberry Pi გამოყენებით: 3 ნაბიჯი

ვიდეო: Flash ESP-01 (ESP8266) USB- სერიული ადაპტერის გარეშე Raspberry Pi გამოყენებით: 3 ნაბიჯი

ვიდეო: Flash ESP-01 (ESP8266) USB- სერიული ადაპტერის გარეშე Raspberry Pi გამოყენებით: 3 ნაბიჯი
ვიდეო: ESP8266 ESP01 WIFI-UART | LDmicro-Roboremo პროგრამირება 2024, ნოემბერი
Anonim
Flash ESP-01 (ESP8266) USB- სერიული ადაპტერის გარეშე Raspberry Pi გამოყენებით
Flash ESP-01 (ESP8266) USB- სერიული ადაპტერის გარეშე Raspberry Pi გამოყენებით

ეს ინსტრუქცია გიჩვენებთ თუ როგორ უნდა დაიწყოთ თქვენი ESP8266 მიკროკონტროლერის დაპროგრამება ESP-01 WIFI მოდულზე. ყველაფერი რაც თქვენ გჭირდებათ დასაწყებად (ESP-01 მოდულის გარდა, რა თქმა უნდა) არის

  • ჟოლო პი
  • ჯუმბერის მავთულები
  • 10K რეზისტორი

მინდოდა ძველი საწოლის ნათურის გარემონტება თანამედროვე Alexa- ს კონტროლირებადი LED ღამის ნათურაში. არაფერია გასაოცარი მხოლოდ ჩართვა/გამორთვა ხმოვანი ბრძანების გამოყენებით. მე შევუკვეთე უმარტივესი ESP-01 WIFI მოდული, რელე და მავთული LED- ებით ინტერნეტით და სულ დამავიწყდა შეკვეთა USB- სერიული ადაპტერი ESP8266 მიკროკონტროლერის პროგრამისათვის. მაგრამ რადგან მე მქონდა Raspberry Pi და Raspberry Pi და ESP-01 დაფას ჰქონდა UART ქინძისთავები, მივხვდი, რომ შემეძლო ჩემი RPi გამოვიყენო ESP8266 ადაპტერის გარეშე.

ნაბიჯი 1: დააინსტალირეთ Rapberry Pi

დააინსტალირეთ Rapberry Pi
დააინსტალირეთ Rapberry Pi

მე გამოვიყენე Raspberry Pi 3 Model B+, თუმცა ინსტრუქცია უნდა მუშაობდეს სხვა ვერსიებზე, განსაკუთრებით B მოდელზე.

ასე რომ, პირველ რიგში - ჩვენ უნდა გავააქტიუროთ UART Pi- ზე.

გადადით RPi კონფიგურაციის პარამეტრებზე. ტერმინალის ფანჯარაში გაუშვით

$ sudo raspi-config

გადადით 5 ინტერფეისის პარამეტრებზე, შემდეგ შეარჩიეთ P6 სერიული. ამის შემდეგ თქვენ მოგთხოვთ, გსურთ სისტემაში შესასვლელი ჭურვი იყოს ხელმისაწვდომი სერიალზე? შეარჩიეთ, რადგან ჩვენ არ გვსურს UART– ის გამოყენება Pi– ს უსათუოდ გასაშვებად, არამედ სხვა მოწყობილობებთან კომუნიკაციისთვის, შესაბამისად შემდეგ ეკრანზე როდესაც გკითხავთ გსურთ სერიული პორტის აპარატურა იყოს ჩართული? აირჩიეთ გადატვირთეთ Pi მოთხოვნისამებრ. UART უნდა იყოს ჩართული სერიული კომუნიკაციისთვის Raspberry Pi 3. RX და TX პინზე. შენიშვნა: ამის შემდეგ უნდა გამოჩნდეს ახალი ჩანაწერი enable_uart = 1 ბოლოს /boot/config.txt.

ნაბიჯი 2: შეაერთეთ ESP-01 ჟოლოს პითან

შეაერთეთ ESP-01 ჟოლოს პითან
შეაერთეთ ESP-01 ჟოლოს პითან

ახლა ჩვენ მივდივართ ყველაფერს ერთად.

პირველ რიგში, განსაზღვრეთ თქვენი RPi 3.3V სიმძლავრის და GND (სახმელეთო) ქინძისთავები ESP8266 მიკროკონტროლერის, TXD (გადაცემის) და RXD (მიღების) ქინძისთავების დასაკავშირებლად და ორი ზოგადი დანიშნულების ქინძისთავები ESP8266– ის მუშაობისთვის (ქინძისთავები, რომელთა დაყენება შესაძლებელია მაღალი ან მაღალი დაბალი). მოძებნეთ pin მოწყობა pinout.xyz– ზე ან ჩაწერეთ ტერმინალში:

$ pinout

მეორე იდენტიფიცირება აუცილებელი ქინძისთავები ESP-01– ზე. მაგრამ დასაწყისში ჩვენ უნდა გვესმოდეს ESP-01 ქინძისთავები. ინტერნეტში აღმოვაჩინე არაერთი დამხმარე რესურსი, რომელიც დაგეხმარებათ ამ საკითხში. ეს არის ყველაზე მოკლე, ხოლო ეს ბევრად უკეთეს განმარტებას იძლევა. მოკლედ: არის 8 ქინძისთავი, ჩვენ დაგვჭირდება 7 მათგანი, კერძოდ VCC დენის და GND (ადგილზე) ქინძისთავები ენერგიისთვის, TXD და RXD ქინძისთავები კომუნიკაციისთვის და RST (გადატვირთვა), CH_PD (ჩიპის გამორთვა, ზოგჯერ ლეიბლით CH_EN ან ჩიპის ჩართვა) და GPIO0 მოდულის მუშაობისთვის. ჩვეულებრივ ESP8266 მუშაობს ჩვეულებრივ რეჟიმში, მაგრამ ESP8266 კოდის ატვირთვისას ის მიაქცევს ყურადღებას ფლეშ რეჟიმში. რეგულარული ან ნორმალური მუშაობის რეჟიმისთვის მოდული უნდა იყოს დაკავშირებული დენთან (ცხადია), მაგრამ ასევე CH_PD პინი უნდა იყოს დაკავშირებული VCC– სთან ერთად 10K (ეს მნიშვნელობა განსხვავდება სხვადასხვა რესურსებში, აღმოვაჩინე 3K– მდე ღირებულებები) რეზისტორი ჩატვირთვისას მეორე მხრივ, მოციმციმე ან პროგრამირების რეჟიმში შესასვლელად საჭიროა ჩატვირთვისას GPIO0 პინის დამიწება. GPIO0– ით შეუზღუდავი დენის ნაკადის თავიდან ასაცილებლად დამიწებისას რეკომენდებულია GPIO0 მიწასთან დაკავშირება დაბალი წინააღმდეგობის მქონე წინააღმდეგობის საშუალებით 300Ω - 470Ω (ამაზე მეტი აქ). RST pin როგორც სახელი გვთავაზობს MCU– ს გადატვირთვას (ან გადატვირთვას). ნორმალური მუშაობის დროს ის შეიძლება დაუკავშირდეს VCC– ს 10K გამწევ რეზისტორის საშუალებით, მაგრამ უნდა იყოს დასაბუთებული მიკროკონტროლის გადატვირთვისთვის. მიუხედავად იმისა, რომ ყოველთვის შესაძლებელია გამოიყენოთ ფიზიკური ღილაკები RST და GPIO0 ქინძისთავების დასაყენებლად (ან თუნდაც ხელით შეუერთდეთ მავთულს ღილაკის სიმულაციისთვის), ბევრად უფრო სასიამოვნო გამოცდილებაა ჟოლოს პი ქინძისთავების გამოყენება მოდულის RST და GPIO0 ძაბვის მაღალი და დაბალი დასაყენებლად. ქინძისთავები ასევე არ არის საჭირო 10K და 470Ω რეზისტენტებში.

ახლა ვიცით ESP-01 ქინძისთავების თავისებურებების შესახებ, ჩვენ შეგვიძლია დავიწყოთ ყველაფრის ერთმანეთთან დაკავშირება. თქვენ შეგიძლიათ გამოიყენოთ შემდეგი ცხრილი, როგორც მითითება ზემოთ მოცემულ ნახატთან ერთად:

ESP-01 ჟოლო პი

  • VCC (3.3V) pin #1 (3.3V)
  • GND pin #6 (GND)
  • TXD pin #10 (RXD / BCM 15)
  • RXD პინი #8 (TXD / BCM 14)
  • CH_PD pin #1 (3.3V)
  • RST pin #3 (BCM 2)
  • GPIO 0 პინი #5 (BMC 5)

შეაერთეთ VCC პინი ბოლო. თქვენი Wi-Fi მოდულის VCC პინთან დაკავშირების მაგალითი ჩართული იქნება. გამოიყენეთ ეკრანი ან მინიკომი, რათა შეამოწმოთ შეუძლიათ თუ არა RPi და ESP8266 კომუნიკაცია UART– ით (შენიშვნა: შეიძლება დაგჭირდეთ ეკრანის ან მინიკომის დაყენება, რადგან ისინი, როგორც ჩანს, არ არის დაინსტალირებული Raspbian– ზე).

ეკრანის გაშვების გამოყენებით:

$ sudo screen /dev /serial0 115200

მინიკომის გაშვების გამოყენებით:

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

შენიშვნა: ბევრი ონლაინ რესურსი გვთავაზობს ESP8266– თან დაკავშირებას /dev /ttyAMA0– ზე, მაგრამ ეს არ მუშაობს RPi 3 –ზე ან გვიან (ნულოვანი W- ს ჩათვლით) RPi დოკუმენტაციის მიხედვით. ამის ნაცვლად დაკავშირება /dev /serial0 ან /dev /ttyS0 საშუალებით.

ეკრანის ან მინიკომის შესვლის შემდეგ გამოიყენეთ AT ბრძანებები ESP8266– თან დასაკავშირებლად. ჩაწერეთ AT, შემდეგ დააჭირეთ Enter და შემდეგ დააჭირეთ Ctrl+J ბრძანების გასაგზავნად. თქვენ უნდა მიიღოთ OK საპასუხოდ. ხელმისაწვდომი AT ბრძანებების ჩამონათვალი შეგიძლიათ იხილოთ espressiff.com– ზე ან უბრალოდ აქ.

მოწყობილობები ფიზიკურად არის დაკავშირებული და ესაუბრებიან ერთმანეთს და შეგვიძლია დავიწყოთ პროგრამირება RPi GPIO ქინძისთავებით და ბოლოს, თავად ESP8266.

ნაბიჯი 3: პროგრამული უზრუნველყოფის დაყენება (პითონი მუშაობისთვის და Arduino IDE პროგრამისთვის)

ნაწილი 1. პითონის გამოყენება ESP8266 რეჟიმების გადასატანად

როგორც ზემოთ აღვნიშნეთ, მოსახერხებელია გამოიყენოთ RPI– ს GPIO ქინძისთავები ESP8266– ის მუშაობის რეჟიმების გადასატანად. მე დავწერე ორი ძირითადი პითონის კოდი, რომელიც ESP8266- ს აყენებს ჩვეულებრივ ან პროგრამირების რეჟიმში.

რეგულარული რეჟიმი: მიკროკონტროლის რეგულარულ რეჟიმში დასაყენებლად საჭიროა მხოლოდ მისი ჩართვა და დაკავშირება CH_PD გამწევ რეზისტორის საშუალებით VCC– სთან, მაგრამ MCU პროგრამირებიდან ნორმალურ რეჟიმში გადასაყვანად საჭიროა მისი გადატვირთვა (იფიქრეთ გადატვირთვა). ამის გაკეთება RPi– ზე ჩვენ ვაპირებთ მოკლედ ჩამოვაშოროთ RSP– ის GPIO, რომელიც დაკავშირებულია RST pin– ზე ESP-01– ზე (სტანდარტულად RPi pin, რომელიც მე ვიყენებდი გადასაყენებლად, არის HIGH). რამდენად მოკლედ? ჩემთვის ეს არის სპეკულაციური კითხვა. შეგიძლიათ სცადოთ დროის სხვადასხვა შუალედი, მაგრამ აღმოვაჩინე, რომ 200 - 500 ms კარგად მუშაობს. დაწერეთ კომენტარებში, თუ უკეთესი იდეა გაქვთ. შეინახეთ თქვენი კოდი გადატვირთვის სახით. Py

#!/usr/bin/პითონი

იმპორტი RPi. GPIO როგორც GPIO იმპორტი დრო GPIO.setmode (GPIO. BOARD) # ადგენს GPIO იდენტიფიკაციას ფიზიკური პინ ნომრებით resetPin = 3 # იდენტიფიცირება RPi ფიზიკურ პინთან დაკავშირებული ESP8266 RST pin GPIO.setup (resetPin, GPIO. OUT) # კომპლექტი გადატვირთვა pin როგორც გამომავალი GPIO.output (resetPin, GPIO. LOW) # ვარდნა ძაბვა RST pin time.sleep (.2) # დაელოდეთ.2 s GPIO.output (resetPin, GPIO. HIGH) # ძაბვის აღდგენა RST pin GPIO– ზე. cleanup () # გადატვირთეთ ქინძისთავები RPI– ზე, რათა თავიდან აიცილოთ სამომავლო გაფრთხილებები

  • პროგრამირების რეჟიმი: MCU პროგრამირების რეჟიმში გადასაყვანად ჩვენ გვჭირდება ESP8266- ის ჩართვა GPIO0 დასაბუთებული, ან ალტერნატიულად გადატვირთვა და დაყენება GPIO0 ჩატვირთვისას (ისევ ძაბვის ვარდნის ზუსტი ხანგრძლივობა ჩემთვის ბოლომდე ცნობილი არ არის, ასე რომ მკაცრად ნუ იქნებით ხელმძღვანელობს გამოყენებული ღირებულებებით). შეინახეთ კოდი როგორც flash.py ან გადმოწერეთ ქვემოთ. ქმედებების თანმიმდევრობა შემდეგია:

    • ჩამოწიეთ RST პინი
    • ჩამოწიეთ GPIO0 პინი
    • ამოიღეთ RST პინი
    • ამოიღეთ GPIO0 პინი

#!/usr/bin/პითონი

იმპორტი RPi. GPIO როგორც GPIO იმპორტი დრო GPIO.setmode (GPIO. BOARD) # ადგენს GPIO იდენტიფიკაციას ფიზიკური პინ ნომრებით resetPin = 3 # ამოიცნობს RPi ფიზიკურ პინს, რომელიც დაკავშირებულია ESP8266 RST pin flashPin = 5 # იდენტიფიცირება EP8266 GPIO0 პინთან დაკავშირებულ RPi ფიზიკურ პინს GPIO.setup (resetPin, GPIO. OUT) # დააყენეთ გადატვირთვის pin როგორც გამომავალი GPIO.setup (flashPin, GPIO. OUT) # დააყენეთ ფლეშ pin როგორც გამომავალი GPIO.output (resetPin, GPIO. LOW) # ვარდნა ძაბვა RST pin დროზე. ძილი (.2) # ამ ლოდინის საჭიროება არის სპეკულაციური GPIO.output (flashPin, GPIO. LOW) # ვარდნა ძაბვა GPIO0 time.sleep (.2) # ამ ლოდინის საჭიროება არის სპეკულაციური GPIO.output (resetPin, GPIO. HIGH) # დაწყება ESP8266 ჩატვირთვა time.sleep (.5) # დაელოდეთ ESP8266 ჩატვირთვის GPIO.ouput (flashPin. GPIO. HIGH) # ძაბვის აღდგენას GPIO pinGPIO.cleanup () # გადატვირთეთ ქინძისთავები RPI– ზე მომავალი runtime გაფრთხილების თავიდან ასაცილებლად

ტერმინალური ცვლილებების ნებართვებში:

$ sudo chmod +x flash.py

$ sudo chmod +x გადატვირთვა. py

ამიერიდან, როდესაც დაგჭირდებათ პროგრამის რეჟიმში შესვლა ტერმინალში:

$ python /flash.py

ნორმალური ატვირთვის შემდეგ კოდის ატვირთვის შემდეგ გაუშვით:

$ python /reset.py

ამ დროს თქვენ შეიძლება დაგჭირდეთ ESP8266 პროგრამული უზრუნველყოფის განახლება. არსებობს მრავალი ონლაინ გაკვეთილი, თუ როგორ უნდა გავაკეთოთ ეს, ასე რომ მე არ შევალ დეტალებში, თუ როგორ უნდა გავაკეთო ეს.

ნაწილი 2. Arduino IDE- ს დაყენება

თუ თქვენ უკვე გაქვთ Arduino IDE დაინსტალირებული, თქვენ მაინც გსურთ გაეცნოთ განყოფილებას და დარწმუნდეთ, რომ თქვენი IDE მზად არის ESP8266– ისთვის.

Rapberry Pi– ზე შეგიძლიათ გამოიყენოთ Arduino IDE თქვენი ESP8266 პროგრამირებისთვის. RPi– ზე IDE– ს დაყენების ორი გზა არსებობს:

  • საცავიდან ბრძანების ხაზის საშუალებით apt-get install
  • ჩამოტვირთეთ და დააინსტალირეთ ხელით arduino.cc– დან.

მე მტკიცედ გირჩევთ ამ უკანასკნელ გზას. საცავებიდან IDE ვერსია, როგორც ჩანს, მოძველებულია და თქვენ, რა თქმა უნდა, მეტი უნდა გააკეთოთ, სანამ მზად იქნებით ESP8266 პროგრამირების დასაწყებად. პრობლემის თავიდან ასაცილებლად, გადადით Arduino.cc ჩამოტვირთვის გვერდზე და ჩამოტვირთეთ Linux ARM ვერსია. შემდეგი არაკომპრესირება და ინსტალაცია: თუ გადმოწერილი ფაილის სახელი ასე გამოიყურება 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. ინსტალაციის დასრულების შემდეგ, დაიწყეთ IDE.

  • Arduino IDE– დან გადადით ფაილზე> პარამეტრები. მოძებნეთ "დაფის მენეჯერის დამატებითი მისამართები" პარამეტრების ფანჯრის ბოლოში. შეიყვანეთ https://arduino.esp8266.com/stable/package_esp8266com_index.json "დამატებითი დაფის მენეჯერის მისამართები" ველში, დააჭირეთ ღილაკს "OK".
  • გადადით ინსტრუმენტებზე> დაფაზე: XXX> დაფების მენეჯერი. ფანჯარაში გამოიყენეთ ძებნა ან გადაახვიეთ ქვემოთ, აირჩიეთ ESP8266 დაფის მენიუ და დააწკაპუნეთ ინსტალაციაზე. დაელოდეთ ინსტალაციის დასრულებას და ფანჯრის დახურვას.
  • კვლავ გადადით ინსტრუმენტებზე> დაფაზე: XXX და მოძებნეთ ESP8266 დაფები. აირჩიეთ ზოგადი ESP8266 მოდული.

ახლა IDE მზადაა ESP8266 პროგრამირებისთვის. ჩაწერეთ ან ჩასვით სასურველი კოდი IDE ფანჯარაში და შეინახეთ. დააწკაპუნეთ ატვირთვაზე. საწყისი ტერმინალის გაშვება flash.py, ამან უნდა დააყენოს თქვენი დაფა პროგრამირების რეჟიმში. დაელოდეთ რამდენიმე წუთს IDE- სთვის შედგენისა და ატვირთვის დასასრულებლად (შენიშვნა: ESP-01 ჩვეულებრივ მოყვება 2 LED- ი, ლურჯი LED აანთებს კოდის ატვირთვისას) და გაუშვით reset.py. ახლა თქვენი ESP-01 დაფა მზად არის შეასრულოს მოვალეობები.

გირჩევთ: