Mengawal mesin melalui WiFi menggunakan ESP8266 NodeMCU. Pelajaran Arduino: mengawal peranti daripada telefon pintar untuk boneka

Dengan modul Wi-Fi.

Arduino Uno WiFi menyediakan segala-galanya untuk kerja mudah dengan mikropengawal: 14 input/output digital (6 daripadanya boleh digunakan sebagai output PWM), 6 input analog, penyambung USB, penyambung kuasa, penyambung pengaturcaraan dalam litar (ICSP). ) dan butang set semula mikropengawal.

Kemuncak papan ialah modul WiFi ESP8266, yang membolehkan Arduino bertukar maklumat dengan modul lain melalui rangkaian wayarles 802.11 b/g/n.

ESP8266 membolehkan anda menyalakan papan Arduino tanpa menggunakan kabel USB dalam mod OTA (Firmware Over The Air).

Semakan video lembaga

Sambungan dan persediaan

Untuk bermula dengan papan WiFi Arduino Uno dalam sistem pengendalian Windows, muat turun dan pasang persekitaran pembangunan bersepadu Arduino - Arduino IDE - pada komputer anda.

Ada masalah?

Menyediakan modul WiFi

Perisian tegar Arduino melalui WiFi

Arduino Uno WiFi mempunyai satu lagi bonus bagus - keupayaan untuk memuat naik lakaran tanpa menggunakan kabel USB dalam mod OTA (Firmware Over The Air). Mari kita lihat lebih dekat bagaimana untuk melakukan ini.


Untuk melakukan ini, anda perlu memasukkan menu: Alatan Pelabuhan dan pilih port yang dikehendaki.

Memandangkan kami memancarkan Arduino melalui WiFi, papan akan dikenal pasti sebagai peranti jauh dengan alamat IP

Persekitaran dikonfigurasikan, papan disambungkan. Anda boleh meneruskan untuk memuat naik lakaran. Arduino IDE mengandungi senarai besar contoh sedia di mana anda boleh melihat penyelesaian kepada sebarang masalah. Mari kita pilih antara contoh LED berkelip - lakaran "Kelip".
Kilat papan dengan mengklik pada ikon muat turun program.
Selepas but, LED akan mula berkelip sekali sesaat. Ini bermakna semuanya berjaya.

Sekarang anda boleh teruskan ke contoh penggunaan.

Contoh penggunaan

Pelayan web

Mari sediakan pelayan web mudah yang akan memaparkan halaman dengan nilai semasa input analog.

web-server.ino /* Contoh pelayan web ringkas yang berjalan pada Arduino Uno WiFi. Pelayan memaparkan nilai pada input analog dan mengemas kini maklumat setiap dua saat. Hubungi pelayan di http:// /arduino/webserver/ Sila ambil perhatian: contoh hanya berfungsi dengan Arduino Uno WiFi Developer Edition. */#termasuk #termasuk void setup() ( Wifi.begin (); Wifi.println ( "Pelayan Web sudah siap"); // Paparkan mesej tentang permulaan pelayan dalam konsol wifi) void loop() ( while (Wifi.available () ) ( process(Wifi) ; ) delay(50); ) void process(WifiData client) ( String command = client.readStringUntil ("/" ); if (command = = "pelayan web" ) ( Pelayan Web(pelanggan) ; ) ) batal Pelayan Web(pelanggan WifiData) ( klien.println("HTTP/1.1 200 OK" ); klien.println("Jenis-Kandungan: teks/html" ); klien. println ("Sambungan: tutup" ); // Pengepala yang menentukan tempoh muat semula halaman dalam beberapa saat client.println(); client.println(" " ) ; // Bentuk halaman client.println( " Pelayan Web UNO WIFI " ); client.print( "

Contoh nilai keluaran daripada pin analog

"
); client.print("
    " ); untuk (int analogChannel = 0 ; analogChannel< 4 ; analogChannel++ ) { int sensorReading = analogRead(analogChannel) ; client.print ("
  • pada input analog"); client.print(analogChannel) ; client.print(": " ); client.print (sensorReading); client.print ("
  • "); ) client.println ( "
" ); klien.cetak (DELIMITER); // Jangan lupa tutup sambungan! }

Elemen papan

Pengawal mikro ATmega328P

Inti bagi platform WiFi Arduino Uno ialah mikropengawal 8-bit keluarga AVR - ATmega328P.

Mikropengawal ATmega16U2

Mikropengawal ATmega16U2 menyediakan komunikasi antara mikropengawal ATmega328P dan port USB komputer. Apabila disambungkan ke PC, Arduino Uno WiFi dikesan sebagai port COM maya. Perisian tegar cip 16U2 menggunakan pemacu USB-COM standard, jadi tiada pemasangan pemacu luaran diperlukan.

Pin kuasa

    VIN: Voltan daripada bekalan kuasa luaran (tidak berkaitan dengan 5V daripada USB atau voltan terkawal lain). Melalui pin ini anda boleh membekalkan kuasa luaran dan menggunakan arus jika penyesuai luaran disambungkan ke peranti.

    5V: Pin menerima voltan 5 V daripada penstabil papan. Penstabil ini memberikan kuasa kepada mikropengawal ATmega328. Ia tidak disyorkan untuk menghidupkan peranti melalui pin 5V - dalam kes ini, penstabil voltan tidak digunakan, yang boleh menyebabkan kegagalan papan.

    3.3V: 3.3 V daripada penstabil papan. Arus keluaran maksimum ialah 1 A.

    GND: Kesimpulan bumi.

    IOREF: Pin menyediakan papan pengembangan dengan maklumat tentang voltan pengendalian mikropengawal. Bergantung pada voltan, papan pengembangan boleh bertukar kepada bekalan kuasa yang sesuai atau menggunakan penukar aras, membolehkan ia berfungsi dengan kedua-dua peranti 5V dan 3.3V.

Port I/O

    Input/output digital: pin 0 – 13
    Tahap logik satu ialah 5 V, sifar ialah 0 V. Arus keluaran maksimum ialah 40 mA. Perintang tarik naik disambungkan kepada kenalan, yang dilumpuhkan secara lalai, tetapi boleh didayakan oleh perisian.

    PWM: pin 3, 5, 6, 9, 10 dan 11
    Membolehkan anda mengeluarkan nilai analog 8-bit sebagai isyarat PWM.

    ADC: pin A0 – A5
    6 input analog, setiap satunya boleh mewakili voltan analog sebagai nombor 10-bit (1024 nilai). Kapasiti ADC ialah 10 bit.

    TWI/I²C: Pin SDA dan SCL
    Untuk komunikasi dengan peranti menggunakan protokol segerak, melalui 2 wayar. Untuk bekerja, gunakan perpustakaan Wire.

    SPI: pin 10(SS), 11(MOSI), 12(MISO), 13(SCK).
    Komunikasi melalui antara muka SPI dijalankan melalui pin ini. Untuk bekerja, gunakan perpustakaan SPI.

    UART: pin 0(RX) dan 1(TX)
    Pin ini disambungkan ke pin yang sepadan mikropengawal ATmega16U2, yang bertindak sebagai penukar USB-UART. Digunakan untuk berkomunikasi antara papan Arduino dan komputer atau peranti lain melalui kelas Serial.

Petunjuk LED

Penyambung USB Jenis-B

Penyambung USB Type-B direka untuk menyalakan platform WiFi Arduino Uno menggunakan komputer.

Penyambung kuasa luaran

Penyambung untuk menyambung kuasa luaran dari 7 V ke 12 V.

Pengatur voltan 5V

Apabila papan disambungkan kepada sumber kuasa luaran, voltan melalui pengawal selia MPM3610. Output penstabil disambungkan ke pin 5V. Arus keluaran maksimum ialah 1A.

Pengatur voltan 3.3V

Penstabil MPM3810GQB-33 dengan output 3.3 volt. Membekalkan kuasa kepada modul WiFi ESP8266 dan dikeluarkan kepada pin 3.3V. Arus keluaran maksimum ialah 1A.

Penyambung ICSP untuk ATmega328P

Penyambung ICSP direka untuk pengaturcaraan dalam litar mikropengawal ATmega328P. Menggunakan perpustakaan SPI, pin ini boleh berkomunikasi dengan papan pengembangan melalui antara muka SPI. Talian SPI disalurkan ke penyambung 6-pin, dan juga diduplikasi pada pin digital 10(SS), 11(MOSI), 12(MISO) dan 13(SCK).

Penyambung ICSP untuk ATmega16U2

Penyambung ICSP direka untuk pengaturcaraan dalam litar mikropengawal ATmega16U2.



Ingin menghantar mesej teks daripada telefon pintar Android anda ke papan Arduino anda? Artikel ini memberitahu anda bagaimana untuk melakukannya!

Apa yang anda perlukan

  • Telefon pintar Android dengan sokongan untuk mod hos USB (iaitu sokongan OTG) - kebanyakan peranti yang menjalankan Android 3.1 dan lebih tinggi menyokong mod ini. Uji telefon anda menggunakan Apl Diagnostik Hos USB daripada Gedung Play;
  • Arduino - mana-mana versi. Saya akan menggunakan Uno R3;
  • Kabel USB untuk Arduino;
  • Kabel USB OTG - anda memerlukannya untuk menyambungkan kabel USB Arduino ke port mikro-USB telefon;
  • Android Studio - anda perlu memasangnya. Ia agak mudah untuk dilakukan. Android Studio menjadikan pembangunan apl lebih mudah dengan andaian dan penjanaan kodnya. Ini adalah salah satu IDE terbaik. Anda juga boleh menggunakan artikel ini sebagai panduan untuk memasang Android IDE.

Komponen asas aplikasi Android

Terdapat tiga fail utama dalam aplikasi Android:

MainActivity.java Di sinilah terletaknya kod Java boleh laku yang mengawal cara aplikasi akan berfungsi. activity_main.xml Mengandungi reka letak aplikasi, iaitu komponen: butang, komponen paparan teks, dsb. AndroidManifest.xml Di sini anda mentakrifkan bila aplikasi harus dijalankan, kebenaran yang diperlukan dan perkakasan yang diperlukan untuk diakses.

Terdapat banyak lagi fail, tetapi semuanya bersambung antara satu sama lain menggunakan ketiga-tiga ini.

Sesuatu aktiviti boleh dicirikan sebagai skrin di mana pengguna berinteraksi dengan telefon. Aktiviti mengandungi widget seperti butang, medan teks, imej, dsb. yang membantu dalam menyampaikan maklumat. Tutorial ini hanya akan menggunakan satu aktiviti, MainActivity, yang akan menerima input pengguna untuk dihantar ke Arduino dan juga memaparkan teks yang diterima.

Susun atur

Kami akan menggunakan reka letak yang sama seperti Apl USB dan Apl Bluetooth. Ia mudah dan mengandungi widget minimum yang diperlukan untuk menguji sambungan antara peranti.

Seperti yang anda lihat, ia mengandungi widget EditText untuk menerima data daripada pengguna, butang untuk memulakan sambungan, memindahkan data, menamatkan sambungan dan mengosongkan TextView . Data yang diterima dipaparkan dalam TextView (ruang kosong di bawah butang).

Berikut ialah sebahagian daripada kod XML. Oleh kerana kod untuk butang adalah serupa, ia tidak ditunjukkan di sini. Kod penuh boleh dimuat turun dari pautan di penghujung artikel.