smallbasicでmqttでsubscribe
概要
smallbasicでsangoにesp8266からmqttのsubscribeしてみた。
mqttはスクラッチした。
写真
画面
サンプルコード
c = Text.GetCharacter(34)
n = Text.GetCharacter(13) + Text.GetCharacter(10)
button0 = Controls.AddButton("open", 30, 20)
button1 = Controls.AddButton("gmr", 90, 20)
button2 = Controls.AddButton("cwjap", 150, 20)
button3 = Controls.AddButton("cipmux", 210, 20)
button4 = Controls.AddButton("start", 30, 80)
button5 = Controls.AddButton("cifsr", 90, 80)
button6 = Controls.AddButton("loop", 150, 80)
button7 = Controls.AddButton("status", 210, 80)
Controls.ButtonClicked = OnButtonClicked
mtextbox0 = Controls.AddMultiLineTextBox(10, 150)
Controls.SetSize(mtextbox0, 300, 200)
Controls.SetTextBoxText(mtextbox0, "send" + n)
mtextbox1 = Controls.AddMultiLineTextBox(320, 30)
Controls.SetSize(mtextbox1, 300, 400)
Controls.SetTextBoxText(mtextbox1, "recv" + n)
Sub OnButtonClicked
button = Controls.LastClickedButton
If (button = button0) Then
class1.OpenPort("COM5", 115200)
class1.SetHandshake("n")
text = Controls.GetTextBoxText(mtextbox0)
Controls.SetTextBoxText(mtextbox0, text + ">open" + n)
ElseIf (button = button1) Then
class1.TXString("AT+GMR" + n)
text = Controls.GetTextBoxText(mtextbox0)
Controls.SetTextBoxText(mtextbox0, text + ">gmr" + n)
Program.Delay(100)
s = Class1.RXAll()
if s <> "" then
text = Controls.GetTextBoxText(mtextbox1) + "@"
Controls.SetTextBoxText(mtextbox1, text + s + n)
EndIf
ElseIf (button = button2) Then
class1.TXString("AT+CWJAP=" + c +"free-spot" + c + "," + c + c + n)
text = Controls.GetTextBoxText(mtextbox0)
Controls.SetTextBoxText(mtextbox0, text + ">cwjap" + n)
Program.Delay(3000)
s = Class1.RXAll()
if s <> "" then
text = Controls.GetTextBoxText(mtextbox1) + "@"
Controls.SetTextBoxText(mtextbox1, text + s + n)
EndIf
ElseIf (button = button3) Then
class1.TXString("AT+CIPMUX=0" + n)
text = Controls.GetTextBoxText(mtextbox0)
Controls.SetTextBoxText(mtextbox0, text + ">cipmux" + n)
Program.Delay(100)
s = Class1.RXAll()
if s <> "" then
text = Controls.GetTextBoxText(mtextbox1) + "@"
Controls.SetTextBoxText(mtextbox1, text + s + n)
EndIf
ElseIf (button = button4) Then
class1.TXString("AT+CIPSTART=" + c + "TCP" + c + "," + c + "lite.mqtt.shiguredo.jp" + c + ",1883" + n)
text = Controls.GetTextBoxText(mtextbox0)
Controls.SetTextBoxText(mtextbox0, text + ">start" + n)
Program.Delay(1000)
s = Class1.RXAll()
if s <> "" then
text = Controls.GetTextBoxText(mtextbox1) + "@"
Controls.SetTextBoxText(mtextbox1, text + s + n)
EndIf
class1.TXString("AT+CIPSEND=52" + n)
text = Controls.GetTextBoxText(mtextbox0)
Controls.SetTextBoxText(mtextbox0, text + ">auth" + n)
Program.Delay(1000)
s = Class1.RXAll()
if s <> "" then
text = Controls.GetTextBoxText(mtextbox1) + "@"
Controls.SetTextBoxText(mtextbox1, text + s + n)
EndIf
buf = ""
buf = buf + Text.GetCharacter(16)
buf = buf + Text.GetCharacter(50)
buf = buf + Text.GetCharacter(0)
buf = buf + Text.GetCharacter(4) + "MQTT"
buf = buf + Text.GetCharacter(4)
class1.TXString(buf)
class1.TXByte(194)
buf = ""
buf = buf + Text.GetCharacter(0)
buf = buf + Text.GetCharacter(60)
buf = buf + Text.GetCharacter(0)
buf = buf + Text.GetCharacter(4) + "papa"
buf = buf + Text.GetCharacter(0)
buf = buf + Text.GetCharacter(14) + "ohisama@github"
buf = buf + Text.GetCharacter(0)
buf = buf + Text.GetCharacter(16) + "@@@@@@@@@@@@@@@@@@"
class1.TXString(buf)
text = Controls.GetTextBoxText(mtextbox0)
Controls.SetTextBoxText(mtextbox0, text + ">" + n)
Program.Delay(1000)
s = Class1.RXAll()
if s <> "" then
text = Controls.GetTextBoxText(mtextbox1) + "@"
Controls.SetTextBoxText(mtextbox1, text + s + n)
EndIf
class1.TXString("AT+CIPSEND=27" + n)
text = Controls.GetTextBoxText(mtextbox0)
Controls.SetTextBoxText(mtextbox0, text + ">sub" + n)
Program.Delay(1000)
s = Class1.RXAll()
if s <> "" then
text = Controls.GetTextBoxText(mtextbox1) + "@"
Controls.SetTextBoxText(mtextbox1, text + s + n)
EndIf
class1.TXByte(130)
buf = ""
buf = buf + Text.GetCharacter(25)
buf = buf + Text.GetCharacter(0)
buf = buf + Text.GetCharacter(1)
buf = buf + Text.GetCharacter(0)
buf = buf + Text.GetCharacter(20) + "ohisama@github/test0"
buf = buf + Text.GetCharacter(0)
class1.TXString(buf)
text = Controls.GetTextBoxText(mtextbox0)
Controls.SetTextBoxText(mtextbox0, text + ">" + n)
Program.Delay(1000)
s = Class1.RXAll()
if s <> "" then
text = Controls.GetTextBoxText(mtextbox1) + "@"
Controls.SetTextBoxText(mtextbox1, text + s + n)
EndIf
ElseIf (button = button6) Then
While "True"
class1.TXString("AT+CIPSEND=2" + n)
text = Controls.GetTextBoxText(mtextbox0)
Controls.SetTextBoxText(mtextbox0, text + ">ping" + n)
Program.Delay(1000)
class1.TXByte(192)
class1.TXByte(0)
Program.Delay(29000)
s = Class1.RXAll()
if s <> "" then
text = Controls.GetTextBoxText(mtextbox1) + "@"
Controls.SetTextBoxText(mtextbox1, text + s + n)
TextWindow.WriteLine(s)
EndIf
EndWhile
ElseIf (button = button5) Then
class1.TXString("AT+CIFSR" + n)
text = Controls.GetTextBoxText(mtextbox0)
Controls.SetTextBoxText(mtextbox0, text + ">cifsr" + n)
Program.Delay(1000)
s = Class1.RXAll()
if s <> "" then
text = Controls.GetTextBoxText(mtextbox1) + "@"
Controls.SetTextBoxText(mtextbox1, text + s + n)
EndIf
ElseIf (button = button7) Then
class1.TXString("AT+CIPSTATUS" + n)
text = Controls.GetTextBoxText(mtextbox0)
Controls.SetTextBoxText(mtextbox0, text + ">status" + n)
Program.Delay(1000)
s = Class1.RXAll()
if s <> "" then
text = Controls.GetTextBoxText(mtextbox1) + "@"
Controls.SetTextBoxText(mtextbox1, text + s + n)
EndIf
EndIf
EndSub
Author And Source
この問題について(smallbasicでmqttでsubscribe), 我々は、より多くの情報をここで見つけました https://qiita.com/ohisama@github/items/fdc89be8937b558d68b0著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .