internetofthings 2020-01-29
上回书说到(以下省略100字)
说到底还是要自己写一个PC和Arduino 通信的程序,毕竟还是要集成到咱的系统上来。
c# 其实本身是有串口通信的类库的
arduino也自带软硬串行通信类库
两个类库一对话,一切就成了。
哦,我用的vb,哈哈哈
Imports System.IO.Ports Public Class Form1 Private WithEvents port As SerialPort Private Sub btnPort_Click(sender As Object, e As EventArgs) Handles btnPort.Click cbPort.Items.Clear() cbPort.Items.AddRange(SerialPort.GetPortNames()) If cbPort.Items.Count Then cbPort.Text = cbPort.Items(0) End If End Sub Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load cbPort.Items.Clear() cbPort.Items.AddRange(SerialPort.GetPortNames()) If cbPort.Items.Count Then cbPort.Text = cbPort.Items(0) End If End Sub Private Sub cbPort_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cbPort.SelectedIndexChanged If cbPort.Text = "" Then Exit Sub If Not port Is Nothing Then If port.IsOpen Then port.Close() End If port.Dispose() End If port = New SerialPort(cbPort.Text, 9600, Parity.None, 8, StopBits.One) port.Open() End Sub Private Sub port_DataReceived(sender As Object, e As SerialDataReceivedEventArgs) Handles port.DataReceived If port.IsOpen Then Dim receiveData As String = port.ReadLine() Me.Invoke(Sub() tbReceive.Text = tbReceive.Text + receiveData + vbCrLf End Sub) End If End Sub Private Sub btnSend_Click(sender As Object, e As EventArgs) Handles btnSend.Click If tbSend.Text = "" Then Exit Sub End If If port.IsOpen Then port.WriteLine(tbSend.Text) End If End Sub End Class
第三步:通过 arduino 软件选择对应的网络端口就可以进行固件更新了,不过更新的时候要注意不能将 Arduino.begin() 和 ArduinoOTA.handle() 这两个关键函数给更新掉