国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

uniapp微信小程序藍(lán)牙連接與設(shè)備數(shù)據(jù)對(duì)接

這篇具有很好參考價(jià)值的文章主要介紹了uniapp微信小程序藍(lán)牙連接與設(shè)備數(shù)據(jù)對(duì)接。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

藍(lán)牙連接并通信方法封裝大致步驟。

  1. 初始化藍(lán)牙并搜索;
  2. 獲取并啟用service服務(wù);
  3. 數(shù)據(jù)讀取和監(jiān)聽(tīng)設(shè)備返回?cái)?shù)據(jù)
需要使用uniapp官方提供api:
// 關(guān)閉藍(lán)牙
uni.closeBluetoothAdapter({})
// 打開(kāi)藍(lán)牙
uni.openBluetoothAdapter({})
// 搜索附近的藍(lán)牙
uni.startBluetoothDevicesDiscovery({})
// 停止搜索
uni.stopBluetoothDevicesDiscovery({})
// 連接低功耗BLE藍(lán)牙
uni.createBLEConnection({})
// 獲取藍(lán)牙設(shè)備所有服務(wù)(service)
uni.getBLEDeviceServices({})
// 獲取藍(lán)牙特征值
uni.getBLEDeviceCharacteristics({})
// 啟用低功耗藍(lán)牙設(shè)備特征值變化時(shí)的 notify 功能,訂閱特征值
uni.notifyBLECharacteristicValueChange({})
// 監(jiān)聽(tīng)低功耗藍(lán)牙設(shè)備的特征值變化事件
uni.onBLECharacteristicValueChange({})
// 讀取低功耗藍(lán)牙設(shè)備的特征值的二進(jìn)制數(shù)據(jù)值
uni.readBLECharacteristicValue({})

1、開(kāi)啟藍(lán)牙適配器初始化藍(lán)牙模塊,獲取手機(jī)藍(lán)牙是否打開(kāi)

const getBluetoothState = () => {
	return new Promise((resolve, reject) => {
		uni.openBluetoothAdapter({
			mode: 'central', // 主機(jī)模式
			success: (r) => {
				console.log("藍(lán)牙初始化成功");
				// 獲取藍(lán)牙的匹配狀態(tài)
				uni.getBluetoothAdapterState({
					success: function(row) {
						console.log('藍(lán)牙狀態(tài):', row.available);
						if (row.available) {
							// 藍(lán)牙連接成功,開(kāi)啟藍(lán)牙設(shè)備搜索
							resolve();
						} else {
							// 請(qǐng)開(kāi)啟藍(lán)牙
							uni.showToast({
								title: "請(qǐng)開(kāi)啟藍(lán)牙",
								icon: 'none',
								duration: 2000
							});
							reject();
						}
					},
					fail: function(err) {
						// 請(qǐng)開(kāi)啟藍(lán)牙
						uni.showToast({
							title: "請(qǐng)開(kāi)啟藍(lán)牙",
							icon: 'none',
							duration: 2000
						});
						reject();
					}
				})
			},
			fail: () => {
				// 請(qǐng)開(kāi)啟藍(lán)牙
				uni.showToast({
					title: "請(qǐng)開(kāi)啟藍(lán)牙",
					icon: 'none',
					duration: 2000
				});
				reject();
			}
		});
	});
}

2、開(kāi)啟藍(lán)牙設(shè)備搜索

const discoveryBluetooth = () => {
	return new Promise((resolve) => {
		uni.startBluetoothDevicesDiscovery({
			success(res) {
				uni.showLoading({
	                title: "正在搜索設(shè)備",
	                icon:"none",
	                duration: 2000
	            });
				console.log('搜索藍(lán)牙外圍設(shè)備完成', res)
				setTimeout(() => {
					// 監(jiān)聽(tīng)尋找到的藍(lán)牙設(shè)備
					resolve();
				}, 2000);
			}
		});
	});
}

3、獲取搜索到的設(shè)備信息

