Turinys:
2025 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2025-01-13 06:57
„HiFive1“yra pirmoji su „Arduino“suderinama RISC-V plokštė, pagaminta naudojant „SiFive“FE310 procesorių. Plokštė yra maždaug 20 kartų greitesnė nei „Arduino UNO“, tačiau, kaip ir UNO plokštė, joje nėra jokio belaidžio ryšio.
Laimei, rinkoje yra keletas nebrangių modulių, kurie sušvelnintų šį apribojimą. Šioje pamokoje aš naudoju ESP32 arba ESP8266, kad galėčiau pasiekti belaidį ryšį. Nepaisant to, kad ESP-01 yra pigus, dėl to, kad jį reikia užprogramuoti naudojant „Arduino“eskizą, ESP-01 buvo mažiau praktiškas sprendimas. Norint užprogramuoti ESP-01, jam reikia išorinio USB-ESP-01 adapterio, kurio neturėjau rengdamas šią pamoką. (Jei jus domina „HiFive1“naudojimas su ESP-01, sekite šią nuorodą) Aš taip pat ketinau naudoti „Arduino Shield“, bet galų gale prilipau prie ESP8266/32 dėl palyginti brangios daugumos skydų kainų etiketės.
Šis projektas bus skirtas įsibrovėlių aptikimo sistemos sukūrimui, kuri veiks siunčiant pranešimą „MQTT Broker“kiekvieną kartą, kai ultragarso jutiklis (SRF05) aptinka objektą, kertantį jo regėjimo liniją.
Šiam projektui reikalingos medžiagos:
- „HiFive1“plokštė (galima įsigyti čia)
- ESP32 Dev modulis arba ESP8266 NodeMCU 1.0
- 10k rezistorius x 2
- 1k rezistorius
- Bandomoji Lenta
- trumpas kabelis x 6
- Ultragarsinis SRF05 modulis
- Mobilusis įrenginys
1 žingsnis: nustatykite aplinką
Įdiekite „Arduino IDE“
1. Vykdykite instrukcijas, kad įdiegtumėte „HiFive1“plokštės „Arduino“paketą ir USB tvarkyklę.
2. Įdiekite ESP32 arba ESP8266 plokštės paketą pridėdami atitinkamą URL prie „File-> Preferences-> Extra Boards Manager“:
- ESP8266 -
- ESP32 -
2 žingsnis: ESP32 prijungimas
Jei naudojate ESP8266, pereikite prie 3 veiksmo.
Svarbu: SRF05 yra dviejų „pinout“versijų, kurios yra veidrodinės viena kitos versijos, įsitikinkite, kad turite tą patį modulį kaip ir mano, naudodami toliau pateiktą nuorodą.
Norėdami gauti daugiau techninės informacijos apie SRF05, sekite šią nuorodą.
GND (HiFive1) -> GND (SRF05) 5v (HiFive1) -> VCC (SRF05) DI/O 11 (HiFive1) -> Trigger PIN (SRF05) DI/O 12 (HiFive1) -> Echo Pin (SRF05) DI/ O 5 (HiFive1) -> Tx (ESP32) DI/O 6 (HiFive1) -> Rx (ESP32)
Pastaba: Įsitikinkite, kad IOREF trumpiklis nustatytas į 3.3v.
3 žingsnis: ESP8266 prijungimas
Svarbu: SRF05 yra dviejų „pinout“versijų, kurios yra veidrodinės viena kitos versijos, įsitikinkite, kad turite tą patį modulį kaip ir mano, naudodami toliau pateiktą nuorodą.
Norėdami gauti daugiau techninės informacijos apie SRF05, sekite šią nuorodą
GND (HiFive1) -> GND (SRF05) 5v (HiFive1) -> VCC (SRF05) DI/O 11 (HiFive1) -> Trigger PIN (SRF05) DI/O 12 (HiFive1) -> Echo Pin (SRF05) DI/ O 5 (HiFive1) -> Tx (ESP8266) DI/O 6 (HiFive1) -> Rx (ESP8266)
Pastaba: įsitikinkite, kad IOREF trumpiklis nustatytas į 3.3v.
4 žingsnis: programavimas
„HiFive1“kodas:
Prieš programuodami nustatykite „Tools-> Board“į „HiFive1“plokštę, „Tools-> CPU Clock Frequency“į „256MHz PLL“, „Tools-> Programmer“-į „SiFive OpenOCD“ir pasirenkamas tinkamas nuoseklusis prievadas.
Taip pat turėsite atsisiųsti šią ultragarso biblioteką ir šį „PubSubClient“ir išgauti juos į „Arduino“bibliotekų aplanką, esantį skiltyje „Vartotojas-> Dokumentai-> Arduino-> Bibliotekos“.
ESP32/8266 Kodas:
Programavimo metu ESP plokštėje turi būti atjungti aparatinės įrangos Rx ir Tx kaiščiai. Sėkmingai įkėlus kodą, perjunkite ESP Rx ir Tx kaiščius, kad užtikrintumėte ryšį tarp HiFive1 ir ESP.
ESP32-Nustatykite „Tools-> Board“į „ESP32 Dev Module“, „Tools-> Programmer“į „AVRISP mkll“ir pasirinkite tinkamą nuoseklųjį prievadą.
ESP8266-Nustatykite „Tools-> Board“į „NodeMCU 1.0 (ESP-12E Module)“, „Tools-> Programmer“į „AVRISP mkll“ir pasirinkite tinkamą nuoseklųjį prievadą.
Eskizo kodas buvo pasiskolintas iš čia su pakeitimais, kad būtų paverstas įsibrovėlių aptikimo sistema.
5 veiksmas: nustatykite klientą
Naudojau debesų pagrindu veikiančią „MQTT Broker“(šią) ir „Android“telefoną su šia programa.
Norėdami viską nustatyti, turėsite atidaryti sąskaitą.
Naudokite pateiktas ekrano kopijas, kad nustatytumėte „CloudMQTT“ir programą.
6 žingsnis: galutinis rezultatas
Pastaba: savo serijinio monitoriaus duomenų perdavimo spartą turėtumėte nustatyti į 115200, nes tai yra duomenų perdavimo sparta, kurią naudojame mūsų eskize.
Jūsų galutinis rezultatas turėtų atrodyti panašus į galutines ekrano kopijas