
Se stai cercando un scheda Arduino che si connette a Internet tramite WiFi, utilizzare la tecnologia di Bluetooth e NFC, quindi il modello Primo È ideale per i tuoi progetti.
Ciò è dovuto alla sua connettività di alta qualità e ad altri componenti che ne migliorano sostanzialmente l'operatività.Uno di questi elementi è l'insieme di MCU che vengono utilizzati per mantenere una buona connessione.
Se vuoi sapere come lavorare con un Scheda Arduino PrimoDovrai continuare a leggere. Ti mostreremo un elenco con le idee migliori che puoi fare da solo.
Che cosa sono le schede Arduino Primo e a cosa servono queste schede hardware open-source?
La Scheda Arduino Primo Si tratta di un modello sviluppato negli Stati Uniti e lanciato nel 2016. Presenta un'architettura a 32 bit nei suoi controller, 14 pin per l'ingresso e l'uscita digitali e 6 per gli ingressi analogici..
Si può creare una vasta gamma di progetti, soprattutto quelli che includono una batteriaÈ dotato di ricevitore e trasmettitore a infrarossi e di un caricabatterie. Include anche una scheda di rete. Wi-Fi e Bluetooth, quindi puoi lavorare nell'IoT.
Quali sono le caratteristiche speciali delle schede di sviluppo Arduino Primo?
Le caratteristiche più importanti che troverete su una scheda Arduino Primo sono le seguenti:
- Questo piatto ha le dimensioni di 7,62 5,08 x cm. e pesa 85 grammi.
- Può collegarsi a WiFi, attraverso Bluetooth e attraverso la tecnologia di comunicazione a corto raggio (NFC) NFC.
- Dispone di 3 microcontrolloriL'nRF52832, l'STM32f103 e l'ESP8266 fungono rispettivamente da microcontrollore principale della scheda, per il debug del programma e per la connettività Wi-Fi.
- Possiede 14 pin digitali pin di ingresso e di uscita, 12 dei quali possono essere utilizzati come marcatori di impulsi o PWM. Ha anche 6 pin di ingresso analogici.
- Ha un connettore MicroUSB, con un'antenna per NFC, un cicalino e i pulsanti di reset e accensione.
- Ha anche un caricabatterie con risonatore da 64 MHz.
- La tensione alla quale funziona è 3VPertanto bisogna stare attenti a non bruciare i componenti.
- Lavora con un Protocollo WiFi 11 miliardi en 2.4 GHz di frequenza.
Connettività migliorata: come sfruttare al meglio questa funzionalità di Arduino Primo?
Per sfruttare al meglio la connettività offerta dalla scheda Arduino Primo Dovrai aggiungere la scheda Arduino NRF52 Core nell'IDE.
È possibile farlo andando su Strumenti, quindi selezionando Bacheche e infine scegliendo Gestione bacheche:
- Si aprirà quindi una nuova finestra in cui Dovrai scegliere NRF52 Core.
- Dovresti tenere presente che se stai lavorando su un computer con un sistema operativo Sia su Windows che su MacOS non sarà necessario installare driver.Tuttavia, se usi Linux dovrai eseguire lo script Lo troverai sul sito ufficiale di Arduino.
https://www.arduino.cc/en/Sh/Txt - Dopo questo, dovrai aggiungere la porta serialePer farlo, dovrai accedere a IDE e fare clic Strumenti e poi in menu della porta seriale, dove troverai il nome della porta a cui è collegata la tua scheda.
- Dopo aver caricato l'ambiente (facendo clic su PROGRAMMA e poi in Caricare), avrai bisogno Connettiti a Internet tramite Wi-FiPuoi farlo attivando la scheda di rete e accedendo al menu Rete del tuo computer. Lo troverai molto facilmente. SSID, poiché porta il nome cugino Arduino.
- Nel tuo browser dovrai inserire l'indirizzo
http://192.168.240.1/così puoi accedere alle opzioni di configurazione della scheda madre. Quindi, dovrai andare al menu Collegamento Dovrai inserire la password del Wi-Fi e poi toccare conectar. - Infine, Verrà visualizzato l'indirizzo IP di Arduino.Pertanto, dovrai modificare lo stato dal pannello delle impostazioni a PASSA ALLA MODALITÀ STAIn questo modo è possibile ottenere una connettività migliore.
Elenco di idee per progetti che puoi sviluppare utilizzando le schede Arduino Primo
Di seguito troverete un elenco dei migliori progetti che potete realizzare da soli con un Arduino Primo:
Cardiofrequenzimetro
Potrai creare utilizzando una scheda Arduino Primoun sensore di pulsazioni per ottenere informazioni sulla frequenza cardiaca e i cavi necessari per il collegamento. La prima cosa da fare è collegare il PWR del sensore a 3.3 V; poi il GND al GND della scheda e il segnale al canale A0.
Successivamente, dovrai inserire i seguenti codici di programmazione:
#includi #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("Dispositivo Bluetooth attivo, in attesa di connessioni..."); } void loop() { BLECentral central = blePeripheral.central(); if (central) { print("Connesso a central: "); println(central.address()); //accendi il LED 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("Disconnesso dalla centrale: "); 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("heartRate is: "); //Serial.println(heartRate); }
Controllo del mouse tramite dispositivo mobile in un lettore multimediale
Avrai bisogno di una batteria a bottone di tipo CR2032, un piatto Arduino Primo Core e un telefono cellulare con Bluetooth attivato.
Quando si lavora con un IDE, non è necessaria alcuna scheda a circuito stampato, quindi basterà inserire direttamente questi codici:
#includi #includi #includi #includi #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("Periferica BLE HID - cancellazione dei dati di bonding")); clearBondStoreData(); setReportIdOffset(1); setLocalName("Arduino Core Mouse"); 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("Connesso a 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); //accendi il LED press(); count++; } else { digitalWrite(12, LOW); release(); count++; } } } int32_t accelerometers[3] = {0}; getAccelerometer(accelerometers); if (accelerometers[2] > 0 && (abs(accelerometers[0])>100||abs(accelerometers[1])>100) && (millis()>(chrono+200))) { int mappedX = map (accelerometers[0], -1023, 1023, -12, 12); int mappedY = map (accelerometers[1], -1023, 1023, -12, 12); int x = -1 * mappedX; int y = mappedY; move(x, y); }
Allora devi Collega il tuo telefono cellulare alla scheda tramite Bluetooth. per iniziare a utilizzare il mouse wireless.
sensore meteo
Questo progetto è un po' più complicato dei precedenti, perché Avrai bisogno di due schede Arduino, una Primo e una Primo Core. Quest'ultimo è responsabile dell'invio di un segnale al primo in modo da poter cercare sul web la temperatura di una città specifica. Oltre ai due pannelli, avrai bisogno di un CR2032 e uno smartphone.
Dovrai collegare l'Arduino ai rispettivi pin e continuare a inserire questi codici nell'IDE:
#includi #includi #includi 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; if ((byte = bleSerial.read()) > 0) { if (WiFi.status() == WL_NO_WIFI_MODULE_COMM) { println("Comunicazione con il modulo WiFi non stabilita."); } while (status != WL_CONNECTED) { print("Tentativo di connessione all'SSID: "); println(ssid); status = WiFi.begin(ssid, pass); delay(10000); } println("Connesso al wifi"); println("\nAvvio connessione al server..."); if (client.connect(server, 80)) { println("connesso al server"); println("GET /gst/weather.html?detail=Cagliari--IY HTTP/1.1"); println("Host: www.nytimes.com"); println("Connessione: chiusa"); 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("disconnessione dal server."); if (fahrenheit[1] == 62){ fahrenheit[1] = 32; fahrenheit[0] = 32; } else if (fahrenheit[0] == 62){ fahrenheit[0] = 32; } if (celsius[1] == 40){ celsius[1] = 32; celsius[0] = 32; } else if (celsius[0] == 40){ celsius[0] = 32; } print("Temperatura in fahrenheit: "); print(fahrenheit); println("°"); print("Temperatura in celsius: "); print(celsius); println("°"); stop(); write(celsius); flag = false; } } if (bleSerial.status() == ADVERTISING) { digitalWrite(BLE_LED, LOW); delay(200); digitalWrite(BLE_LED, HIGH); ritardo(200); } altrimenti digitalWrite(BLE_LED, HIGH); }


















