Satura rādītājs:

Kā izveidot savu WIFI vārteju, lai savienotu savu Arduino ar IP tīklu?: 11 soļi (ar attēliem)
Kā izveidot savu WIFI vārteju, lai savienotu savu Arduino ar IP tīklu?: 11 soļi (ar attēliem)

Video: Kā izveidot savu WIFI vārteju, lai savienotu savu Arduino ar IP tīklu?: 11 soļi (ar attēliem)

Video: Kā izveidot savu WIFI vārteju, lai savienotu savu Arduino ar IP tīklu?: 11 soļi (ar attēliem)
Video: CS50 2014 - Week 7 2024, Jūlijs
Anonim
Kā izveidot savu WIFI vārteju, lai savienotu savu Arduino ar IP tīklu?
Kā izveidot savu WIFI vārteju, lai savienotu savu Arduino ar IP tīklu?

Kā daudzi cilvēki, jūs domājat, ka Arduino ir ļoti labs risinājums mājas automatizācijai un robotizēšanai

Bet komunikācijas ziņā Arduinos ir tikai sērijveida saites.

Es strādāju pie robota, kuram jābūt pastāvīgi savienotam ar serveri, kurā darbojas mākslīgā intelekta kods. Es mēģināju izmantot RF tīklu, kā esmu pieradis domotikai, bet tas nav pietiekami efektīvs. Robotam pārvietojoties, es nevaru izmantot Ethernet Arduino vairogu. Arduino Wifi Shield ir dārgi, un man šķiet, ka tas ir vecs dizains.

Man vajadzēja kaut ko tādu, kas ar serveri var ļoti vienkārši un efektīvi apmainīties ar datiem.

Tāpēc es nolēmu izveidot vārteju, kuras pamatā ir ļoti lēts un energoefektīvs mikrokontrolleris ESP8266

Šeit varat uzzināt, kā izveidot elektronisko komponentu un lejupielādēt programmatūru.

Es izmantoju šo vārteju mājas automatizācijai un robotikai.

Tas aizņem daļu no globālās mājas automatizācijas infrastruktūras, kuru varat apskatīt šeit

Es izveidoju vēl vienu pamācību, kas izmanto vairogu ESP8266 un izvairās no lodēšanas

Piegādes

Es uzrakstīju citu pamācību par šo tēmu

1. darbība. Kā tas darbojas?

Kā tas darbojas ?
Kā tas darbojas ?

Vārtejas pamatā ir ESP8266 modulis

Šis modulis ir savienots no vienas puses ar seriālo saiti no otras puses uz IP tīklu, izmantojot Wifi.

Tas darbojas kā melna kaste. Datu paketes, kas nāk no seriālās saites, tiek nosūtītas uz IP/Udp portu un visapkārt.

Jums vienkārši jāiestata sava konfigurācija (IP, WIFI …), kad pirmo reizi ieslēdzat vārteju.

Tas var pārsūtīt vai nu neapstrādātus ASCII, gan binārus datus (bez HTTP, JSON …)

Tas ir paredzēts, lai savienotu objektus ar servera mājās gatavotu programmatūru, kurai nepieciešama ātra un bieža īsu datu pakešu pārsūtīšana.

Visvieglāk to izmantot ar Arduino Mega, kam ir vairāk nekā viens UART (piemēram, Arduino Mega), bet var darboties arī ar UNO.

2. solis: Kādas ir galvenās funkcijas?

Pārsvarā tā ir melnā kaste, kas abos veidos pārveido un nosūta sērijas datus uz UDP paketi.

Tam ir 3 gaismas diodes, kas norāda vārtejas statusu un trafiku.

Tas nodrošina GPIO, ko Arduino var izmantot, lai gaidītu, kad vārteja tiks savienota ar WIFI un IP.

Tas darbojas 3 dažādos režīmos, kas ir iestatīti ar slēdžiem:

  • Vārtejas režīms, kas ir parastais režīms
  • Konfigurācijas režīms, ko izmanto parametru iestatīšanai
  • Atkļūdošanas režīms, kas paredzēts atkļūdošanas režīmam

Lielāko daļu parametru var mainīt atbilstoši jūsu vajadzībām.

3. solis: materiāla veidošana

Materiāla uzbūve
Materiāla uzbūve

Papildus jūsu Arduino jums būs nepieciešams

  • 1 x ESP8266 modulis-es izvēlos MOD-WIFI-ESP8266-DEV no Olimex, kas maksā aptuveni 5 eiro un ir diezgan viegli lietojams.
  • 1 x 5V barošanas avots
  • 1 x 3.3v jaudas regulators - es izmantoju LM1086
  • 1 x 100 mikrofarad kondensators
  • 1 x ULN2803 APG modulis (var aizstāt ar 3 x tranzistoriem)
  • 8 x rezistori (3 x 1K, 1 x 2K, 1 x 2,7k, 1x 3,3K, 1x 27K, 1x 33k)
  • 3 x LED (sarkans, zaļš, zils)
  • 1 x maizes dēļa PCB
  • daži vadi un savienotāji

