Home  |  Contents 

Microcontroller and PC projects
  Forum Index : Microcontroller and PC projects         Section
Subject Topic: Headless MX170 controller Post ReplyPost New Topic
Page of 2 Next >>
Author
Message << Prev Topic | Next Topic >>
MikeO
Senior Member
Senior Member


Joined: 11 September 2011
Location: Australia
Online Status: Offline
Posts: 167
Posted: 22 December 2017 at 4:45pm | IP Logged Quote MikeO

Hi to all the Forum, I would like to wish you all Merry Christmas and all the best for the New Year.

I am currently just completing the a rework of my original MX170 controlled Irrigation System. It controlled 8 Zones (garden Bed watering, Greenhouse functions etc) also monitored the 10,000 ltr rainwater tank and flows. It used to have a 2.4" LCD display with menu system and has now been converted to work headless with communication via Android Phone. The communication is via wifi (ESP8266)and uses the UDP protocol.

Just wanted to know if there is interest in this method of controlling a Mite! if so I can detail this project out to the forum as it could be applied to many situations.

Original controller with display.



New controller



Android Client display.



I have also already converted my MX170 weather station data to display to a Android Tablet.

Mike








Edited by MikeO on 22 December 2017 at 4:47pm


__________________
Codenquilts


Back to Top View MikeO's Profile Search for other posts by MikeO Visit MikeO's Homepage
 
OA47
Guru
Guru
Avatar

Joined: 11 April 2012
Location: Australia
Online Status: Offline
Posts: 508
Posted: 22 December 2017 at 5:01pm | IP Logged Quote OA47

MikeO, I am very interested in seeing more of this project particularly the control from the android device.

Best Wishes for Christmas Sheders,
OA47
Back to Top View OA47's Profile Search for other posts by OA47
 
Azure
Senior Member
Senior Member
Avatar

Joined: 09 November 2017
Location: Australia
Online Status: Offline
Posts: 242
Posted: 22 December 2017 at 7:09pm | IP Logged Quote Azure

I would like details (code and schematics) of both versions.
Back to Top View Azure's Profile Search for other posts by Azure
 
retepsnikrep
Regular Member
Regular Member
Avatar

Joined: 31 December 2007
Location: United Kingdom
Online Status: Offline
Posts: 83
Posted: 22 December 2017 at 10:09pm | IP Logged Quote retepsnikrep

Very interesting especially the ESP8266 to android interface and the app..

Please post details thanks..

__________________
Check my website www.150mpg.co.uk for details of my Li-Ion Gen1 Honda Insights.
Back to Top View retepsnikrep's Profile Search for other posts by retepsnikrep Visit retepsnikrep's Homepage
 
crez
Senior Member
Senior Member


Joined: 24 October 2012
Location: Australia
Online Status: Offline
Posts: 104
Posted: 23 December 2017 at 7:28am | IP Logged Quote crez

Me too!
Back to Top View crez's Profile Search for other posts by crez
 
mikeb
Senior Member
Senior Member
Avatar

Joined: 10 April 2016
Location: Australia
Online Status: Offline
Posts: 133
Posted: 23 December 2017 at 11:06am | IP Logged Quote mikeb

Great work.
Would love to see the Android interface.
Safe, and happy, Christmas to all.
Looking forward to the new year.

Regards, Mike B.

__________________
There are 10 kinds of people in the world.
Those that understand binary and those that don't.
Back to Top View mikeb's Profile Search for other posts by mikeb
 
MikeO
Senior Member
Senior Member


Joined: 11 September 2011
Location: Australia
Online Status: Offline
Posts: 167
Posted: 23 December 2017 at 9:22pm | IP Logged Quote MikeO

Thanks for the replies, I will get all the various files together over the next week or so. Apart from the Android I have been developing and using the interface components for quite some time so they are reasonably mature and stable. I have used the i/f code for several different projects including weather station and solar/battery monitor. Both of these project have also used an Android device in monitor mode ,ie one way comms only.

I thought I should outline the concepts. All the MMbasic user programs contain a single small code interface 'hook' plus an optional sub routine for specific interface commands if required.

The code components are as shown in this table.



Communication between the ESP266 (wifi) module and the uMite is via a serial link and the ESP firmware provides UDP ,HTTP messaging and web capabilities, plus built in functions.

I have attached the ESP code to give some idea of the functions available (only a few used are used in the current project) also the Anroid B4A code.

Mike

'*** ESP8266 Micromite Wifi module
'
'**** Change log  ************
'v7.1 remove functions wifi on/off, sleep
'added MCU write command (writes data variable files to ESP8266)
'added ip,castip to info request, added fwrite for writing user variables as flash dat files
'most system variables are now restored from flash dat files 
'(Baud defaults to 19200 if dat file empty)
'v7.2 added fread command for Flash Read support
'v7.3 add ver request
'v7.4 add watchdog signal every 15secs
'v7.5 remove web: command , add messaging (same format as via UDP) receive
'v7.6 add msg: send command add ddns polling/reporting of local ip address
'v7.6 add ddns polling, add "error" to ntp response
'v7.7 add watchdog function and wifi mode
'v7.8 add wifi scan function
'v7.9 changed messaging received format to match up with udp.receive
'v8.0 add ? to mesaging header
'v8.1 chg to Request system, server reqests clients send data via HTTP GET, DDNS polling removed
'v8.3 add ability to temp change serverip address
'v8.4 restore push http messaging
'v8.5 optimise http messaging
'v8.6 add "thisIP" to UDP transmission
Cls
memclear
ver = "ESP8266-Mcu-V8.6"

'user specific variables and setup
owm.param = read("owmparam")
owm.get = read("owmget")
wu.get = read("wuget")
mprov = read("mailprov")
mport = read.val("mailport")
muser = read("mailuser")
mpw = read("mailpw")
rate = read.val("baudrate")
node = read("espnode")
port = read.val("espport")
serverip = read("serverip")

'set some defaults
if port=0 then port=5001
if node="" then node = "ESP_Test"
if serverip="" then serverip = "192.168.0.18"
gosub [getcastip]

'startup
secs=150
if mprov<>"" then setupemail mprov, mport, muser, mpw
timesetup(10,0)
if rate=0 then 
baudrate 19200
else
baudrate rate
end if
serialflush
serialtimeout 1000
serialbranch [update]
udpbegin port
udpbranch [udp.receive]
msgbranch [msg.process]
timercb 15000, [watchdog]
print ver
print "ID=" & node
print
button "Exit", [quit]
serialprintln "ESP:|ESP|IP / CastIP|" & thisip & " / " & castip & "|"
serialprintln "ESP:|ESP|start|" & ip() & "|"
wait

[getcastip]
thisip = ip()
d = instrrev(thisip,".")
castip = left(thisip,d) & "255"
return

[watchdog]
if ip()="192.168.4.1" then 
link="AP"
else
link="Sta"
end if
timenow=time("hour:min:sec")
serialprintln "ESP:|ESP|watchdog|" & link & "|" & timenow
Return


[udp.receive]
strin = udpread()
'serialprintln "debug:" & strin
if instr(strin,"Who are you?") > 0 then 
udpreply  "ID=" & node
return
end if
if instr(strin,"uMite?") > 0 then 
strin=udpremote()
gosub [parse]
thisip=ip()
remip=field
udpwrite remip,port,"uMite:|" & thisip & ":" & node
return
end if
if instr(strin,"bCast") > 0 then 
gosub [parse]
serialprint "udp.rec:" & strin
return
end if
if instr(strin,"Mcu") > 0 then 
gosub [parse]
GoSub [update2]
Return
end if
If instr(strin,node) > 0 then 
gosub [parse]
serialprint "udp.rec:" & strin
end if
Return

[update]
serialinput strin
[update2]
'serialprintln "debug:" & strin
if instr(strin,"udp.cast:") >0 then 
udpwrite castip,port,mid(strin,10)&","&timenow&","&thisip
serialprint chr$(4)
return
end if
if instr(strin,"udp.send:") >0 then 
udpwrite remip,port,mid(strin,10)&","&timenow&","&thisip
serialprint chr$(4)
return
end if
if instr(strin,"time:") >0 then gosub [gettime]
if instr(strin,"info:") >0 then gosub [getinfo]
if instr(strin,"quit:") >0 then goto [quit]
if instr(strin,"flush:") >0 then serialflush
if instr(strin,"reboot:") >0 then GoTo [reboot]
If instr(strin,"ts.send:") >0 then gosub [thingspeak]
if instr(strin,"owmw:") >0 then gosub [owmweather]
if instr(strin,"owmf:") >0 then gosub [owmforcast]
if instr(strin,"scan:") >0 then gosub [wscan]
if instr(strin,"wu.send:") >0 then gosub [wunderground]
if instr(strin,"email:") >0 then gosub [sendemail]
if instr(strin,"write:") >0 then gosub [fwrite]
if instr(strin,"read:") >0 then gosub [fread]
if instr(strin,"ip:") >0 then gosub [getip]
if instr(strin,"ver:") >0 then gosub [getver]
if instr(strin,"msgsave:") >0 then gosub [msg.save]
if instr(strin,"msgsend:") >0 then gosub [msg.send]
Return


[wscan]
n = wifi.scan()
for x = 1 to n
serialprintln "ESP:|ESP|nets|" & str(n)& "|" & str(x) & "," & wifi.ssid(x) & "," & wifi.rssi(x) & "," & wifi.bssid(x) 
delay 100
next x
serialprint chr$(4)
return

[fwrite]
gosub [parse]
gosub [parse]
serialprintln field
serialprintln strin
write(field,strin)
serialprint chr$(4)
Return

[fread]
gosub [parse]
gosub [parse]
fbla=read(field)
if fbla="" then fbla="null"
serialprintln "ESP:|ESP|" & field & "||" & fbla
serialprint chr$(4)
Return

[msg.save]
gosub [parse]
new.msg = strin
serialprint "new msg saved"
return

[msg.process]
'msg.return = "Not a valid msg received"
msg.frm = msgget("frm")
msg.cmd = msgget("cmd")
msg.cfg = msgget("cfg")
msg.str = msgget("str")
if msg.cmd="esp" then
     if msg.cfg="serverip" then 
     serverip=msg.str
     msgreturn "esp-set server ip to " & serverip
     else 
     msgreturn "esp-failed"
     end if
     
     if msg.cfg="log" then 
     msgreturn "msg?frm="& thisip & log.msg & ","&timenow
     else
     msgreturn "esp-failed"
     end if
     
     else
new.msg="OK"
serialprintln "ESP:|ESP|"& msg.cmd & "|" & msg.cfg & "|" & msg.str
msgbla = "msg?frm="& thisip & ":" & node & "&" & new.msg & ","&timenow
'serialprint msgbla
msgreturn msgbla
end if
Wait

[msg.send]
gosub [parse]
new.msg=strin
log.msg=strin
'serialprint new.msg
'new.msg="123.45,23,456,8.76,600,No,OK,234.45"
msgbla = serverip & "/msg?frm="& thisip & ":" & node & "&" & new.msg & ","&timenow
'serialprint msgbla
result = wget(msgbla)
return

[sendemail]
gosub [parse]
sstatus = field
gosub [parse]
address = field
gosub [parse]
reply = field
gosub [parse]
subject = field
body = strin
email address, reply, subject, body
serialprint chr$(4)
return

[wunderground]
gosub [parse]
wubla = wu.get & strin
'serialprintln "debug:" & wubla
result = wget(wubla)
serialprintln "ESP:|ESP|wun||" & result
serialprint chr$(4)
return

[owmweather]
owmbla = owm.get & "weather?" & owm.param
result = wget(owmbla)
let desc = json(result,"weather.description")
let temp = json(result,"main.temp")
let press = json(result,"main.pressure")
let humid = json(result,"main.humidity")
serialprintln "ESP:|ESP|owm|desc|" & desc
delay 100
serialprintln "ESP:|ESP|owm|temp|" & temp
delay 100
serialprintln "ESP:|ESP|owm|press|" & press
delay 100
serialprintln "ESP:|ESP|owm|hum|" & humid
serialprint chr$(4)
return

[owmforcast]
owmbla = owm.get & "forecast/daily?" & owm.param
for x = 1 to 3
result = readopenweather(owmbla,x)
let temp_min = json(result,"temp.min")
let temp_max = json(result,"temp.max")
let icon = json(result,"icon")
serialprintln "ESP:|ESP|owm|tmin" & x & "|" & temp_min
delay 100
serialprintln "ESP:|ESP|owm|tmax" & x & "|" & temp_max
delay 100
serialprintln "ESP:|ESP|owm|icon" & x & "|" & icon
delay 100
next x
serialprint chr$(4)
return

[thingspeak]
gosub [parse]
sstatus = field
gosub [parse]
ts.key = field
gosub [parse]
ts.fieldnum = field
ts.fielddata = strin
sendts(ts.key,ts.fieldnum,ts.fielddata)
serialprint chr$(4)
return

[getver]
serialprintln "ESP:|ESP|ver||" & ver
serialprint chr$(4)
return

[getip]
serialprintln "ESP:|ESP|ip||" & ip()
serialprint chr$(4)
return

[getinfo]
serialprintln "ESP:|ESP|ver||" & ver
delay 100
serialprintln "ESP:|ESP|ip||" & ip()
delay 100
serialprintln "ESP:|ESP|flash||" & flashfree()
delay 100
serialprintln "ESP:|ESP|ram||" & ramfree()
delay 100
serialprintln "ESP:|ESP|myid||" & node
delay 100
serialprintln "ESP:|ESP|port||" & port
delay 100
serialprintln "ESP:|ESP|castip||" & castip
serialprint chr$(4)
return

[gettime]
y = time(year) 
if val(y) < 2016 then
serialprintln "ESP:|ESP|ntp||" & "error"
 return
 end if
serialprintln "ESP:|ESP|ntp||" & time()
Return

[parse]
field = ""
delim = instr(strin,":")
this = delim - 1
rest = len(strin) - delim
field = left(strin,this)
strin = right(strin,rest)
return


'************  UPDATE WIFI INFO  *************

[reboot]
Cls
serialprintln "ESP:|ESP|reboot||"
wprint "Rebooting Wifi ....."
delay 1000
reboot
Wait

[quit]
wprint "<a href='/'>Menu</a>"
wait
End


Build1=coden,b4a.irrig
Build2=irrig,irrig.bm
File1=irrig.bal
FileGroup1=Default Group
Group=Default Group
IconFile=
Library1=core
Library2=network
Library3=stringfunctions
ManifestCode='This code will be applied to the manifest file during compilation.~\n~'You do not need to modify it in most cases.~\n~'See this link for for more information: https://www.b4x.com/forum/showthread.php?p=78136~\n~AddManifestText(~\n~<uses-sdk android:minSdkVersion="5" android:targetSdkVersion="19"/>~\n~<supports-screens android:largeScreens="true" ~\n~    android:normalScreens="true" ~\n~    android:smallScreens="true" ~\n~    android:anyDensity="true"/>)~\n~SetApplicationAttribute(android:icon, "@drawable/icon")~\n~SetApplicationAttribute(android:label, "$LABEL$")~\n~'End of default text.~\n~
Module1=Starter
NumberOfFiles=1
NumberOfLibraries=3
NumberOfModules=1
Version=7.77
@EndOfDesignText@
#Region  Project Attributes 
     #ApplicationLabel: Irrig Client
     #VersionCode: 1
     #VersionName: 
     'SupportedOrientations possible values: unspecified, landscape or portrait.
     #SupportedOrientations: portrait
     #CanInstallToExternalStorage: False
#End Region

#Region  Activity Attributes 
     #FullScreen: False
     #IncludeTitle: True
#End Region

Sub Process_Globals
     Private usocket As UDPSocket
     Dim SendIp As String
     Private const devicePort As Int = 5001
     
End Sub

Sub Globals
     Dim sf As StringFunctions
     
     Dim lblReceived As Label
     Dim lblF1 As Label
     Dim lblLtrs As Label
     Dim lblF2 As Label
     Dim REC As String
     Dim btnSend As Button
     Dim tgtspin As Spinner
     Dim myarray(8) As String
     Dim cfg(10) As String
     Dim zn As String
     Private txtRepeat As EditText
     Private chkWater As CheckBox
     Private lblZoneName As Label
     Private txtDays As EditText
     Private txtOn1 As EditText
     Private txtOff1 As EditText
     Private txtOn2 As EditText
     Private txtOff2 As EditText
     Private txtOn3 As EditText
     Private txtOff3 As EditText
     Private btnStop As Button
     Private btnZ1 As ToggleButton
     Private btnZ2 As ToggleButton
     Private btnZ3 As ToggleButton
     Private btnZ4 As ToggleButton
     Private btnZ5 As ToggleButton
     Private btnZ6 As ToggleButton
     Private btnZ7 As ToggleButton
     Private btnZ8 As ToggleButton
End Sub



Sub btnSend_Click
     
     SendMessage ("ESP_Irrig:|ESP_Svr:|uMrconfig|1|"&Chr(13) & Chr(10))
End Sub


Sub Activity_Create(FirstTime As Boolean)
     If FirstTime Then
          usocket.Initialize("usocket", devicePort, 8192)
     End If
     sf.Initialize
     Activity.LoadLayout("irrig")
     myarray(0)="Zone Z1"
     myarray(1)="Zone Z2"
     myarray(2)="Zone Z3"
     myarray(3)="Zone Z4"
     myarray(4)="Zone Z5"
     myarray(5)="Zone Z6"
     myarray(6)="Zone Z7"
     myarray(7)="Zone Z8"
     tgtspin.Initialize("tgtspin")
     tgtspin.Prompt="Select Box Number"
     tgtspin.AddAll(myarray)
     Activity.AddView(tgtspin,0dip,28dip,100dip,33dip)
     'tgtspin = "Zone #1"
     SendIp="192.168.0.255"
     End Sub

 Sub SendMessage(sSend As String)
     Dim data() As Byte
     Dim up As UDPPacket
     data=sSend.GetBytes("UTF8")
     up.Initialize(data, SendIp, 5001)
     usocket.Send(up)
End Sub

Sub tgtspin_ItemClick (Position As Int, Value As Object)
Log(tgtspin.SelectedItem)
zn=sf.Right(tgtspin.SelectedItem,1)
Log(zn)
     SendMessage ("ESP_Irrig:|ESP_Svr:|uMrconfig|"& zn &"|"&Chr(13) & Chr(10))
End Sub



Sub usocket_PacketArrived (Packet As UDPPacket)
     Log(REC)
     REC = BytesToString(Packet.Data, Packet.Offset, Packet.Length, "ASCII")
     If sf.instring(REC,"ESP_Irrig|")>0 And sf.instring(REC,"Log|")>0 Then          'Car Timer Result data only
     REC=REC.Replace("|ESP_Svr:|ESP_Irrig|Log|6|","")
     lblLtrs.text=sf.Splitgetword(REC, ",",2)
     lblF1.text=sf.Splitgetword(REC, ",",3)
     lblF2.text=sf.Splitgetword(REC, ",",4)
     'lblChg.text=sf.Splitgetword(REC, ",",6)
     'lblTemp.text=sf.Splitgetword(REC, ",",3)
     'lblSOC.text=sf.Splitgetword(REC, ",",8)
     'lblhrs.text=sf.Splitgetword(REC, ",",2)
     Else If sf.instring(REC,"ESP_Irrig|")>0 And sf.instring(REC,"Config|")>0 Then
          REC=REC.Replace("|ESP_Svr:|ESP_Irrig|Config|","")
               End If
     Log(REC)
     lblReceived.Text=REC
     End Sub

Sub Activity_Resume

End Sub

Sub Activity_Pause (UserClosed As Boolean)

End Sub

Sub WriteConfig
     Dim TextWriter1 As TextWriter
     TextWriter1.Initialize(File.OpenOutput(File.DirRootExternal, "Config.txt", False))
     For i = 1 To 10
          TextWriter1.WriteLine("Line" & i& CRLF)
     Next
     TextWriter1.Close
End Sub

Sub ReadConfig
     Dim TextReader1 As TextReader
     TextReader1.Initialize(File.OpenInput(File.DirRootExternal, "Config.txt"))
     Dim line As String
     line = TextReader1.ReadLine
     Do While line <> Null
          Log(line) 'write the line to LogCat
          line = TextReader1.ReadLine
     Loop
     TextReader1.Close
End Sub

Sub txtRepeat_TextChanged (Old As String, New As String)
     Log(txtRepeat.Text)
     If txtRepeat.Text.Length>1 Then txtRepeat.Text=sf.Left(txtRepeat.Text,1)
     If txtRepeat.Text="9" Then txtRepeat.Text=""
     If txtRepeat.Text="8" Then txtRepeat.Text=""
     If txtRepeat.Text="7" Then txtRepeat.Text=""
     If txtRepeat.Text="6" Then txtRepeat.Text=""
     If txtRepeat.Text="5" Then txtRepeat.Text=""
     If txtRepeat.Text="4" Then txtRepeat.Text=""
     If txtRepeat.Text="3" Then txtRepeat.Text=""
End Sub



Sub lblZoneName_Click
     If txtDays.Text.Length>10 Then txtDays.Text=sf.Left(txtDays.Text,10)
End Sub


Sub txtDays_TextChanged (Old As String, New As String)
     If txtDays.Text.Length>7 Then txtDays.Text=sf.Left(txtDays.Text,7)
     End Sub

Sub txtDays_EnterPressed
     Log(txtDays.Text)
End Sub

Sub txtOn1_TextChanged (Old As String, New As String)
     If txtOn1.Text.Length>4 Then txtOn1.Text=sf.Left(txtOn1.Text,4)
     
     End Sub

Sub txtOff1_TextChanged (Old As String, New As String)
     If txtOff1.Text.Length>4 Then txtOff1.Text=sf.Left(txtOff1.Text,4)
End Sub

Sub txtOn2_TextChanged (Old As String, New As String)
     If txtOn2.Text.Length>4 Then txtOn2.Text=sf.Left(txtOn2.Text,4)
End Sub

Sub txtOff2_TextChanged (Old As String, New As String)
     If txtOff2.Text.Length>4 Then txtOff2.Text=sf.Left(txtOff2.Text,4)
     
End Sub

Sub txtOn3_TextChanged (Old As String, New As String)
     If txtOn3.Text.Length>4 Then txtOn3.Text=sf.Left(txtOn3.Text,4)
     
End Sub

Sub txtOff3_TextChanged (Old As String, New As String)
     If txtOff3.Text.Length>4 Then txtOff3.Text=sf.Left(txtOff3.Text,4)
End Sub



Sub btnStop_Click
     btnZ1.Checked=False
     btnZ2.Checked=False
     btnZ3.Checked=False
     btnZ4.Checked=False
     btnZ5.Checked=False
     btnZ6.Checked=False
     btnZ7.Checked=False
     btnZ8.Checked=False
     SendMessage ("ESP_Irrig:|ESP_Svr:|uMstop|"&Chr(13) & Chr(10))
End Sub




Sub btnZ8_CheckedChange(Checked As Boolean)
     If btnZ8.Checked=True Then
          SendMessage ("ESP_Irrig:|ESP_Svr:|uMon|8|"&Chr(13) & Chr(10))
     Else
          SendMessage ("ESP_Irrig:|ESP_Svr:|uMoff|8|"&Chr(13) & Chr(10))
     End If
End Sub

Sub btnZ7_CheckedChange(Checked As Boolean)
     If btnZ7.Checked=True Then
          SendMessage ("ESP_Irrig:|ESP_Svr:|uMon|7|"&Chr(13) & Chr(10))
     Else
          SendMessage ("ESP_Irrig:|ESP_Svr:|uMoff|7|"&Chr(13) & Chr(10))
     End If
End Sub

Sub btnZ6_CheckedChange(Checked As Boolean)
     If btnZ6.Checked=True Then
          SendMessage ("ESP_Irrig:|ESP_Svr:|uMon|6|"&Chr(13) & Chr(10))
     Else
          SendMessage ("ESP_Irrig:|ESP_Svr:|uMoff|6|"&Chr(13) & Chr(10))
     End If
End Sub

Sub btnZ5_CheckedChange(Checked As Boolean)
     If btnZ5.Checked=True Then
          SendMessage ("ESP_Irrig:|ESP_Svr:|uMon|5|"&Chr(13) & Chr(10))
     Else
          SendMessage ("ESP_Irrig:|ESP_Svr:|uMoff|5|"&Chr(13) & Chr(10))
     End If
End Sub

Sub btnZ4_CheckedChange(Checked As Boolean)
     If btnZ4.Checked=True Then
          SendMessage ("ESP_Irrig:|ESP_Svr:|uMon|4|"&Chr(13) & Chr(10))
     Else
          SendMessage ("ESP_Irrig:|ESP_Svr:|uMoff|4|"&Chr(13) & Chr(10))
     End If
End Sub

Sub btnZ3_CheckedChange(Checked As Boolean)
     If btnZ3.Checked=True Then
          SendMessage ("ESP_Irrig:|ESP_Svr:|uMon|3|"&Chr(13) & Chr(10))
     Else
          SendMessage ("ESP_Irrig:|ESP_Svr:|uMoff|3|"&Chr(13) & Chr(10))
     End If
End Sub

Sub btnZ2_CheckedChange(Checked As Boolean)
     If btnZ2.Checked=True Then
          SendMessage ("ESP_Irrig:|ESP_Svr:|uMon|2|"&Chr(13) & Chr(10))
     Else
          SendMessage ("ESP_Irrig:|ESP_Svr:|uMoff|2|"&Chr(13) & Chr(10))
     End If
End Sub

Sub btnZ1_CheckedChange(Checked As Boolean)
     If btnZ1.Checked=True Then
          SendMessage ("ESP_Irrig:|ESP_Svr:|uMon|1|"&Chr(13) & Chr(10))
          Else
          SendMessage ("ESP_Irrig:|ESP_Svr:|uMoff|1|"&Chr(13) & Chr(10))
          End If
     End Sub



__________________
Codenquilts
Back to Top View MikeO's Profile Search for other posts by MikeO Visit MikeO's Homepage
 
Andrew_G
Senior Member
Senior Member


Joined: 18 October 2016
Location: Australia
Online Status: Offline
Posts: 159
Posted: 25 December 2017 at 10:03am | IP Logged Quote Andrew_G

Hello Mike et al,
Compliments of the season to you all.
“Me too” for as many details as possible, particularly for the “old” version.
I am progressively using your weather station code (thanks) to develop my own version (using the wind vane/anemometer and rain gauge sensors that we both have).
Our new home (in about a year +) will have a 20k litre tank (250m2 roof) in suburbia and I’ll be looking to manage an irrigation system (big veggie garden).
I am particularly interested in how you:
- measure flows in and out of the tank (and at other points in the pipe network?)
- measure its volume (height)?
- control the zones (eg wired vs wireless control and central or distributed solenoids at, I assume, 12V?)
- the new house will have a concrete slab boundary to boundary so I need to plan any conduits carefully (plus some spare(s))
- (I have no experience with WiFi so I think an upgrade to your newer version might be a subsequent project).

Cheers,

Andrew


Edited by Andrew_G on 25 December 2017 at 10:06am
Back to Top View Andrew_G's Profile Search for other posts by Andrew_G
 
MikeO
Senior Member
Senior Member


Joined: 11 September 2011
Location: Australia
Online Status: Offline
Posts: 167
Posted: 06 January 2018 at 3:00pm | IP Logged Quote MikeO

Update for this project.

I have designed a new board for use as a general control board.

based on MX170 DIP uMite for easy soldering
ILI9341 LCD display support
RTC module
ESP8266 wifi module
4mB of Flash Ram for storage/logging
8 port Ext Output
General 8 Pin connector, 6 general mixed Input/Output/Analog plus 3.3v and Gnd
ICSP connector
Console connector
Pololu PSU module (3.3v), you can choose to use best one for your needs
ie stepup, stepdown, or stepup/stepdown variety. stepdown example

@ Andrew_G you can find most of what you were asking in my post

If anyone wants them all the Gerbers etc are here , I may also have one or two boards available in a few days, $5 plus postage.
Layout 3D Viz and Sch











__________________
Codenquilts
Back to Top View MikeO's Profile Search for other posts by MikeO Visit MikeO's Homepage
 
Andrew_G
Senior Member
Senior Member


Joined: 18 October 2016
Location: Australia
Online Status: Offline
Posts: 159
Posted: 07 January 2018 at 7:47am | IP Logged Quote Andrew_G

Mike, thanks for that.
If not already snaffled can you please put a boad aside for me? I'm only on mobile www now so I'll give a fuller response in a day or so.

Cheers, Andrew
Back to Top View Andrew_G's Profile Search for other posts by Andrew_G
 
Phil23
Guru
Guru


Joined: 27 March 2016
Location: Australia
Online Status: Offline
Posts: 1375
Posted: 07 January 2018 at 8:15am | IP Logged Quote Phil23

Hi MikeO,

Jut not sure if you you are aware that your site is redirection to

"http://codenquilts.synology.me:2244/"

Lots of Lorem ipsum dolor...
Back to Top View Phil23's Profile Search for other posts by Phil23
 
Bill7300
Senior Member
Senior Member


Joined: 05 August 2014
Location: Australia
Online Status: Offline
Posts: 107
Posted: 07 January 2018 at 8:51am | IP Logged Quote Bill7300

and for some reason, I am unable to get the gerbers from that Drop Box link. It wont download, giving an error message every time I try. Is this peculiar to me or have others had this problem?

Bill
Back to Top View Bill7300's Profile Search for other posts by Bill7300
 


Page of 2 Next >>
In the news...
 
Post ReplyPost New Topic
Printable version Printable version
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot delete your posts in this forum
You cannot edit your posts in this forum
You cannot create polls in this forum
You cannot vote in polls in this forum

Powered by Web Wiz Forums version 7.8
Copyright ©2001-2004 Web Wiz Guide

This page was generated in 0.1094 seconds.
Privacy Policy     Process times : 0, 0, 0, 0.11