
Jeśli szukasz Płyta Arduino który łączy się z Internetem przez WiFi, wykorzystaj technologię Bluetooth i NFC, następnie model Pierwszy Idealnie nadaje się do Twoich projektów.
Jest to możliwe dzięki wysokiej jakości łączności i innym komponentom, które znacząco poprawiają jego funkcjonalność.Jednym z takich elementów jest zestaw MCU które służą do utrzymania dobrego połączenia.
Jeśli chcesz wiedzieć, jak pracować z Płytka Arduino PrimoBędziesz musiał czytać dalej. Pokażemy Ci listę najlepszych pomysłów że możesz to zrobić sam.
Czym są płytki Arduino Primo i do czego służą te sprzętowe płytki typu open source?
La Płytka Arduino Primo Jest to model opracowany w Stanach Zjednoczonych i wprowadzony na rynek w 2016 roku. Posiada 32-bitową architekturę kontrolerów, 14 pinów dla wejścia i wyjścia cyfrowego oraz 6 dla wejść analogowych..
można tworzyć szeroką gamę projektów, szczególnie te, które zawierają baterięponieważ oferuje odbiornik i nadajnik podczerwieni oraz ładowarkę akumulatora. Zawiera również kartę sieciową. Wi-Fi i Bluetooth, więc może być praca w IoT.
Jakie są szczególne cechy płytek deweloperskich Arduino Primo?
Najbardziej wyjątkowe cechy, jakie można znaleźć na płytce Arduino Primo, to:
- Talerz ma rozmiar 7,62 5,08 cm x. i waży 85 gramów.
- Można się z nim połączyć WiFi, przez Bluetooth i poprzez technologię komunikacji bliskiego zasięgu NFC.
- Posiada 3 mikrokontrolerynRF52832, STM32f103 i ESP8266. Działają one jako główne mikrokontrolery płytki, odpowiednio do debugowania programu i łączności Wi-Fi.
- Jest właścicielem 14 piny cyfrowe piny wejściowe i wyjściowe, z których 12 można wykorzystać jako znaczniki impulsów lub PWM. Posiada również 6 pinów wejściowych analogowych.
- Posiada złącze MicroUSB, z anteną do NFC, brzęczyk oraz przyciski resetowania i zasilania.
- Też ma ładowarka akumulatorów z rezonatorem 64 MHz.
- Napięcie, przy którym działa, wynosi 3VDlatego trzeba być ostrożnym nie spalać komponentów.
- Pracuj z Protokół Wi-Fi 11bgn en 2.4 GHz częstotliwości.
Ulepszona łączność: Jak najlepiej wykorzystać tę funkcję Arduino Primo?
Aby lepiej wykorzystać łączność oferowaną przez płytkę Arduino Primo Będziesz musiał dodać płytę Arduino NRF52 Core w środowisku IDE.
Można to zrobić, przechodząc do sekcji Narzędzia, następnie wybierając Tablice, a na koniec Menedżera tablic:
- Następnie otworzy się nowe okno, w którym Będziesz musiał wybrać rdzeń NRF52.
- Należy pamiętać, że jeśli pracujesz na komputerze z systemem operacyjnym W systemach Windows i MacOS nie ma potrzeby instalowania sterownikówJeśli jednak używasz Linux będziesz musiał uruchom skrypt Znajdziesz to na oficjalnej stronie internetowej Arduino.
https://www.arduino.cc/en/Sh/Txt - Po tym będziesz musiał dodaj port szeregowyAby to zrobić, musisz się zalogować IDE i kliknij Narzędzia a potem w Menu portu szeregowego, gdzie znajdziesz nazwę portu, do którego podłączona jest Twoja płyta.
- Po przesłaniu środowiska (po kliknięciu na Program a potem w przesłać), będziesz potrzebować Połącz się z Internetem przez Wi-FiMożesz to zrobić, włączając kartę sieciową, a następnie otwierając menu Sieć na komputerze. Znajdziesz je bardzo łatwo. SSID, ponieważ nosi taką nazwę Arduino.
- W przeglądarce należy wpisać adres
http://192.168.240.1/Aby uzyskać dostęp do opcji konfiguracji płyty głównej, należy przejść do menu. połączenie Będziesz musiał wprowadzić hasło Wi-Fi, a następnie stuknąć POŁĄCZYĆ. - Wreszcie, Wyświetli się adres IP Arduino.W związku z tym należy zmienić status w panelu ustawień na PRZEŁĄCZ NA TRYB STADzięki temu możesz uzyskać lepszą łączność.
Lista pomysłów na projekty, które możesz zrealizować, wykorzystując płytki Arduino Primo
Poniżej znajdziesz listę najlepszych projektów, które możesz zrealizować samodzielnie przy użyciu Arduino Primo:
Monitor pracy serca
Będziesz mógł utwórz za pomocą płytki Arduino Primoczujnik tętna dla uzyskać informacje o tętnie oraz niezbędne kable do podłączenia. Pierwszą rzeczą, którą należy zrobić, to podłączyć zasilanie czujnika do 3.3 V; następnie GND do GND płytki i sygnał do kanału A0.
Następnie należy wprowadzić następujące kody programowania:
#włączać #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("Urządzenie Bluetooth aktywne, oczekiwanie na połączenia..."); } void loop() { BLECentral central = blePeripheral.central(); if (central) { print("Połączono z centralą: "); println(central.address()); //włącz diodę 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("Rozłączono z 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; dla (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 wynosi: "); //Serial.println(heartRate); }
Sterowanie myszą za pomocą urządzenia mobilnego w odtwarzaczu multimedialnym
Będziesz potrzebować baterii guzikowej typu CR2032, talerz Arduino Primo Core i telefon komórkowy z Bluetooth aktywowany.
Pracując w środowisku IDE, nie potrzebujesz żadnej płytki drukowanej, wystarczy, że wpiszesz bezpośrednio poniższe kody:
#włączać #włączać #włączać #włączać #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("Urządzenie peryferyjne BLE HID — czyszczenie danych wiązań")); clearBondStoreData(); setReportIdOffset(1); setLocalName("Mysz z rdzeniem Arduino"); 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("Połączono z 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); //włącz diodę LED press(); count++; } else { digitalWrite(12, LOW); release(); count++; } } } int32_t accelerometers[3] = {0}; pobierzAkcelerometr(akcelerometry); jeśli (akcelerometry[2] > 0 && (abs(akcelerometry[0])>100||abs(akcelerometry[1])>100) && (millis()>(chrono+200))) { int mappedX = mapa (akcelerometry[0], -1023, 1023, -12, 12); int mappedY = mapa (akcelerometry[1], -1023, 1023, -12, 12); int x = -1 * mappedX; int y = mappedY; move(x, y); }
Więc musisz Podłącz swój telefon komórkowy do płytki przez Bluetooth aby rozpocząć korzystanie z myszy bezprzewodowej.
Czujnik pogody
Ten projekt jest nieco bardziej skomplikowany niż poprzednie, ponieważ Potrzebne będą dwie płytki Arduino: jedna Primo i jedna Primo Core. Ten drugi odpowiada za wysyłanie sygnału do tego pierwszego, dzięki czemu można przeszukać sieć pod kątem temperatury w konkretnym mieście. Oprócz dwóch paneli potrzebne będą CR2032 i smartfon.
Będziesz musiał podłączyć Arduino do odpowiednich pinów i kontynuować wpisywanie tych kodów w IDE:
#włączać #włączać #włączać BLESerial bleSerial = BLESerial(); char ssid[] = "cclIT"; char pass[] = "ht34!eG$"; int keyIndex = 0; int count; charmemory[5]; char fahrenheit[4]; char celsius[4]; bool flaga = false; int status = WL_IDLE_STATUS; char server[] = "www.nytimes.com"; WiFiClient klient; 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("Nie nawiązano komunikacji z modułem WiFi."); } while (status != WL_CONNECTED) { print("Próba połączenia z SSID: "); println(ssid); status = WiFi.begin(ssid, pass); delay(10000); } println("Połączono z siecią Wi-Fi"); println("\nRozpoczynanie połączenia z serwerem..."); if (client.connect(server, 80)) { println("Połączono z serwerem"); println("GET /gst/weather.html?detail=Cagliari--IY HTTP/1.1"); println("Host: www.nytimes.com"); println("Połączenie: zamknięte"); println(); } flaga = prawda; } } while (flaga) { while (client.available()) { char c = client.read(); if (c == 176 && count < 2) { if (count == 0) { fahrenheit[0] = pamięć[0]; fahrenheit[1] = pamięć[1]; fahrenheit[2] = pamięć[2]; } else { celsjusz[0] = pamięć[0]; celsjusz[1] = pamięć[1]; celsjusz[2] = pamięć[2]; } count++; } pamięć[0] = pamięć[1]; pamięć[1] = pamięć[2]; pamięć[2] = pamięć[3]; pamięć[3] = c; } if (!client.connected()) { println(); println("Rozłączanie z serwerem."); jeśli (fahrenheit[1] == 62){ fahrenheit[1] = 32; fahrenheit[0] = 32; } w przeciwnym razie jeśli (fahrenheit[0] == 62){ fahrenheit[0] = 32; } jeśli (celsius[1] == 40){ celsius[1] = 32; celsius[0] = 32; } w przeciwnym razie jeśli (celsius[0] == 40){ celsius[0] = 32; } print("Temperatura w stopniach Fahrenheita: "); print(fahrenheit); println("°"); print("Temperatura w stopniach Celsjusza: "); print(celsius); println("°"); stop(); write(celsius); flaga = fałsz; } } if (bleSerial.status() == REKLAMA) { digitalWrite(BLE_LED, NISKI); opóźnienie(200); digitalWrite(BLE_LED, WYSOKI); opóźnienie(200); } else digitalWrite(BLE_LED, WYSOKI); }


















