Kao dobavljač BLE (Bluetooth Low Energy) modula, često me pitaju koji su programski jezici pogodni za razvoj sa ovim modulima. BLE tehnologija je revolucionirala način na koji se povezujemo i interakciju s uređajima, a odabir pravog programskog jezika može značajno utjecati na proces razvoja i performanse konačnog proizvoda. U ovom postu na blogu istražit ću neke od najpopularnijih programskih jezika koji se mogu koristiti za razvoj aplikacija s BLE modulima, a također ću predstaviti neke od naših BLE modula, kao što jeHM‑BT4502-STiHM‑BT4531-ST.
Python
Python je interpretirani programski jezik visokog nivoa poznat po svojoj jednostavnosti i čitljivosti. Ima veliku i aktivnu zajednicu, što znači da postoji mnogo biblioteka i okvira dostupnih za razvoj BLE-a. Jedna od najpopularnijih biblioteka za Python BLE razvoj jebleak.
bleakje višeplatformska Python biblioteka koja pruža jednostavan i lak za korištenje API za interakciju s BLE uređajima. Podržava i Windows i Linux, što ga čini raznovrsnim izborom za programere. Evo jednostavnog primjera korištenjableakza skeniranje BLE uređaja:
import asyncio from bleak import BleakScanner async def run(): uređaji = čekaju BleakScanner.discover() za d in uređaje: print(d) loop = asyncio.get_event_loop() loop.run_until_complete(run())
Ovaj kod koristibleakda skenirate BLE uređaje i ispišete njihove informacije. Python-ova jednostavnost čini ga odličnim izborom za izradu prototipa i brz razvoj. To je također dobra opcija za programere koji su novi u BLE programiranju.
JavaScript
JavaScript je široko korišten programski jezik, posebno u web razvoju. Sa pojavom Web Bluetooth API-ja, JavaScript se sada može koristiti za interakciju sa BLE uređajima direktno iz pretraživača. Ovo otvara potpuno novi svijet mogućnosti za razvoj web-baziranih BLE aplikacija.
Web Bluetooth API omogućava web programerima da pristupe BLE uređajima bez potrebe za dodatnim dodacima ili softverom. Evo jednostavnog primjera korištenja Web Bluetooth API-ja za povezivanje s BLE uređajem:
async function connectToDevice() { try { const device = await navigator.bluetooth.requestDevice({ filters: [{ services: ['battery_service'] }] }); const server = await device.gatt.connect(); const service = await server.getPrimaryService('battery_service'); const characteristic = await service.getCharacteristic('battery_level'); const value = await characteristic.readValue(); console.log('Nivo baterije:', value.getUint8(0)); } catch (error) { console.error('Error:', error); } } connectToDevice();
Ovaj kod zahtijeva pristup BLE uređaju sa uslugom baterije, povezuje se s njim i čita karakteristiku nivoa baterije. Popularnost JavaScripta i dostupnost Web Bluetooth API-ja čine ga moćnim izborom za razvoj BLE aplikacija zasnovanih na webu.
C/C++
C i C++ su programski jezici niskog nivoa koji nude visoke performanse i kontrolu. Obično se koriste u razvoju ugrađenih sistema, što ih čini prirodnim izborom za razvoj BLE modula. Mnogi proizvođači BLE modula obezbeđuju C/C++ biblioteke i SDK-ove (komplet za razvoj softvera) za svoje module.
Na primjer, Nordic Semiconductor, vodeći dobavljač BLE čipova, nudi nRF5 SDK, koji je napisan u C. nRF5 SDK pruža sveobuhvatan skup biblioteka i alata za razvoj BLE aplikacija na Nordic seriji čipova nRF5. Evo jednostavnog primjera korištenja nRF5 SDK za kreiranje BLE periferije:


#include "nrf_drv_gpiote.h" #include "ble.h" #include "ble_hci.h" #include "ble_srv_common.h" #include "ble_advdata.h" #include "ble_conn_params.h" #include "nrf_sdh.h" #include "n_sclude "n_ "nrf_ble_gatt.h" #include "nrf_ble_qwr.h" #include "nrf_pwr_mgmt.h" #define APP_BLE_CONN_CFG_TAG 1 #define APP_BLE_OBSERVER_PRIO 3 statički void i void ble_evst_evt_vble (blet_evt_h) * p_context) { // Rukovati BLE događajima ovdje } static void gap_params_init(void) { // Inicijalizirati GAP parametre } static void advertising_init(void) { // Inicijalizirati podatke o oglašavanju } static void services_init(void) { // Inicijalizirati usluge } static void conn_params { static void conn_params} void advertising_start(void) { // Pokreni oglašavanje } int main(void) { ret_code_t err_code; err_code = nrf_sdh_enable_request(); APP_ERROR_CHECK(err_code); err_code = nrf_sdh_ble_default_cfg_set(APP_BLE_CONN_CFG_TAG); APP_ERROR_CHECK(err_code); err_code = nrf_sdh_ble_enable(&m_ble_observer); APP_ERROR_CHECK(err_code); gap_params_init(); advertising_init(); services_init(); conn_params_init(); advertising_start(); for (;;) { nrf_pwr_mgmt_run(); } }
Ovaj kod inicijalizira BLE stek, postavlja GAP parametre, podatke o oglašavanju, usluge i parametre veze, a zatim počinje oglašavanje. Performanse i kontrola C/C++-a čine ih pogodnim za razvoj složenih BLE aplikacija, posebno onih koje zahtevaju obradu u realnom vremenu.
Java
Java je popularan programski jezik za razvoj Androida. Android ima ugrađenu podršku za BLE, a Java se može koristiti za razvoj Android aplikacija koje komuniciraju sa BLE uređajima. Android BLE API pruža skup klasa i metoda za otkrivanje, povezivanje i komunikaciju sa BLE uređajima.
Evo jednostavnog primjera korištenja Android BLE API-ja za skeniranje BLE uređaja:
import android.bluetooth.BluetoothAdapter; import android.bluetooth.BluetoothDevice; import android.bluetooth.BluetoothManager; import android.content.Context; import android.os.Bundle; import android.widget.Toast; import androidx.appcompat.app.AppCompatActivity; javna klasa MainActivity proširuje AppCompatActivity { privatni BluetoothAdapter mBluetoothAdapter; privatno logičko mSkeniranje; privatni BluetoothAdapter.LeScanCallback mLeScanCallback = novi BluetoothAdapter.LeScanCallback() { @Override public void onLeScan(final BluetoothDevice device, int rssi, byte[] scanRecord) { runOnUiThread(new Runnable() { @Override public { @Override() public Toast.makeText(MainActivity.this, "Pronađen uređaj: " + device.getName(), Toast.LENGTH_SHORT).show(} }); } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); finalni BluetoothManager bluetoothManager = (BluetoothManager) getSystemService(Context.BLUETOOTH_SERVICE); mBluetoothAdapter = bluetoothManager.getAdapter(); if (mBluetoothAdapter == null ||!mBluetoothAdapter.isEnabled()) { Toast.makeText(ovo, "Bluetooth nije omogućen", Toast.LENGTH_SHORT).show(); povratak; } scanLeDevice(true); } private void scanLeDevice(final boolean enable) { if (enable) { mScanning = true; mBluetoothAdapter.startLeScan(mLeScanCallback); } else { mScanning = false; mBluetoothAdapter.stopLeScan(mLeScanCallback); } } }
Ovaj kod inicijalizira Bluetooth adapter, pokreće BLE skeniranje i prikazuje tost poruku kada se pronađe uređaj. Popularnost Jave u razvoju Androida čini je prirodnim izborom za razvoj Android BLE aplikacija.
Zaključak
U zaključku, postoji nekoliko programskih jezika koji se mogu koristiti za razvoj sa BLE modulima, svaki sa svojim prednostima i slučajevima upotrebe. Python je odličan za izradu prototipa i brz razvoj, JavaScript je pogodan za web-bazirane BLE aplikacije, C/C++ nudi visoke performanse i kontrolu za ugrađene sisteme, a Java je idealna za Android BLE razvoj.
Kao dobavljač BLE modula, nudimo niz visokokvalitetnih BLE modula, kao što suHM‑BT4502-STiHM‑BT4531-ST. Ovi moduli su dizajnirani da obezbede pouzdano i efikasno BLE povezivanje za različite aplikacije.
Ako ste zainteresovani za kupovinu naših BLE modula ili imate bilo kakva pitanja o razvoju BLE-a, slobodno nas kontaktirajte za dalje diskusije i detalje nabavke.
Reference
- Python
bleakbibliotečka dokumentacija - Web Bluetooth API dokumentacija
- Nordic Semiconductor nRF5 SDK dokumentacija
- Android BLE API dokumentacija