const getBluetoothDevices = () => {
	return new Promise((resolve, reject) => {
		uni.getBluetoothDevices({
			success(res) {
				// 過(guò)濾掉name為空或者未知設(shè)備的設(shè)備
				let devices = res.devices.filter(function(obj) {
					return obj.name !== "" && obj.name !== "未知設(shè)備"
				});
				devices && devices.forEach(item => {
					// 獲取指定連接deviceId
					if(item.name && item.name.substring(0, 5) === 'aaaa-'){
						// aaaa-*********藍(lán)牙設(shè)備型號(hào),根據(jù)需求選擇設(shè)備型號(hào)
						// item.deviceId;
					}
				});
			},
			fail: function() {
				console.log('搜索藍(lán)牙設(shè)備失敗');
				reject();
			},
			complete: function() {
				console.log("藍(lán)牙搜索完成");
				resolve();
			}
		});
	});
}

4、關(guān)閉藍(lán)牙搜索

const stopDiscoveryBluetooth = () => {
	uni.stopBluetoothDevicesDiscovery({
		success(r) {
			console.log("停止搜索藍(lán)牙設(shè)備", r);
		}
	});
};

5、連接藍(lán)牙

const connectBluetooth = () => {
	return new Promise((resolve, reject) => {
		uni.createBLEConnection({
			deviceId: deviceId, // 設(shè)備id
			success() {
				// 藍(lán)牙連接成功后關(guān)閉藍(lán)牙搜索并獲取服務(wù)id
				stopDiscoveryBluetooth();
				resolve();
				// 獲取服務(wù)id
				getServiceId();
			},
			fail() {
				console.log("藍(lán)牙連接失敗");
				reject();
			}
		});
	});
};

6、獲取服務(wù)id

const getServiceId = () => {
	uni.getBLEDeviceServices({
		deviceId: deviceId,
		success(res) {
			console.log("獲取服務(wù)Id", res)
			// serviceId固定,獲取藍(lán)牙設(shè)備某個(gè)服務(wù)中的所有特征值【讀寫(xiě)屬性】
			let model = res.services[0];
			serviceId = model.uuid;
			// 調(diào)用藍(lán)牙監(jiān)聽(tīng)和寫(xiě)入功能
			getCharacteId();
		},
		fail(err){
			console.log('獲取服務(wù)失敗', err);
		}
	})
};

7、獲取藍(lán)牙低功耗設(shè)備某個(gè)服務(wù)中所有特征

const getCharacteId = () => {
	uni.getBLEDeviceCharacteristics({
		deviceId: deviceId, // 藍(lán)牙設(shè)備id
		serviceId: serviceId, // 藍(lán)牙服務(wù)UUID
		success(res) {
			console.log('數(shù)據(jù)監(jiān)聽(tīng)', res);
			res.characteristics.forEach(item => {
				// 003
				if (item.properties.notify === true) {
					// 監(jiān)聽(tīng)
					notify = item.uuid;
				}
				// 002
				if (item.properties.write === true) {
					// 寫(xiě)入
					let writeId = item.uuid;
				}
			});
		},
		fail(err) {
			console.log("數(shù)據(jù)監(jiān)聽(tīng)失敗", err)
		}
	})
};

8、監(jiān)聽(tīng)設(shè)備返回?cái)?shù)據(jù),啟用低功耗藍(lán)牙設(shè)備特征值變化時(shí)的notify功能

const startNotice = () => {
	uni.notifyBLECharacteristicValueChange({
		characteristicId: notify,
		deviceId: deviceId,
		serviceId: serviceId,
		state: true,
		success(res) {
			// 監(jiān)聽(tīng)低功耗藍(lán)牙設(shè)備的特征值變化
			uni.onBLECharacteristicValueChange(result => {
				console.log("監(jiān)聽(tīng)低功耗藍(lán)牙設(shè)備的特征值變化", result);
				if (result.value) {
					console.log('設(shè)備返回?cái)?shù)據(jù)', result.value)
				}
			})
		}
	});
};

9、向藍(lán)牙設(shè)備發(fā)送數(shù)據(jù)文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-758478.html

const writeData = (buffer) => {
	return new Promise((resolve, reject) => {
		uni.writeBLECharacteristicValue({
			characteristicId: uni.getStorageSync("writeId"),
			deviceId: deviceId,
			serviceId: serviceId,
			value: buffer,
			success(res) {
				console.log("writeBLECharacteristicValue success", res);
				resolve();
			},
			fail(err) {
				console.log("報(bào)錯(cuò)了", err);
				reject();
			}
		});
	});
};
封裝完整方法:
import { TextDecoder } from 'text-encoding-utf-8';
let bluetoothOpen = false; // 手機(jī)藍(lán)牙是否打開(kāi)
let bluetoothConnect = false; // 設(shè)備和藍(lán)牙是否連接
let isHaveDevice = false; // 是否查找到設(shè)備
let deviceId = null; // 設(shè)備id
let serviceId = null; // 服務(wù)id
let notify = null; // 監(jiān)聽(tīng)uuid
let writeId = null; // 寫(xiě)入uuid
/**
 * 獲取手機(jī)藍(lán)牙是否打開(kāi)
 */
const getBluetoothState = () => {
	// 主機(jī)模式
	return new Promise((resolve, reject) => {
		uni.openBluetoothAdapter({
			mode: 'central',
			success: (r) => {
				console.log("藍(lán)牙初始化成功");
				// 獲取藍(lán)牙的匹配狀態(tài)
				uni.getBluetoothAdapterState({
					success: function(row) {
						console.log('藍(lán)牙狀態(tài):', row.available);
						if (row.available) {
							bluetoothOpen = true;
							resolve();
						} else {
							// 請(qǐng)開(kāi)啟藍(lán)牙
							bluetoothOpen = false;
							bluetoothConnect = false;
							reject();
						}
					},
					fail: function(err) {
						// 請(qǐng)開(kāi)啟藍(lán)牙
						bluetoothOpen = false;
						bluetoothConnect = false;
						reject();
					}
				})
			},
			fail: () => {
				// 請(qǐng)開(kāi)啟藍(lán)牙
				bluetoothOpen = false;
				bluetoothConnect = false;
				reject();
			}
		});
	});
};
/**
 * 開(kāi)始搜索藍(lán)牙設(shè)備
 */
const discoveryBluetooth = () => {
	return new Promise((resolve) => {
		uni.startBluetoothDevicesDiscovery({
			success(res) {
				console.log('搜索藍(lán)牙外圍設(shè)備完成', res)
				setTimeout(() => {
					resolve();
				}, 2000);
			}
		});
	})
};
// 關(guān)閉藍(lán)牙搜索
const stopDiscoveryBluetooth = () => {
	uni.stopBluetoothDevicesDiscovery({
		success(r) {
			console.log("停止搜索藍(lán)牙設(shè)備", r);
		}
	});
};
/**
 * 獲取搜索到的設(shè)備信息
 */
const getBluetoothDevices = () => {
	return new Promise((resolve, reject) => {
		uni.getBluetoothDevices({
			success(res) {
				bluetoothConnect = false;
				// 過(guò)濾掉name為空或者未知設(shè)備的設(shè)備
				let devices = res.devices.filter(function(obj) {
					return obj.name !== "" && obj.name !== "未知設(shè)備"
				});
				devices && devices.forEach(item => {
					if(item.name && item.name.substring(0, 5) === 'aaaa-'){
						deviceId = item.deviceId;
					}
				});
			},
			fail: function() {
				console.log('搜索藍(lán)牙設(shè)備失敗');
				bluetoothConnect = false;
				reject();
			},
			complete: function() {
				console.log("藍(lán)牙搜索完成");
				// 是否具有當(dāng)前設(shè)備
				if (deviceId) {
					isHaveDevice = true;
				} else {
					isHaveDevice = false;
				}
				resolve(isHaveDevice);
			}
		});
	});
}
/**
 * 連接藍(lán)牙
 * deviceId 藍(lán)牙設(shè)備id
 */
const connectBluetooth = () => {
	return new Promise((resolve, reject) => {
		uni.createBLEConnection({
			deviceId: deviceId, // 設(shè)備id
			success() {
				bluetoothConnect = true;
				// 藍(lán)牙連接成功后關(guān)閉藍(lán)牙搜索
				stopDiscoveryBluetooth();
				resolve();
				// 獲取服務(wù)id
				getServiceId();
			},
			fail() {
				bluetoothConnect = false;
				console.log("藍(lán)牙連接失敗");
				reject();
			}
		});
	});
};
// 獲取服務(wù)id
const getServiceId = () => {
	uni.getBLEDeviceServices({
		deviceId: deviceId,
		success(res) {
			console.log("獲取服務(wù)Id", res)
			let model = res.services[0];
			serviceId = model.uuid;
			// 調(diào)用藍(lán)牙監(jiān)聽(tīng)和寫(xiě)入功能
			getCharacteId();
		}
	})
};
// 獲取藍(lán)牙低功耗設(shè)備某個(gè)服務(wù)中所有特征
const getCharacteId = () => {
	uni.getBLEDeviceCharacteristics({
		deviceId: deviceId, // 藍(lán)牙設(shè)備id
		serviceId: serviceId, // 藍(lán)牙服務(wù)UUID
		success(res) {
			console.log('數(shù)據(jù)監(jiān)聽(tīng)', res);
			res.characteristics.forEach(item => {
				// 003
				if (item.properties.notify === true) {
					// 監(jiān)聽(tīng)
					notify = item.uuid;
					startNotice();
				}
				// 002
				if (item.properties.write === true) {
					// 寫(xiě)入
					let writeId = item.uuid;
					uni.setStorageSync("writeId", item.uuid);
				}
			});
		},
		fail(err) {
			console.log("數(shù)據(jù)監(jiān)聽(tīng)失敗", err)
		}
	})
};
// 啟用低功耗藍(lán)牙設(shè)備特征值變化時(shí)的notify功能
const startNotice = () => {
	uni.notifyBLECharacteristicValueChange({
		characteristicId: notify,
		deviceId: deviceId,
		serviceId: serviceId,
		state: true,
		success(res) {
			// 監(jiān)聽(tīng)低功耗藍(lán)牙設(shè)備的特征值變化
			uni.onBLECharacteristicValueChange(result => {
				console.log("監(jiān)聽(tīng)低功耗藍(lán)牙設(shè)備的特征值變化", result);
				if (result.value) {
					let decoder = new TextDecoder('utf-8');
					let data = decoder.decode(result.value);
					console.log('帽子返回?cái)?shù)據(jù)', data)
				}
			})
		}
	});
};
// 藍(lán)牙發(fā)送數(shù)據(jù)
const writeData = (buffer) => {
	return new Promise((resolve, reject) => {
		uni.writeBLECharacteristicValue({
			characteristicId: uni.getStorageSync("writeId"),
			deviceId: deviceId,
			serviceId: serviceId,
			value: buffer,
			success(res) {
				console.log("writeBLECharacteristicValue success", res);
				resolve();
			},
			fail(err) {
				console.log("報(bào)錯(cuò)了", err);
				reject();
			}
		});
	});
};
export default {
	getBluetoothState,
	discoveryBluetooth,
	stopDiscoveryBluetooth,
	getBluetoothDevices,
	connectBluetooth,
	getServiceId,
	getCharacteId,
	startNotice,
	writeData
};
使用案例:
<template>
	<view class="device_container">
	</view>
</template>

<script>
	import bluetooth from '../bluetooth.js';
	export default {
		data() {
			return {
				bluetoothStatus: false, // 藍(lán)牙連接狀態(tài)
			}
		},
		methods: {
			// 獲取藍(lán)牙和設(shè)備是否已連接
			initBluetooth() {
				let _this = this;
				// 初始化藍(lán)牙
				bluetooth.getBluetoothState().then(() => {
					// 搜索外圍藍(lán)牙設(shè)備
					bluetooth.discoveryBluetooth().then(() => {
						this.discoveryLoading = true;
						// 獲取藍(lán)牙設(shè)備
						bluetooth.getBluetoothDevices().then((isHaveDevice) => {
							if (isHaveDevice) {
								// 搜索到指定設(shè)備,連接藍(lán)牙
								bluetooth.connectBluetooth().then(() => {
									_this.bluetoothStatus = true;
								}, () => {
									_this.bluetoothStatus = false;
								});
							} else {
								// 未搜到設(shè)備
								_this.bluetoothStatus = false;
							}
						}, () => {
							// 藍(lán)牙搜索失敗
							_this.bluetoothStatus = false;
						});
					});
				}, () => {
					// 未開(kāi)啟藍(lán)牙
					_this.bluetoothStatus = false;
				});
			},
			// 向設(shè)備發(fā)送數(shù)據(jù)
			writeBlueData() {
				let obj = {
					cmd: 3,
					freq: 430125,
					speakable: 1
				};
				let objStr = JSON.stringify(obj);
				let buffer = new ArrayBuffer(objStr.length); // 每個(gè)字符占用2個(gè)字節(jié)
				let bufView = new Uint8Array(buffer);
				for (let i = 0; i < objStr.length; i++) {
					bufView[i] = objStr.charCodeAt(i);
				}
				bluetooth.writeData(buffer);
			}
		},
		onShow() {
			// 獲取藍(lán)牙和設(shè)備連接狀態(tài)
			this.initBluetooth();
		},
	}
</script>

<style lang="scss">
	page {
		height: 100%;
	}
</style>

到了這里,關(guān)于uniapp微信小程序藍(lán)牙連接與設(shè)備數(shù)據(jù)對(duì)接的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 保姆級(jí)微信小程序?qū)铀{(lán)牙設(shè)備教程。微信小程序發(fā)送不同藍(lán)牙指令(定時(shí)發(fā)送,斷開(kāi)重連,判斷是否有藍(lán)牙權(quán)限等)

    本文是一個(gè)完整的對(duì)接設(shè)備,發(fā)送不同指令監(jiān)聽(tīng)不同返回的完整示例,可根據(jù)實(shí)際項(xiàng)目按需更改。 注: app.showModal 為在app.js中封裝的showModal方法, then(()={}) 代表用戶點(diǎn)擊 confirm ,可用 wx.showModal 代替。 公用方法 請(qǐng)求設(shè)備列表 1. 判斷是否有藍(lán)牙權(quán)限 2. 初始化藍(lán)牙 wx.openBluet

    2024年03月20日
    瀏覽(38)
  • 微信小程序 藍(lán)牙設(shè)備連接,控制開(kāi)關(guān)燈

    微信小程序 藍(lán)牙設(shè)備連接,控制開(kāi)關(guān)燈

    微信小程序中連接藍(lán)牙設(shè)備,信息寫(xiě)入流程 1 、檢測(cè)當(dāng)前使用設(shè)備(如自己的手機(jī))是否支持藍(lán)牙/藍(lán)牙開(kāi)啟狀態(tài) wx:openBluetoothAdapter({}) 2 、如藍(lán)牙已開(kāi)啟狀態(tài),檢查藍(lán)牙適配器的狀態(tài) wx.getBluetoothAdapterState({}) 3 、添加監(jiān)聽(tīng)藍(lán)牙適配器狀態(tài)變化 wx.onBluetoothAdapterStateChange({}) 4 、搜

    2024年02月12日
    瀏覽(24)
  • 微信小程序——實(shí)現(xiàn)藍(lán)牙設(shè)備搜索及連接功能

    微信小程序——實(shí)現(xiàn)藍(lán)牙設(shè)備搜索及連接功能

    ?作者簡(jiǎn)介:2022年 博客新星 第八 。熱愛(ài)國(guó)學(xué)的Java后端開(kāi)發(fā)者,修心和技術(shù)同步精進(jìn)。 ??個(gè)人主頁(yè):Java Fans的博客 ??個(gè)人信條:不遷怒,不貳過(guò)。小知識(shí),大智慧。 ??當(dāng)前專(zhuān)欄:微信小程序?qū)W習(xí)分享 ?特色專(zhuān)欄:國(guó)學(xué)周更-心性養(yǎng)成之路 ??本文內(nèi)容:微信小程序——實(shí)

    2024年02月08日
    瀏覽(26)
  • uniapp微信小程序連接藍(lán)牙打印機(jī) 打印文字、圖片

    uniapp微信小程序連接藍(lán)牙打印機(jī) 打印文字、圖片

    首先感謝幾位的文章分享 https://blog.csdn.net/guairena/article/details/127941515 https://blog.csdn.net/qq_37970097/article/details/119148707 效果圖: 使用的是 芝柯cc3 藍(lán)牙打印機(jī), 我這里沒(méi)有存儲(chǔ)藍(lán)牙設(shè)備相關(guān)信息。所以每次打印都會(huì)重新初始化并搜索設(shè)備,儲(chǔ)存相關(guān)的代碼下面也有,所以代碼部分

    2024年02月13日
    瀏覽(31)
  • 微信小程序?qū)崿F(xiàn)藍(lán)牙開(kāi)鎖、開(kāi)門(mén)、開(kāi)關(guān)、指令發(fā)送成功,但藍(lán)牙設(shè)備毫無(wú)反應(yīng)、坑

    wx聯(lián)系本人獲取源碼(開(kāi)源): MJ682517 需要從下往上閱讀,使用函數(shù)自調(diào)的方式解決 API 不能及時(shí)獲取數(shù)據(jù)的問(wèn)題,替換方案是使用定時(shí)器,但是個(gè)人覺(jué)得定時(shí)器不好,所以使用了函數(shù)自調(diào)的方式實(shí)現(xiàn)獲取不到數(shù)據(jù)的問(wèn)題。 getBluetoothDevices 方法中獲取 deviceId ; getBLEDeviceServices 方法

    2024年02月15日
    瀏覽(36)
  • 微信小程序 - 藍(lán)牙連接

    微信小程序 - 藍(lán)牙連接

    官網(wǎng)?藍(lán)牙 (Bluetooth) | 微信開(kāi)放文檔 ???????藍(lán)牙低功耗是從藍(lán)牙?4.0?起支持的協(xié)議,與經(jīng)典藍(lán)牙相比,功耗極低、傳輸速度更快,但傳輸數(shù)據(jù)量較小。常用在對(duì)續(xù)航要求較高且只需小數(shù)據(jù)量傳輸?shù)母鞣N智能電子產(chǎn)品中,比如智能穿戴設(shè)備、智能家電、傳感器等,應(yīng)用場(chǎng)景

    2024年02月05日
    瀏覽(39)
  • uniapp 微信小程序通過(guò) wx.openCustomerServiceChat對(duì)接客服。

    uniapp 微信小程序通過(guò) wx.openCustomerServiceChat對(duì)接客服。

    直接上解決方案,直接在綁定的方法中調(diào)用 wx.openCustomerServiceChat 方法即可。 需要注意的幾點(diǎn)。 hbuilder x 需升級(jí)到 3.4.3 版本以上。 使用的,微信開(kāi)發(fā)者工具中是看不到效果的, 需要打包后,在微信中掃碼查看 。(體驗(yàn)版,開(kāi)發(fā)版都行) 示例如下: 在 methods 中新建方法,將

    2024年02月16日
    瀏覽(20)
  • 微信小程序之藍(lán)牙連接全過(guò)程封裝

    1、初始化藍(lán)牙 不管是ios操作系統(tǒng)還是安卓操作系統(tǒng),第一步都需要初始化藍(lán)牙 2、獲取藍(lán)牙適配器狀態(tài) 3、ios和安卓的操作系統(tǒng)對(duì)藍(lán)牙的連接方式不同 安卓是直接對(duì)設(shè)備的macAddress進(jìn)行連接 ios需要對(duì)周邊的藍(lán)牙設(shè)備就行搜索: 4、藍(lán)牙連接 5、獲取藍(lán)牙多個(gè)service 6、開(kāi)啟notif

    2024年02月15日
    瀏覽(27)
  • Uniapp連接藍(lán)牙設(shè)備

    Uniapp連接藍(lán)牙設(shè)備

    一、效果圖 二、流程圖 三、實(shí)現(xiàn) UI

    2024年02月12日
    瀏覽(23)
  • 微信小程序通過(guò)藍(lán)牙連接ESP32控制LED燈

    微信小程序通過(guò)藍(lán)牙連接ESP32控制LED燈

    本文主要基于網(wǎng)上已有的代碼以及官方給定示例代碼進(jìn)行修改。如有不妥請(qǐng)指出,謝謝啦。 據(jù)我了解,微信小程序只能通過(guò)低功耗藍(lán)牙(BLE)進(jìn)行控制。 BLE藍(lán)牙部分設(shè)置流程(通過(guò)該程序就能讓esp32廣播藍(lán)牙,同時(shí)手機(jī)也可搜索到藍(lán)牙設(shè)備): // 獲取藍(lán)牙接收的數(shù)據(jù)與處理

    2024年02月04日
    瀏覽(41)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包