Με μονάδα Wi-Fi και Bluetooth.

Στο Arduino UnoΠαρέχεται WiFi για τα πάντα βολική λειτουργίαμε μικροελεγκτή: 14 ψηφιακές εισόδους/εξόδους (6 από αυτές μπορούν να χρησιμοποιηθούν ως έξοδοι PWM), 6 αναλογικές είσοδοι, υποδοχή USB, υποδοχή τροφοδοσίας, υποδοχή προγραμματισμού εντός κυκλώματος (ICSP) και κουμπί επαναφοράς μικροελεγκτή.

Το αποκορύφωμα της πλακέτας είναι η μονάδα WiFi ESP8266, η οποία επιτρέπει στο Arduino να επικοινωνεί με άλλες μονάδες μέσω ασύρματα δίκτυαΠρότυπα 802,11 b/g/n.

Το ESP8266 σάς επιτρέπει να αναβοσβήσετε μια πλακέτα Arduino χωρίς να χρησιμοποιήσετε καλώδιο USB σε λειτουργία OTA (Firmware Over The Air).

Ανασκόπηση βίντεο του πίνακα

Σύνδεση και ρύθμιση

Για να ξεκινήσετε με Πλακέτα Arduino Uno WiFi στο χειρουργείο Σύστημα Windows λήψη και εγκατάστασηΟλοκληρωμένο περιβάλλον ανάπτυξης Arduino - Arduino IDE.

Κάτι πήγε στραβά?

Διαμόρφωση της μονάδας WiFi

Το υλικολογισμικό Arduino μέσω WiFi

Το Arduino Uno WiFi έχει ένα άλλο ωραίο μπόνους στο απόθεμά του - τη δυνατότητα να ανεβάζετε σκίτσα χωρίς τη χρήση καλωδίου USB σε λειτουργία OTA (Firmware Over The Air). Ας ρίξουμε μια πιο προσεκτική ματιά στο πώς να το κάνουμε αυτό.


Για να το κάνετε αυτό, μπείτε στο μενού: Εργαλεία Λιμάνι και επιλέξτε τη σωστή θύρα.

Εφόσον αναβοσβήνουμε το Arduino μέσω WiFi, η πλακέτα θα οριστεί ως απομακρυσμένη συσκευήμε διεύθυνση IP

Το περιβάλλον έχει διαμορφωθεί, η πλακέτα είναι συνδεδεμένη. Μπορείτε να προχωρήσετε στη λήψη του σκίτσου. Το Arduino IDE περιέχει μια μεγάλη λίστα έτοιμα παραδείγματα, στο οποίο μπορείτε να δείτε τη λύση οποιουδήποτε προβλήματος. Ας επιλέξουμε ανάμεσα στα παραδείγματα το αναβοσβήσιμο του LED - το σκίτσο "Blink".
Φλακάρετε τον πίνακα κάνοντας κλικ στο εικονίδιο λήψης προγράμματος.
Μετά τη φόρτωση, το LED θα αρχίσει να αναβοσβήνει μία φορά το δευτερόλεπτο. Αυτό σημαίνει ότι όλα λειτούργησαν.

Τώρα μπορείτε να πάτε στο περιπτώσεις χρήσης .

Παραδείγματα χρήσης

διακομιστή ιστού

Ας δημιουργήσουμε έναν απλό διακομιστή web που θα εμφανίζει μια σελίδα με τις τρέχουσες τιμές των αναλογικών εισόδων.

