Jump to content

Gui in a website CGI control


Recommended Posts

Ok, I don't know if this is even possible but some help would be greatly appreciated. I've been googling like crazy and trying different things but i'm just not getting anywhere.

I'm trying to control an arduino from an Autoit script ... over the web. I have a script that is working and i have serial communication figured out. currently the script is simple and turns a couple of relays on and off. what i'd like now is to do this from a webpage. ideally a gui interface like the one i have now would be great but i've also tried using cgi to launch a script that turns on a relay (so two links one to run a script to turn on and one to turn off) but after the script runs i get an error page. I'd like to set it up where if i can't have the gui then i can click the link run the script but stay on the same page. I hope all of this is making sense.

Here is a copy of the gui script that is working:

#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_UseUpx=n
#AutoIt3Wrapper_Change2CUI=y
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
;Include the Serial UDF
#include 'CommMG.au3'
#include 
#include 
#include 
#include 
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 301, 221, 192, 124)
$Label1 = GUICtrlCreateLabel("Circuit 2", 32, 88, 42, 17)
$Label2 = GUICtrlCreateLabel("Circuit 1", 32, 32, 42, 17)
$Checkbox1 = GUICtrlCreateCheckbox("ON", 32, 56, 33, 17)
$Checkbox2 = GUICtrlCreateCheckbox("OFF", 72, 56, 41, 17)
GUICtrlSetState(-1, $GUI_CHECKED)
$Checkbox3 = GUICtrlCreateCheckbox("ON", 32, 112, 33, 17)
$Checkbox4 = GUICtrlCreateCheckbox("OFF", 72, 112, 41, 17)
GUICtrlSetState(-1, $GUI_CHECKED)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

;Internal for the Serial UDF
Global $sportSetError = ''

;COM Vars
Global $CMPort = 4 ; Port
Global $CmBoBaud = 9600 ; Baud
Global $CmboDataBits = 8 ; Data Bits
Global $CmBoParity = "none" ; Parity
Global $CmBoStop = 1 ; Stop
Global $setflow = 2 ; Flow

;Start up communication with the Arduino
_CommSetPort($CMPort, $sportSetError, $CmBoBaud, $CmboDataBits, $CmBoParity, $CmBoStop, $setflow)

While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
_commsendstring("10" & @CR)
_commsendstring("20" & @cr)
Exit
Case $Checkbox1
guictrlsetstate($Checkbox1, $GUI_CHECKED)
GUICtrlSetState($Checkbox2, $gui_unchecked)
_CommSendstring("11" & @CR)
Case $Checkbox2
GUICtrlSetState($checkbox2, $GUI_CHECKED)
GUICtrlSetState($Checkbox1, $gui_unchecked)
_CommSendString("10" & @CR)
Case $Checkbox3
guictrlsetstate($Checkbox3, $GUI_CHECKED)
GUICtrlSetState($Checkbox4, $gui_unchecked)
_CommsendString("21" & @cr)
Case $Checkbox4
guictrlsetstate($Checkbox4, $GUI_CHECKED)
GUICtrlSetState($Checkbox3, $gui_unchecked)
_commsendstring("20" & @cr)

EndSwitch
WEnd

Thank you in advance

Link to comment
Share on other sites

  • 2 weeks later...

I'm sorry you haven't had a reply to this, and I understand things up to where you said "over the web".  Anyway, had you realised that each time you make contact with the Arduino's com port it resets the Arduino? There's a good explanation of that  is your first script holding the port, so the 2nd fails?

Link to comment
Share on other sites

Ok, the script is running as written.  It launches a gui and I have an On and an Off for each relay.  If I run the script on the "web server" that has the arduino connected to it locally everything works fine.  I can turn the relays on and off without any issues. Now i need for that "gui" to run in my webpage and i'll mainly be using it locally in the house for home automation but if i can get working well internally i'll open the ports up and control things remotely.  I also have found some info on using CGI but i don't have a good understanding of it so if anyone could help with that even though this isn't that kind of forum.  I'm open to all and any suggestions.

Thanks

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...