Home
JAQForum Ver 24.01
Log In or Join  
Active Topics
Local Time 09:54 03 Aug 2025 Privacy Policy
Jump to

Notice. New forum software under development. It's going to miss a few functions and look a bit ugly for a while, but I'm working on it full time now as the old forum was too unstable. Couple days, all good. If you notice any issues, please contact me.

Forum Index : Microcontroller and PC projects : Headless MX170 controller

     Page 1 of 2    
Author Message
MikeO
Senior Member

Joined: 11/09/2011
Location: Australia
Posts: 275
Posted: 06:45am 22 Dec 2017
Copy link to clipboard 
Print this post

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 2017-12-23
Codenquilts
 
OA47

Guru

Joined: 11/04/2012
Location: Australia
Posts: 986
Posted: 07:01am 22 Dec 2017
Copy link to clipboard 
Print this post

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

Best Wishes for Christmas Sheders,
OA47
 
Azure

Guru

Joined: 09/11/2017
Location: Australia
Posts: 446
Posted: 09:09am 22 Dec 2017
Copy link to clipboard 
Print this post

I would like details (code and schematics) of both versions.
 
retepsnikrep

Senior Member

Joined: 31/12/2007
Location: United Kingdom
Posts: 134
Posted: 12:09pm 22 Dec 2017
Copy link to clipboard 
Print this post

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

Please post details thanks..
Gen1 Honda Insights.
 
crez

Senior Member

Joined: 24/10/2012
Location: Australia
Posts: 152
Posted: 09:28pm 22 Dec 2017
Copy link to clipboard 
Print this post

Me too!
 
mikeb

Senior Member

Joined: 10/04/2016
Location: Australia
Posts: 174
Posted: 01:06am 23 Dec 2017
Copy link to clipboard 
Print this post

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.
 
MikeO
Senior Member

Joined: 11/09/2011
Location: Australia
Posts: 275
Posted: 11:22am 23 Dec 2017
Copy link to clipboard 
Print this post

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
 
Andrew_G
Guru

Joined: 18/10/2016
Location: Australia
Posts: 871
Posted: 12:03am 25 Dec 2017
Copy link to clipboard 
Print this post

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 2017-12-26
 
MikeO
Senior Member

Joined: 11/09/2011
Location: Australia
Posts: 275
Posted: 05:00am 06 Jan 2018
Copy link to clipboard 
Print this post

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
 
Andrew_G
Guru

Joined: 18/10/2016
Location: Australia
Posts: 871
Posted: 09:47pm 06 Jan 2018
Copy link to clipboard 
Print this post

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
 
Phil23
Guru

Joined: 27/03/2016
Location: Australia
Posts: 1667
Posted: 10:15pm 06 Jan 2018
Copy link to clipboard 
Print this post

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...
 
Bill7300
Senior Member

Joined: 05/08/2014
Location: Australia
Posts: 159
Posted: 10:51pm 06 Jan 2018
Copy link to clipboard 
Print this post

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
Bill
 
TassyJim

Guru

Joined: 07/08/2011
Location: Australia
Posts: 6283
Posted: 01:06am 07 Jan 2018
Copy link to clipboard 
Print this post

  Bill7300 said   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

No problems downloading here.

Jim
VK7JH
MMedit
 
Azure

Guru

Joined: 09/11/2017
Location: Australia
Posts: 446
Posted: 01:37am 07 Jan 2018
Copy link to clipboard 
Print this post

I downloaded shortly after it was posted. No problems, got ZIP file of folder and just checked contents are all good.Edited by Azure 2018-01-08
 
MikeO
Senior Member

Joined: 11/09/2011
Location: Australia
Posts: 275
Posted: 07:58am 07 Jan 2018
Copy link to clipboard 
Print this post

Thanks everyone.

Site is OK now was in the middle of a move to another server.

There is a link to the constructor files on the new site if drop box doesn't work.

I should have the boards by the end of the week.

Mike
Codenquilts
 
Bill7300
Senior Member

Joined: 05/08/2014
Location: Australia
Posts: 159
Posted: 05:30am 08 Jan 2018
Copy link to clipboard 
Print this post

My problem appears to lie in my use of a download manager. The browser apparently makes the first request, before the download manager takes over and remakes the request. Drop box apparently doesn't like duplicated download requests, so refuses to play ball. I need to doctor my download manager to overcome this but meanwhile, I'll try getting the gerbers from Mike's site.
Bill
 
MikeO
Senior Member

Joined: 11/09/2011
Location: Australia
Posts: 275
Posted: 11:27am 08 Jan 2018
Copy link to clipboard 
Print this post

Hi Bill, If you still want the files there is a link on my site (working now) if you are still having problems with dropbox.

Mike
Codenquilts
 
Bill7300
Senior Member

Joined: 05/08/2014
Location: Australia
Posts: 159
Posted: 11:46pm 08 Jan 2018
Copy link to clipboard 
Print this post

Thanks Mike but now I am having trouble getting to your site. www.codenquilts.com.au defaults to codenquilts.synology.me/cms/ and gives a page not working error?

Bill
Bill
 
MikeO
Senior Member

Joined: 11/09/2011
Location: Australia
Posts: 275
Posted: 12:12am 09 Jan 2018
Copy link to clipboard 
Print this post

Hi Bill, I am really sorry you are having these issues. That redirect is missing the port number of my server (not sure why) it is certainly there and I can get there from my phone (different network).

The direct link is codenquilts.synology.me:2244/cms and the absolutely direct to the file you want is here

I am in the middle of building my site again on my local server and eventually will drop my hosting site , I hope this now works for you.

Mike
Codenquilts
 
Bill7300
Senior Member

Joined: 05/08/2014
Location: Australia
Posts: 159
Posted: 02:38am 09 Jan 2018
Copy link to clipboard 
Print this post

That certainly worked, Mike. Thanks

Bill
Bill
 
     Page 1 of 2    
Print this page
The Back Shed's forum code is written, and hosted, in Australia.
© JAQ Software 2025