Tikai būvdarbu laikā jums būs nepieciešams

  • 1 x FTDI 3.3v konfigurācijai
  • Lodāmurs un alva

Pirms lodēšanas ir svarīgi uzstādīt visas maizes dēļa sastāvdaļas un pārbaudīt, vai viss ir kārtībā.

4. solis: Sāksim ar elektroniku uz maizes dēļa

Sāksim ar elektroniku uz maizes dēļa!
Sāksim ar elektroniku uz maizes dēļa!

Elektroniskais izkārtojums ir pieejams Fritzing formātā

To var lejupielādēt šeit, veicot 1. darbību:

github.com/cuillerj/Esp8266IPSerialGateway/blob/master/GatewayElectronicStep1.fzz

Vienkārši rīkojieties kā shēma, rūpējoties par spriegumu.

Atcerieties, ka ESP8266 neatbalsta spriegumu, kas ir augstāks par 3.3v. FTDI jābūt iestatītam uz 3.3v.

5. solis: ejam pie programmatūras

Dodamies uz programmatūru!
Dodamies uz programmatūru!

Sāksim ar vārtejas pusi

Es uzrakstīju kodu ar Arduino IDE. Tātad jums ir nepieciešams ESP8266, lai IDE būtu pazīstams kā dēlis. Izvēlieties atbilstošo dēli, izmantojot izvēlni Rīki / dēļi.

Ja sarakstā neredzat nevienu ESP266, tas nozīmē, ka jums, iespējams, būs jāinstalē ESP8266 Arduino Addon (procedūru var atrast šeit).

Viss nepieciešamais kods ir pieejams vietnē GitHub. Ir pienācis laiks to lejupielādēt!

Vārtejas galvenais kods ir pieejams šeit:

Papildus standarta Arduino un ESP8266 ir iekļauts galvenais kods, kas nepieciešams:

Tur ir pieejams ManageParamEeprom, kas tiek izmantots parametru lasīšanai un saglabāšanai Eeprom ans:

Kad esat saņēmis visu kodu, ir pienācis laiks to augšupielādēt ESP8266. Vispirms pievienojiet FTDI datora USB portam.

Pirms augšupielādes iesaku pārbaudīt savienojumu.

  • Iestatiet Arduino sērijas monitoru uz jauno USB portu.
  • Iestatiet ātrumu līdz 115200 gan cr nl (Olimex noklusējuma ātrums)
  • Ieslēdziet maizes dēli (ESP8266 nāk ar programmatūru, kas nodarbojas ar AT komandām)
  • Nosūtiet “AT” ar sērijas rīku.
  • Pretī jums jāsaņem "OK".

Ja nē, pārbaudiet savienojumu un apskatiet savas ESP8266 specifikācijas.

Ja jums ir “OK”, esat gatavs augšupielādēt kodu

  • Izslēdziet maizes dēli, pagaidiet dažas sekundes,
  • nospiediet uz ESP8266 melnā mikropavediena. Ir normāli, ja uz seriālā monitora nokļūst atkritumi.
  • Nospiediet augšupielādes IDE kā Arduino.
  • Pēc augšupielādes pabeigšanas iestatiet sērijas ātrumu uz 38400.

Jūs redzēsit kaut ko tādu, kā attēlā.

Apsveicam, ka veiksmīgi augšupielādējāt kodu!

6. darbība: veiksim konfigurāciju

Veiksim konfigurāciju!
Veiksim konfigurāciju!

Lai ievadītu konfigurācijas režīmu, configGPIO jābūt iestatītam uz 1

Vispirms skenējiet WIFI, ievadot komandu: ScanWifi. Jūs redzēsit atklāto tīklu sarakstu.

  • Pēc tam iestatiet savu SSID, ievadot “SSID1 = jūsu tīkls”
  • Pēc tam iestatiet paroli, ievadot "PSW1 = jūsu parole"
  • Pēc tam ievadiet "SSID = 1", lai definētu pašreizējo tīklu
  • Ievadiet "Restart", lai savienotu vārteju ar WIFI.
  • Jūs varat pārbaudīt, vai esat saņēmis IP, ievadot "ShowWifi".
  • Zilā gaismas diode iedegsies un sarkanā gaismas diode mirgos.

Ir pienācis laiks definēt savu IP servera adresi, ievadot 4 apakšadreses (serveris, kurā tiks palaists Java testa kods). Piemēram:

  • "IP1 = 192"
  • "IP2 = 168"
  • "IP3 = 1"
  • "IP4 = 10"

Pēdējais nepieciešamais solis ir iestatīt UDP servera klausīšanās portu, ievadot "listenPort = xxxx".

