
Dacă sunteți în căutarea unuia Placă Arduino care se conectează la internet prin WiFi, utilizează tehnologia de Bluetooth şi NFC, atunci modelul În primul rând Este ideal pentru proiectele tale.
Acest lucru se datorează conectivității sale de înaltă calitate și altor componente care îi îmbunătățesc substanțial operabilitatea.Unul dintre aceste elemente este mulțimea de MCU care sunt folosite pentru a menține o conexiune bună.
Dacă vrei să știi cum să lucrezi cu un Placă Arduino PrimoVa trebui să continuați să citiți. Îți vom arăta o listă cu cele mai bune idei pe care le poți face singur.
Ce sunt plăcile Arduino Primo și la ce se folosesc aceste plăci hardware open-source?
La Placă Arduino Primo Este un model dezvoltat în Statele Unite și lansat în 2016. Controlerele sale au o arhitectură pe 32 de biți, 14 pini pentru intrări și ieșiri digitale și 6 pentru intrări analogice..
Se poate creați o gamă largă de proiecte, în special cele care includ o bateriedeoarece oferă un receptor și un emițător infraroșu și un încărcător de baterii. Include și o placă de rețea. WiFi și BluetoothPrin urmare, este posibil lucrul în IoT.
Care sunt caracteristicile speciale ale plăcilor de dezvoltare Arduino Primo?
Cele mai remarcabile caracteristici pe care le veți găsi pe o placă Arduino Primo sunt următoarele:
- Această farfurie are dimensiunea 7,62 5,08 cm x. și cântărește 85 de grame.
- Poate fi conectat la WiFi, prin Bluetooth și prin tehnologia de comunicații în câmp apropiat NFC.
- Are 3 microcontrolerenRF52832, STM32f103 și ESP8266. Acestea funcționează ca microcontrolerul principal al plăcii, pentru depanarea programelor și, respectiv, pentru conectivitatea WiFi.
- are 14 de pini digitali pini de intrare și ieșire, dintre care 12 pot fi utilizați ca markeri de impuls sau PWM. De asemenea, are 6 pini de intrare analogici.
- Are un conector MicroUSB, cu o antenă pentru NFC, un buzzer și butoane de resetare și de alimentare.
- Are deasemenea un încărcător de baterii cu un rezonator de 64 MHz.
- Tensiunea la care funcționează este 3VPrin urmare, trebuie să fim atenți la nu ardeți componentele.
- Lucrați cu a Protocolul WiFi 11 bgn en 2.4 GHz de frecventa.
Conectivitate îmbunătățită: Cum să profităm cel mai bine de această caracteristică a Arduino Primo?
Pentru a utiliza mai bine conectivitatea oferită de placa Arduino Primo Va trebui să adăugați placa Arduino NRF52 Core în IDE..
Puteți face acest lucru accesând Instrumente, apoi selectând Tablouri și în final alegând Manager tablă:
- Se va deschide apoi o fereastră nouă în care Va trebui să alegeți NRF52 Core.
- Trebuie să țineți cont că, dacă lucrați pe un computer cu un sistem de operare Windows sau MacOS nu va trebui să instalați drivereTotuși, dacă utilizați Linux va trebui rulați scriptul Îl veți găsi pe site-ul oficial al Arduino.
https://www.arduino.cc/en/Sh/Txt - După aceasta, va trebui adăugați portul serialPentru a face asta, va trebui să vă conectați la IDE și faceți clic pe Unelte și apoi în Meniul portului serial, unde veți găsi numele portului la care este conectată placa dumneavoastră.
- După încărcarea mediului (făcând clic pe Program și apoi în Încarcă), veți avea nevoie Conectați-vă la internet prin WiFiPuteți face acest lucru pornind adaptorul de rețea și apoi accesând meniul Rețea de pe computer. Îl veți găsi foarte ușor. SSID, deoarece poartă numele Arduino Var.
- În browserul dvs., va trebui să introduceți adresa
http://192.168.240.1/astfel încât să puteți accesa opțiunile de configurare ale plăcii de bază. Apoi, va trebui să accesați meniul Conexiune Va trebui să introduceți parola Wi-Fi și apoi să apăsați pe CONECTAȚI. - În cele din urmă, Va apărea adresa IP a Arduino-ului.Prin urmare, va trebui să schimbați starea din panoul de setări la COMUTARE LA MODUL STAÎn acest fel, poți obține o conectivitate mai bună.
Listă de idei de proiecte pe care le poți dezvolta folosind plăci Arduino Primo
Mai jos veți găsi o listă cu cele mai bune proiecte pe care le puteți realiza singuri cu un Arduino Primo:
Monitor de ritm cardiac
Vei putea să creați folosind o placă Arduino Primoun senzor de puls pentru obține informații despre ritmul cardiac și cablurile necesare pentru conectare. Primul lucru pe care ar trebui să-l faceți este să conectați PWR-ul senzorului la 3.3V; apoi GND-ul la GND-ul plăcii și semnalul la canalul A0.
În continuare, va trebui să introduceți aceste coduri de programare:
#include #define SIGNAL A0 BLEPeripheral blePeripheral; BLEService heartRateService("180D"); BLECharacteristic heartRateChar("2A37", BLERead | BLENotify, 2); void findHeartRate(float averageSample); int sample[300] = { 0 }; int n = 0; int sumSample = 0; float averageSample = 0; void setup() { begin(250000); setLocalName("HeartRateSketch"); setAdvertisedServiceUuid(heartRateService.uuid()); addAttribute(heartRateService); addAttribute(heartRateChar); begin(); println("Dispozitiv Bluetooth activ, în așteptare pentru conexiuni..."); } void loop() { BLECentral central = blePeripheral.central(); if (central) { print("Conectat la central: "); println(central.address()); //pornește ledul BLE digitalWrite(BLE_LED, HIGH); while (central.connected()) { if (millis() % 10 == 0) { int rawValue = analogRead(A0); int sensorValue = map(rawValue, 0, 1023, 0, 255); println(sensorValue); sumSample = sumSample + sensorValue; sumSample = sumSample - sample[n]; sample[n] = sensorValue; n++; averageSample = (float)sumSample / 300; if (n == 300) { n = 0; findHeartRate(averageSample); } delay(1); } } print("Deconectat de la central: "); println(central.address()); } digitalWrite(BLE_LED, LOW); delay(200); digitalWrite(BLE_LED, HIGH); delay(200); } void findHeartRate(float averageSample) { int count = 0; int totalTime = 0; int lastI = 0; bool trendState = false; bool goOverThreshold = false; int heartRate = 0; float setThreshold = 1.25; for (int i = 0; i < 300; i++) { goOverThreshold = (sample[i] > (averageSample * setThreshold)); if (goOverThreshold != trendState) { trendState = goOverThreshold; if (goOverThreshold == false) { if (count > 0) { totalTime = totalTime + (i - lastI); } count++; lastI = i; } } } heartRate = 6000 * (count - 1) / totalTime; const unsigned char heartRateCharArray[2] = { 0, (char)heartRate }; setValue(heartRateCharArray, 2); //Serial.print("ritmul cardiac este: "); //Serial.println(ritmul cardiac); }
Controlul mouse-ului prin intermediul unui dispozitiv mobil într-un player multimedia
Veți avea nevoie de o baterie tip buton CR2032, o farfurie Nucleul Arduino Primo și un telefon mobil cu Bluetooth activat.
Când lucrați cu un IDE, nu veți avea nevoie de nicio placă de circuit, așa că va trebui doar să introduceți direct aceste coduri:
#include #include #include #include #define MOUSE_RANGE 24 #define INT1 21 int tap = 0; int chrono = 0; int count = 0; BLEHIDPeripheral bleHIDPeripheral = BLEHIDPeripheral(); BLEMouse bleMouse; BLESystemControl bleSystemControl; void setup() { pinMode(LED_BUILTIN, OUTPUT); pinMode(12, OUTPUT); begin(115200); println(F("Periferic BLE HID - ștergere date legături")); clearBondStoreData(); setReportIdOffset(1); setLocalName("Mouse Arduino Core"); addHID(bleMouse); addHID(bleSystemControl); begin(); println(F("Demo BLE HID")); begin(); enableSingleTapDetection(); attachInterrupt(INT1, Tap, RISING); } void loop() { BLECentral central = bleHIDPeripheral.central(); digitalWrite(LED_BUILTIN, LOW); if (central) { print(F("Conectat la central: ")); println(central.address()); count = 0; while (central.connected()) { digitalWrite(LED_BUILTIN, HIGH); if (tap) { tap = 0; uint8_t status = 0; getStatusSingleTapDetection(&status); if (status) { if (count % 2 == 0){ digitalWrite(12, HIGH); //pornește ledul press(); count++; } else { digitalWrite(12, LOW); release(); count++; } } } int32_t accelerometre[3] = {0}; getAccelerometer(accelerometre); dacă (accelerometre[2] > 0 && (abs(accelerometre[0])>100||abs(accelerometre[1])>100) && (millis()>(chrono+200))) { int mappedX = map(accelerometre[0], -1023, 1023, -12, 12); int mappedY = map(accelerometre[1], -1023, 1023, -12, 12); int x = -1 * mappedX; int y = mappedY; move(x, y); }
Atunci trebuie Conectați telefonul mobil la placă prin Bluetooth pentru a începe să utilizați mouse-ul wireless.
Senzor meteo
Acest proiect este puțin mai complicat decât cele anterioare, deoarece Vei avea nevoie de două plăci Arduino, una Primo și una Primo Core. Acesta din urmă este responsabil pentru trimiterea unui semnal către primul, astfel încât să puteți căuta pe web temperatura unui anumit oraș. Pe lângă cele două panouri, veți avea nevoie de un CR2032 și un smartphone.
Va trebui să conectați Arduino-ul la pinii săi respectivi și să continuați să introduceți aceste coduri în IDE:
#include #include #include BLESerial bleSerial = BLESerial(); char ssid[] = "cclIT"; char pass[] = "ht34!eG$"; int keyIndex = 0; int count; charmemory[5]; char fahrenheit[4]; char celsius[4]; bool flag = false; int status = WL_IDLE_STATUS; char server[] = "www.nytimes.com"; WiFiClient client; void setup() { setLocalName("WeatherFinder"); pinMode(BLE_LED, OUTPUT); begin(115200); begin(); memory[4] = '\0'; fahrenheit[3] = '\0'; celsius[3] = '\0'; } void loop() { poll(); if (bleSerial && Serial) { int byte; dacă ((byte = bleSerial.read()) > 0) { dacă (WiFi.status() == WL_NO_WIFI_MODULE_COMM) { println("Comunicarea cu modulul WiFi nu a fost stabilită."); } while (status != WL_CONNECTED) { print("Se încearcă conectarea la SSID: "); println(ssid); status = WiFi.begin(ssid, pass); delay(10000); } println("Conectare la wifi"); println("\nSe pornește conexiunea la server..."); dacă (client.connect(server, 80)) { println("conectat la server"); println("GET /gst/weather.html?detail=Cagliari--IY HTTP/1.1"); println("Gazdă: www.nytimes.com"); println("Conexiune: închisă"); println(); } flag = true; } } while (flag) { while (client.available()) { char c = client.read(); if (c == 176 && count < 2) { if (count == 0) { fahrenheit[0] = memory[0]; fahrenheit[1] = memory[1]; fahrenheit[2] = memory[2]; } else { celsius[0] = memory[0]; celsius[1] = memory[1]; celsius[2] = memory[2]; } count++; } memory[0] = memory[1]; memory[1] = memory[2]; memory[2] = memory[3]; memory[3] = c; } if (!client.connected()) { println(); println("se deconectează de la server."); if (fahrenheit[1] == 62){ fahrenheit[1] = 32; fahrenheit[0] = 32; } altfel dacă (fahrenheit[0] == 62){ fahrenheit[0] = 32; } dacă (celsius[1] == 40){ celsius[1] = 32; celsius[0] = 32; } altfel dacă (celsius[0] == 40){ celsius[0] = 32; } print("Temperatura în fahrenheit: "); print(fahrenheit); println("°"); print("Temperatura în celsius: "); print(celsius); println("°"); stop(); write(celsius); flag = false; } } dacă (bleSerial.status() == PUBLICITATE) { digitalWrite(BLE_LED, LOW); delay(200); digitalWrite(BLE_LED, HIGH); delay(200); } altfel digitalWrite(BLE_LED, HIGH); }


