web-server.ino /* Ένα παράδειγμα ενός απλού διακομιστή web που εκτελείται σε ένα Arduino Uno WiFi. Ο διακομιστής εμφανίζει τις τιμές των αναλογικών εισόδων και ενημερώνει τις πληροφορίες κάθε δύο δευτερόλεπτα. Πρόσβαση στον διακομιστή στη διεύθυνση http:// /arduino/webserver/ Σημειώστε ότι αυτό το παράδειγμα λειτουργεί μόνο με την έκδοση Arduino Uno WiFi Developer Edition. */#περιλαμβάνω #περιλαμβάνω void setup() ( Wifi.begin () ; Wifi.println ("Ο διακομιστής Ιστού είναι ανοιχτός" ) ; // Εμφάνιση μηνύματος σχετικά με την έναρξη του διακομιστή στην κονσόλα wifi) void loop() ( while (Wifi.available () ) ( process(Wifi) ; ) delay(50 ) ; ) void process(WifiData client) ( String command = client.readStringUntil ("/" ) ; if (command = = "webserver" ) ( WebServer(client) ; ) ) void WebServer(WifiData client) (client.println ("HTTP/1.1 200 OK" ) ; client.println ("Content-Type: text/html" ) ; client. println ("Σύνδεση: κλείσιμο" ) ;client.println ("Ανανέωση: 2") ; // Τίτλος που ορίζει την περίοδο ανανέωσης σελίδας σε δευτερόλεπτα client.println(); client.println(" " ) ; // Σχηματίστε τη σελίδα client.println( " UNO WIFI Webserver " ) ; client.print( "

Ένα παράδειγμα εξόδου τιμών από αναλογικές ακίδες

"
) ; client.print("
    " ); για (int analogChannel = 0; analogChannel< 4 ; analogChannel++ ) { int sensorReading = analogRead(analogChannel) ; client.print ("
  • σε αναλογική είσοδο ") ; client.print(analogChannel); client.print(": " ) ; client.print(sensorReading) ; client.print("
  • " ) ; ) client.println("
" ); client.print(DELIMITER) ; // Μην ξεχάσετε να κλείσετε τη σύνδεση! }

Στοιχεία πίνακα

Μικροελεγκτής ATmega328P

Η καρδιά της πλατφόρμας Arduino Uno WiFi είναι ο μικροελεγκτής AVR 8-bit, ο ATmega328P.

Μικροελεγκτής ATmega16U2

Ο μικροελεγκτής ATmega16U2 συνδέει τον μικροελεγκτή ATmega328P στη θύρα USB του υπολογιστή. Όταν συνδέεται σε υπολογιστή, το Arduino Uno WiFi ορίζεται ως εικονική θύρα COM. Το υλικολογισμικό 16U2 χρησιμοποιεί τυπικά προγράμματα οδήγησης USB-COM, επομένως δεν χρειάζεται να εγκατασταθούν εξωτερικά προγράμματα οδήγησης.

Πινέζες τροφοδοσίας

    VIN:Τάση από εξωτερικό τροφοδοτικό (δεν σχετίζεται με 5V από USB ή άλλη σταθεροποιημένη τάση). Μέσω αυτής της εξόδου, μπορείτε τόσο να τροφοδοτήσετε εξωτερική ισχύ όσο και να καταναλώσετε ρεύμα εάν είναι συνδεδεμένος ένας εξωτερικός προσαρμογέας στη συσκευή.

    5V:Η έξοδος λαμβάνει τάση 5 V από τον σταθεροποιητή πλακέτας. Αυτός ο σταθεροποιητής παρέχει ισχύ στον μικροελεγκτή ATmega328. Δεν συνιστάται η τροφοδοσία της συσκευής μέσω της εξόδου 5V - σε αυτήν την περίπτωση, δεν χρησιμοποιείται σταθεροποιητής τάσης, γεγονός που μπορεί να οδηγήσει σε αστοχία της πλακέτας.

    3,3V: 3,3V από ρυθμιστή πλακέτας. Το μέγιστο ρεύμα εξόδου είναι 1 Α.

    GND:Βασικά συμπεράσματα.

    ΙΟΡΕΦ:Ο πείρος παρέχει στις πλακέτες επέκτασης πληροφορίες σχετικά με την τάση λειτουργίας του μικροελεγκτή. Ανάλογα με την τάση, η πλακέτα επέκτασης μπορεί να μεταβεί στο κατάλληλο τροφοδοτικό ή να χρησιμοποιήσει μετατροπείς στάθμης, που θα της επιτρέψουν να λειτουργήσει τόσο με συσκευές 5V όσο και με 3,3V.

Θύρες I/O

    Ψηφιακές είσοδοι/έξοδοι:καρφίτσες 0 - 13
    Το λογικό επίπεδο του ενός είναι 5 V, το μηδέν είναι 0 V. Το μέγιστο ρεύμα εξόδου είναι 40 mA. Οι αντιστάσεις έλξης συνδέονται με τις ακίδες, οι οποίες είναι απενεργοποιημένες από προεπιλογή, αλλά μπορούν να ενεργοποιηθούν από το λογισμικό.

    PWM:καρφίτσες 3, 5, 6, 9, 10 και 11
    Σας επιτρέπει να εξάγετε αναλογικές τιμές 8-bit ως σήμα PWM.

    ADC:καρφίτσες A0 - A5
    6 αναλογικές είσοδοι, καθεμία από τις οποίες μπορεί να αντιπροσωπεύει την αναλογική τάση ως αριθμό 10-bit (1024 τιμές). Το βάθος bit του ADC είναι 10 bit.

    TWI/I²C:Καρφίτσες SDA και SCL
    Για επικοινωνία με περιφερειακά χρησιμοποιώντας σύγχρονο πρωτόκολλο, μέσω 2 καλωδίων. Για να εργαστείτε - χρησιμοποιήστε τη βιβλιοθήκη Wire.

    SPI:καρφίτσες 10(SS) , 11(MOSI) , 12(MISO) , 13(SCK) .
    Μέσω αυτών των ακίδων, η επικοινωνία πραγματοποιείται μέσω της διεπαφής SPI. Για εργασία - χρησιμοποιήστε τη βιβλιοθήκη SPI.

    UART:καρφίτσες 0(RX) και 1(TX)
    Αυτές οι ακίδες συνδέονται με τις αντίστοιχες ακίδες του μικροελεγκτή ATmega16U2, ο οποίος λειτουργεί ως μετατροπέας USB-UART. Χρησιμοποιείται για την επικοινωνία της πλακέτας Arduino με υπολογιστή ή άλλες συσκευές μέσω της κλάσης Serial.

Ένδειξη LED

Υποδοχή USB Type-B

Η υποδοχή USB Type-B έχει σχεδιαστεί για να αναβοσβήνει την πλατφόρμα Arduino Uno WiFi χρησιμοποιώντας έναν υπολογιστή.

Υποδοχή για εξωτερική παροχή ρεύματος

Συνδετήρας για σύνδεση εξωτερικό τροφοδοτικό 7 V έως 12 V.

Ρυθμιστής τάσης 5V

Όταν η πλακέτα είναι συνδεδεμένη σε εξωτερικό τροφοδοτικό, η τάση διέρχεται από τον ρυθμιστή MPM3610. Η έξοδος σταθεροποιητή συνδέεται με τον πείρο 5V. Το μέγιστο ρεύμα εξόδου είναι 1Α.

Ρυθμιστής τάσης 3,3 V

Σταθεροποιητής MPM3810GQB-33 με έξοδο 3,3 volt. Παρέχει ρεύμα στη μονάδα WiFi ESP8266 και εξέρχεται στον ακροδέκτη 3,3 V. Το μέγιστο ρεύμα εξόδου είναι 1Α.

Υποδοχή ICSP για ATmega328P

Η υποδοχή ICSP προορίζεται για προγραμματισμό εντός κυκλώματος του μικροελεγκτή ATmega328P. Χρησιμοποιώντας τη βιβλιοθήκη SPI, αυτές οι ακίδες μπορούν να επικοινωνούν με πλακέτες επέκτασης μέσω της διεπαφής SPI. Οι γραμμές SPI δρομολογούνται σε μια υποδοχή 6 ακίδων και αντιγράφονται επίσης στις ψηφιακές ακίδες 10(SS), 11(MOSI), 12(MISO) και 13(SCK).

Υποδοχή ICSP για ATmega16U2

Η υποδοχή ICSP προορίζεται για προγραμματισμό εντός κυκλώματος του μικροελεγκτή ATmega16U2.

Έτσι θα ελέγξουμε δύο αναστρέψιμους (περιστροφής και προς τις δύο κατευθύνσεις) κινητήρες: τον κύριο και το σύστημα διεύθυνσης. Θα τα τροφοδοτήσουμε από μια μπαταρία 3,7 V, αλλά μπορείτε να τροφοδοτήσετε κατ 'αρχήν έως και 12 V εάν συμφωνείτε για την τροφοδοσία ρεύματος του ελεγκτή ή το οργανώνετε με ξεχωριστή μπαταρία.

Στο τμήμα τροφοδοσίας, χρησιμοποιούμε το απλούστερο πρόγραμμα οδήγησης σε μικρογραφία βηματικός κινητήρας l9110s ή μπορείτε να χρησιμοποιήσετε τη διάταξη στο L293 \ 8 ή οποιοδήποτε εξίσου ισχυρό μπορείτε να βρείτε. Γενικά, ζωγράφισα τα πάντα στην εικόνα.

Μπορείτε να αγοράσετε εξαρτήματα για το έργο στο aliexpress:

Ο ελεγκτής WiFi χρησιμοποίησε το αγαπημένο μου NodeMCU 0,9 ESP8266, αλλά μπορείτε επίσης να χρησιμοποιήσετε μικρότερο μέγεθος WeMos D1 mini.

Η μπαταρία μπορεί να φορτιστεί μέσω micro USB, μετά την οποία τροφοδοτεί απευθείας το πρόγραμμα οδήγησης του κινητήρα και τον ελεγκτή WiFi μέσω μετατροπέας ενίσχυσης σε 5 V.

Κωδικός προγράμματος:

#περιλαμβάνω
const char* ssid = "το όνομα του δικτύου σας wifi";
const char* password = "ο κωδικός πρόσβασης του δικτύου σας";
int up = 2; //αριθμοί διακριτών εξόδων
int down = 14;
int αριστερά = 4;
int right = 12;
// Δημιουργήστε μια παρουσία του διακομιστή
// καθορίστε τη θύρα για ακρόαση ως όρισμα
Διακομιστής WiFiServer(80);
void setup()(
Serial.begin(9600);
καθυστέρηση(10);
//προετοιμασία εξόδων
pinMode(επάνω, OUTPUT);
digitalWrite(πάνω, 0);
pinMode(κάτω, OUTPUT);
digitalWrite(down, 0);
pinMode(αριστερά, OUTPUT);
digitalWrite(αριστερά, 0);
pinMode(δεξιά, OUTPUT);
digitalWrite(δεξιά, 0);

// Σύνδεση σε δίκτυο WiFi
Serial.println();
Serial.println();
Serial.print("Σύνδεση με ");
Σειριακή εκτύπωσηln(ssid);

wifi.begin(ssid, κωδικός πρόσβασης);

Ενώ (WiFi.status() != WL_CONNECTED) (
καθυστέρηση (500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi συνδεδεμένο");

//Εκκίνηση του διακομιστή
server.begin();
Serial.println("Ο διακομιστής ξεκίνησε");
//εμφάνιση της διεύθυνσης IP στην οθόνη θύρας
Serial.println(WiFi.localIP());
}
void loop() (
// ελέγξτε εάν ο πελάτης είναι συνδεδεμένος
WiFiClient client = server.available();
εάν (! πελάτης) (
ΕΠΙΣΤΡΟΦΗ;
}

//Περιμένουμε μέχρι ο πελάτης να στείλει κάποια δεδομένα
Serial.println("νέος πελάτης");
while(!client.available())(
καθυστέρηση(1);
}

//Διαβάστε την πρώτη γραμμή του ερωτήματος
String req = client.readStringUntil("\r");
Σειριακή εκτύπωσηln(req);
client.flush();

//επεξεργασία εντολών
if (req.indexOf("/gpio/up") != -1)(
digitalWrite(up, 1);
digitalWrite(down, 0);
καθυστέρηση (1000);
digitalWrite(πάνω, 0);
digitalWrite(down, 0);
}
αλλιώς εάν (req.indexOf("/gpio/down") != -1)(
digitalWrite(πάνω, 0);
digitalWrite(down, 1);
καθυστέρηση (1000);
digitalWrite(πάνω, 0);
digitalWrite(down, 0);
}
αλλιώς εάν (req.indexOf("/gpio/left") != -1)(
digitalWrite(up, 1);
digitalWrite(down, 0);
digitalWrite(αριστερά, 1);
digitalWrite(δεξιά, 0);
καθυστέρηση (1000);
digitalWrite(πάνω, 0);
digitalWrite(down, 0);
digitalWrite(αριστερά, 0);
digitalWrite(δεξιά, 0);
}
αλλιώς εάν (req.indexOf("/gpio/right") != -1)(
digitalWrite(up, 1);
digitalWrite(down, 0);
digitalWrite(αριστερά, 0);
digitalWrite(δεξιά, 1);
καθυστέρηση (1000);
digitalWrite(πάνω, 0);
digitalWrite(down, 0);
digitalWrite(αριστερά, 0);
digitalWrite(δεξιά, 0);
}
αλλού(
Serial.println("μη έγκυρο αίτημα");
}

Client.flush();
// προετοιμασία για απάντηση
Συμβολοσειρά s = "HTTP/1.1 200 OK\r\nΤύπος περιεχομένου: κείμενο/html\r\n\r\n\r\n \r\n";

S+="


ΠΑΝΩ.
";
s+="
ΑΡΙΣΤΕΡΑ     ";
s += "ΣΩΣΤΑ
";
s+="
ΚΑΤΩ";
s+="
\n";
// Στείλτε την απάντηση στον πελάτη
client.print(s);
καθυστέρηση(1);
Serial.println("Ο πελάτης αποσυνδέθηκε");
) Το πρόγραμμα είναι γραμμένο σε Arduino IDE. Πώς να ρυθμίσετε το Arduino IDE ώστε να λειτουργεί με τον ελεγκτή NodeMCU 0.9 ESP8266κοιτάξτε τον σύνδεσμο. Μετά τη λήψη του προγράμματος στον ελεγκτή, η οθόνη θύρας μπορεί να διαβάσει τη διεύθυνση IP που θα λάβει η πλακέτα μετά τη σύνδεση στο δρομολογητή WiFi. Σε ένα πρόγραμμα περιήγησης υπολογιστή, πρέπει γραμμή διεύθυνσηςεισάγετε αυτήν τη διεύθυνση και μεταβείτε στη σελίδα που θα δημιουργήσει το πρόγραμμα ελεγκτή. Θα μοιάζει με αυτό:

ΚΑΤΩ

Όταν κάνετε κλικ στον σύνδεσμο UP, το αυτοκίνητο θα κινηθεί προς τα εμπρός για 1 δευτερόλεπτο και θα σταματήσει. Όταν πατήσετε DOWN, το αυτοκίνητο θα πάει πίσω για 1 δευτερόλεπτο. ΑΡΙΣΤΕΡΑ - ο κινητήρας στροφής θα στρίψει τους τροχούς προς τα αριστερά και το αυτοκίνητο θα κινηθεί 1 δευτερόλεπτο προς τα αριστερά. Το ίδιο συμβαίνει και στα δεξιά όταν πατάτε ΔΕΞΙΑ.

Όλο αυτό το σύστημα θα λειτουργεί μόνο με ένα διαμορφωμένο σημείο πρόσβασης WiFi (δρομολογητής WiFi), αλλά στο μέλλον με ενδιαφέρει να παίζω με ελεγκτής NodeMCU 0.9 ESP8266, το οποίο το ίδιο θα οργανώσει ένα σημείο πρόσβασης και θα λειτουργήσει ως διακομιστής WEB, δηλαδή όταν αποκτήσετε πρόσβαση στην IP του από ένα πρόγραμμα περιήγησης, θα δούμε μια ιστοσελίδα με στοιχεία ελέγχου. Είναι επίσης ενδιαφέρον να οργανωθεί η μεταφορά δεδομένων από έναν τέτοιο ελεγκτή σε άλλο μέσω του αυτόνομου δικτύου WiFi τους.

Μέρος 1: Προετοιμασία του ESP8266

Γιατί αυτό το άρθρο; Υπάρχει ήδη μια σειρά άρθρων στο Habré σχετικά με τη χρήση του ESP σε διαφορετικές διαμορφώσεις, αλλά για κάποιο λόγο χωρίς λεπτομέρειες σχετικά με το πώς ακριβώς συνδέονται, αναβοσβήνουν και προγραμματίζονται τα πάντα. Όπως «πήρα το ESP, δύο μπαταρίες AA, DHT22, το πέταξα στο κουτί, τίναξα το ρολόι και το θερμόμετρο είναι έτοιμο!». Ως αποτέλεσμα, αποδεικνύεται περίεργο: όσοι εργάζονται ήδη με το ESP δεν βλέπουν τίποτα ασυνήθιστο σε αυτό που έχουν κάνει και όσοι θέλουν να μάθουν δεν καταλαβαίνουν από πού να ξεκινήσουν. Ως εκ τούτου, αποφάσισα να γράψω ένα λεπτομερές άρθρο σχετικά με το πώς συνδέεται και αναβοσβήνει το ESP, πώς να το συνδέσω με το Arduino και τον έξω κόσμο και ποια προβλήματα συνάντησα στην πορεία. Παρέχω συνδέσμους στο Aliexpress μόνο για να παρουσιάσω τη σειρά των τιμών και εμφάνισησυστατικά.

Έτσι, είχα δύο μικροελεγκτές, επτά διαφορετικούς αισθητήρες, πέντε τροφοδοτικά, έναν αισθητήρα θερμοκρασίας DHT22 και μια ολόκληρη σειρά από καλώδια όλων των ειδών και χρωμάτων, καθώς και αμέτρητες αντιστάσεις, πυκνωτές και διόδους. Όχι ότι όλα αυτά είναι απαραίτητα για ένα θερμόμετρο, αλλά μόλις μπεις στη μικροηλεκτρονική, γίνεται δύσκολο να το σταματήσεις.


Φαγητό

Το ESP8266 απαιτεί τάση 3,3 V και ρεύμα τουλάχιστον 300 mA. Δυστυχώς, το Arduino Uno δεν είναι σε θέση να παρέχει τέτοιο ρεύμα, όπως δεν μπορούν να το παρέχουν οι προσαρμογείς USB-UART (προγραμματιστές) όπως ο FT232RL - το όριο τους είναι περίπου 50 mA. Αυτό σημαίνει ότι θα πρέπει να οργανώσετε ένα ξεχωριστό γεύμα. Και θα ήταν καλύτερα το Arduino να δούλευε και από 3,3V, για να αποφύγουμε προβλήματα όπως «Εφαρμόσα σήμα πέντε βολτ στον ακροδέκτη RX της μονάδας ESP, γιατί μυρίζει σαν καμένο πλαστικό;».

Υπάρχουν τρεις λύσεις.

2. Αγοράστε μια έτοιμη μονάδα με ρυθμιστή τάσης που μειώνει τα 5V σε 3,3V. Ίσως αυτή είναι η πιο βολική επιλογή.

3. Συναρμολογήστε τη μονάδα μόνοι σας από τον ρυθμιστή AMS1117 και έναν πυκνωτή τανταλίου 22uF.

Επέλεξα την τρίτη επιλογή γιατί συχνά χρειάζομαι 3,3V, είμαι άπληστος και μου αρέσει να χτίζω ρυθμιστές απευθείας στα τροφοδοτικά.

Με το AMS1117, όλα είναι απλά: αν το βάλετε με το κείμενο επάνω, τότε η τάση στα πόδια αυξάνεται από αριστερά προς τα δεξιά: 0 (Gnd), 3,3 V (Vout), 5 V (Vin).
Μεταξύ μηδέν και εξόδου, χρειάζεστε έναν πυκνωτή τανταλίου 22 microfarad (άρα σύμφωνα με τις οδηγίες τι θα γίνει αν βάλετε ηλεκτρολυτικό - δεν τον έλεγξα). Ένας πυκνωτής SMD τανταλίου έχει ένα πλεονέκτημα όπου βρίσκεται η λωρίδα. Λίγη τερατώδης συγκόλληση εξαρτημάτων SMD που δεν προορίζονται εντελώς για τέτοια βαρβαρότητα και:

Φροντίστε να ελέγξετε τάση εξόδου. Εάν είναι σημαντικά μικρότερο από 3,3 V (για παράδειγμα, 1,17 V) - αφήστε τον ρυθμιστή να κρυώσει μετά τη συγκόλληση και ελέγξτε τις επαφές. Εάν βάλετε πυκνωτή μεγαλύτερο από 22uF, τότε το πολύμετρο μπορεί να δείξει υψηλότερη τάση.

Γιατί AMS1117; Χρησιμοποιείται ευρέως. Μπορείτε να το βρείτε σχεδόν παντού, ακόμη και το Arduino Uno συνήθως κοστίζει AMS1117-5.0.
Εάν γνωρίζετε κάτι παρόμοιο σε μέγεθος και τιμή, ακόμα πιο εύκολο στη χρήση - παρακαλώ γράψτε.

Σημαντικό σημείο. Δεν ξέρω γιατί, αλλά το AMS1117 είναι εξαιρετικά ιδιότροπο σχετικά με την ποιότητα των συνδέσεων. Οι επαφές πρέπει να είναι αξιόπιστες. Καλύτερα συγκολλημένα. Διαφορετικά, βγάζει 3,3V σε δοκιμές, αλλά δεν παράγει τίποτα υπό φορτίο.

Σύνδεση ESP8266

Επέλεξα το Μοντέλο 07 γιατί έχει μια εξαιρετική μεταλλική θωράκιση που λειτουργεί ως προστασία από παρεμβολές, μηχανικές κρούσεις και ως ψύκτρα. Το τελευταίο παρέχει τη διαφορά μεταξύ μιας καμένης μονάδας και μιας απλά θερμαινόμενης μονάδας. Επιπλέον, υπάρχει υποδοχή για εξωτερική κεραία.

Για να ξεκινήσει το τσιπ, πρέπει να συνδέσετε το VCC και το CH_P μέσω μιας αντίστασης 10 kΩ. Εάν δεν συμβαίνει αυτό, τότε θα συμβεί οποιοδήποτε από το εύρος 1-20 kΩ. Επιπλέον, συγκεκριμένα το μοντέλο 07 εξακολουθεί να απαιτεί το GPIO15 (το πιο κοντά στο GND) να είναι "στο έδαφος" (αυτό δεν φαίνεται στην εικόνα, επειδή η σύνδεση είναι στην άλλη πλευρά).

Τώρα παίρνουμε τον προσαρμογέα USB-UART, τον αλλάζουμε στα 3,3 V και συνδέουμε το RX στο TX, το TX στο RX και το GND στη γείωση (έχω ασταθή μετάδοση χωρίς αυτό). Εάν δεν μπορείτε να μεταβείτε σε 3,3 V, τότε μπορείτε να χρησιμοποιήσετε τον απλούστερο διαιρέτη τάσης αντίστασης: συνδέστε το ESP RX στον προσαρμογέα TX μέσω αντίστασης 1kΩ και το ESP RX στη γείωση μέσω 2kΩ. Υπάρχουν πολλοί πιο περίπλοκοι και πιο αξιόπιστοι τρόποι σύνδεσης 3,3V και 5V, αλλά σε αυτή την περίπτωση θα γίνει.

Και συνδέουμε με ταχύτητα 9600 στην επιθυμητή θύρα COM (μπορείτε να τη δείτε στη διαχείριση συσκευών).

Χρησιμοποιώ το SecureCRT, το Putty είναι επίσης εντάξει, και οι λάτρεις του Linux γνωρίζουν ήδη τι να κάνουν και πού να κοιτάξουν.

(Το AT+RST επαναφέρει το τσιπ)

Εάν δεν συμβεί τίποτα - απενεργοποιήστε - ενεργοποιήστε την τροφοδοσία, αν εξακολουθεί να μην συμβαίνει τίποτα - ελέγξτε την αντιστοιχία των TX / RX, δοκιμάστε να τα αναδιατάξετε ή να τα κολλήσετε στο τσιπ.

Μερικές φορές το τσιπ παγώνει κατά τη διάρκεια πειραμάτων κοροϊδίας και στη συνέχεια πρέπει να απενεργοποιηθεί, συμπεριλαμβανομένης της απενεργοποίησης του προσαρμογέα (για παράδειγμα, τραβώντας τον από το USB), καθώς ακόμη και τα εισερχόμενα ψίχουλα ισχύος είναι αρκετά για να αμβλύνει πεισματικά το τσιπ και δεν λειτουργούν.

Μερικές φορές κόλπα με έναν προσαρμογέα κλείνουν μια θύρα USB. Είναι δυνατό να χρησιμοποιήσετε μια διαφορετική θύρα USB ως προσωρινή λύση, αλλά γενικά είναι καλύτερο να κάνετε επανεκκίνηση του υπολογιστή.

Μερικές φορές αυτό αλλάζει τον αριθμό θύρας COM. Στο Linux αυτό μπορεί να λυθεί με το udev.

Εάν έρχονται σκουπίδια αντί για κείμενο, τότε ελέγξτε τις ρυθμίσεις ταχύτητας. Ορισμένα παλαιότερα τσιπ λειτουργούν στο 115200.

Στην αρχή, το τσιπ θερμαίνεται, αλλά αν είναι πολύ ζεστό και συνεχίζει να θερμαίνεται, αποσυνδέστε και ελέγξτε όλες τις συνδέσεις. Για να μην φτάσει το +3,3V στη θήκη, ώστε να μην έρθει καθόλου 5V σε αυτό, ώστε η "γείωση" του προσαρμογέα να συνδεθεί στη "γείωση" του τσιπ. Τα μοντέλα με μεταλλική οθόνη είναι πολύ δύσκολο να καούν (αλλά τίποτα δεν είναι αδύνατο) και παραπονιούνται για μοντέλα χωρίς οθόνες, λένε, ακόμη και ένα μικρό λάθος μπορεί να είναι το τελευταίο στη ζωή ενός τσιπ. Αλλά δεν το έλεγξα αυτό.

Υλικολογισμικό

Η επιλογή μου είναι το NodeMCU. Έχει προβλήματα με την υποστήριξη μνήμης και υλικού, αλλά αυτό αποδίδει πολλές φορές με την απλότητα του κώδικα και την ευκολία εντοπισμού σφαλμάτων.

Θα χρειαστείτε επίσης το NodeMCU flasher και το LuaLoader (το τελευταίο είναι προαιρετικό, υπάρχουν και άλλοι πελάτες για να εργαστούν με αυτό το υλικολογισμικό).

Απενεργοποιήστε το τσιπ. Συνδέστε το GPIO0 στη γείωση και ενεργοποιήστε το τσιπ:

Εάν δεν συμβεί τίποτα και τα πεδία AP MAC/STA MAC είναι άδεια - ελέγξτε ξανά ότι το GPIO0 βρίσκεται στο έδαφος.
Εάν το υλικολογισμικό ξεκίνησε, αλλά κρεμάστηκε - κοιτάξτε στην καρτέλα Log, για κάποιο λόγο αυτό το συγκεκριμένο τσιπ αρνήθηκε να αναβοσβήσει στο FT232RL, αλλά αναβοσβήνει στο PL2303HX με ταχύτητα 576000 χωρίς κανένα πρόβλημα. πρέπει να ανοίξετε το πλαστικό θήκη και κολλήστε το καλώδιο από 5V σε 3,3V, υπάρχουν επιλογές με πέντε εξόδους: 3,3, 5, TX, RX, Gnd.


Σημείωση: Το STA MAC έχει αλλάξει. Υποψιάζομαι ότι το flasher δεν το έδειξε σωστά, αλλά απαιτείται επαλήθευση.

Για να εξοικονομήσετε δύναμη και νεύρα, μπορείτε να πάρετε μια έτοιμη ή ημιτελή έκδοση.

Υπάρχουν προσαρμογείς μιας χρήσης με βολική καλωδίωση.
Υπάρχει