Ievadiet "ShowEeprom", lai pārbaudītu, ko tikko saglabājāt Eeprom

Tagad pievienojiet GPIO2 zemei, lai izietu no konfigurācijas režīma

Jūsu vārteja ir gatava darbam

Ir dažas citas komandas, kuras varat atrast dokumentācijā.

7. solis: darīsim Arduino pusi

Darīsim Arduino pusi!
Darīsim Arduino pusi!
Darīsim Arduino pusi!
Darīsim Arduino pusi!

Vispirms pievienojiet Arduino

Ja jums ir Mega, to būs vieglāk sākt. Tomēr jūs varat izmantot Uno.

Lai pārbaudītu savu darbu, vislabāk ir izmantot piemēru.

To var lejupielādēt šeit:

Tas ietver SerialNetwork kodu, kas atrodas šeit:

Vienkārši augšupielādējiet kodu savā Arduino.

Zaļā gaismas diode mirgo katru reizi, kad Arduino sūta datus.

8. solis: darīsim servera pusi

Darīsim servera pusi!
Darīsim servera pusi!
Darīsim servera pusi!
Darīsim servera pusi!

Servera piemērs ir Java programma, kuru varat lejupielādēt šeit:

Vienkārši palaidiet to

Paskaties uz Java konsoli.

Paskatieties uz Arduino monitoru.

Arduino sūta 2 dažādas paketes.

  • Pirmajā ir ciparu tapas no 2 līdz 6.
  • Otrajā ir 2 izlases vērtības, sprieguma līmenis A0 mV un pieaugošais skaitlis.

Java programma

  • izdrukājiet saņemtos datus heksadecimālā formātā
  • atbildiet uz pirmā veida datiem ar nejaušu ieslēgšanas/izslēgšanas vērtību, lai ieslēgtu/izslēgtu Arduino LED
  • atbildiet uz otrā veida datiem ar saņemto skaitu un izlases vērtību.

9. solis: ir pienācis laiks veikt lodēšanu

Ir pienācis laiks veikt nelielu lodēšanu!
Ir pienācis laiks veikt nelielu lodēšanu!
Ir pienācis laiks veikt nelielu lodēšanu!
Ir pienācis laiks veikt nelielu lodēšanu!
Ir pienācis laiks veikt nelielu lodēšanu!
Ir pienācis laiks veikt nelielu lodēšanu!

Tas darbojas uz maizes dēļa!

Ir pienācis laiks padarīt to izturīgāku, lodējot detaļas uz PCB

Papildus tam, ko darījāt ar maizes dēli, jums jāpievieno 3 savienotāji.

  • C1 1 x piespraude, kas tiks izmantota, lai ievadītu tīkla izsekošanas režīmu.
  • C2 3 x tapas, kas tiks izmantotas, lai pārslēgtos starp darbības režīmu un konfigurācijas režīmu.
  • C3 6 x tapas, kas tiks izmantotas, lai savienotu vārteju ar Arduino vai FTDI.

C1, kas savienots ar GPIO2, ir manuāli jāzemē, ja vēlaties aktivizēt tīkla pēdas.

C2, kas savienots ar GPIO 4, var iestatīt 2 dažādās pozīcijās. Viens, kas iestatīts uz parasto darbības režīmu, un viens - uz 3.3v, lai ievadītu konfigurācijas režīmu.

Uzstādiet visas PCB sastāvdaļas saskaņā ar diagrammu un pēc tam sāciet lodēt, lai iegūtu galaproduktu!

10. solis: Veiksim pēdējo pārbaudi

Image
Image

Sāciet Java testa programmu.

Pievienojiet Arduino.

Ieslēdziet vārteju.

Un paskatieties uz Java konsoli, Arduino monitoru, Arduino LED un Gateway LED.

11. solis: jūs varat pielāgot šo dizainu savām prasībām

Attiecībā uz aparatūru

  • Ja izvēlaties kādu citu ESP8266, jums būs jāpielāgojas specifikācijām.
  • Ja izvēlaties citu 3.3v regulatoru, tam ir jāpiegādā vairāk nekā 500 mA, un jums būs jāpielāgo kondensators.
  • Lai pielāgotu spilgtumu, varat mainīt LED rezistorus.
  • Jūs varat izslēgt visas gaismas diodes, bet es iesaku ieslēgt vismaz sarkano.
  • Jūs varat nomainīt ULN2803 ar 3 tranzistoriem (vai mazāk, ja izvēlaties neturēt 3 LED).
  • Es pārbaudīju, bet tur tam jādarbojas ar 3.3v Arduino dēļiem. Vienkārši pievienojiet Tx Rx 3.3V savienotājam.

Attiecībā uz konfigurāciju

  • Jūs varat saglabāt 2 dažādus SSID un pārslēgties
  • Jūs varat mainīt izmantoto GPIO

Attiecībā uz programmatūru

Ieteicams: