這個專案是外接一個UNO板,並連接一個光源感測器和藍芽,用ios手機來連接藍芽並查看光源感測器的值
這是我們的主畫面,我有建立一個tableview,還有一個label,大致建立過程就不贅述了
這邊先建立一個空的陣列,用來放置掃描到的藍芽裝置
var BluetoothName: [CBPeripheral] = []
把偵測到的藍芽裝置儲存到BluetoothName裡面,每秒鐘都刷新畫面,並更新光源感測器傳過來的值
extension MainViewController: BluetoothServiceDelegate, CBPeripheralDelegate {
func getBLEPeripherals(peripherals: [CBPeripheral]) {
self.BluetoothName = peripherals
// 主線程
DispatchQueue.main.async {
self.Tview.reloadData()
}
}
func getBLEPeripheralValue(value: String) {
DispatchQueue.main.async {
self.NumberLb.text = value
print("\(value)")
}
}
}
tableview的內容,大致就是每列都是一個藍芽裝置,可以點選其中一個row,並連接藍芽
extension MainViewController: UITableViewDelegate, UITableViewDataSource{
// cellForRowAt內容的設定
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = Tview.dequeueReusableCell(withIdentifier: MainTableViewCell.indentifile, for: indexPath) as! MainTableViewCell
cell.NameLb?.text = BluetoothName[indexPath.row].name ?? "Unnamed"
return cell
}
// numberOfRowsInSection顯示的行數
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return BluetoothName.count
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let selectedPeripheral = BluetoothName[indexPath.row]
BluetoothServices.shared.connectPeripheral(peripheral: selectedPeripheral)
}
}
今天又完成一個專案囉,這次完成的是關於藍芽的,讓我學習到很多藍芽的基礎知識,並用ios手機實作出來,明天來總結一下這一個月都學習了甚麼吧~