Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
M
mongoose
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
mongoose
Commits
507e8bfa
Commit
507e8bfa
authored
Jan 30, 2017
by
Alexander Alashkin
Committed by
Cesanta Bot
Jan 30, 2017
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Drop Arduino support
PUBLISHED_FROM=85768c0d2536d9c31885a5127710b9756e3229a3
parent
2ea63a0e
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
0 additions
and
369 deletions
+0
-369
Makefile
examples/arduino_restful_client/Makefile
+0
-2
README.md
examples/arduino_restful_client/README.md
+0
-46
arduino_restful_client.ino
examples/arduino_restful_client/arduino_restful_client.ino
+0
-141
Makefile
examples/arduino_restful_server/Makefile
+0
-2
README.md
examples/arduino_restful_server/README.md
+0
-45
arduino_restful_server.ino
examples/arduino_restful_server/arduino_restful_server.ino
+0
-133
No files found.
examples/arduino_restful_client/Makefile
deleted
100644 → 0
View file @
2ea63a0e
# This "makefile" is only intended to prevent errors during main makefile execution
all
:
examples/arduino_restful_client/README.md
deleted
100644 → 0
View file @
2ea63a0e
# Arduino Restful Client
This example demonstrates how to use
[
Mongoose
](
https://www.cesanta.com/mongoose
)
to send HTTP commands from Arduino.
Example sends free memory size and current board uptime, but it can be modified to send any user-specific data.
At the moment this example supports
[
Arduino Mega 2560
](
http://arduino.cc/en/Main/ArduinoBoardMega2560
)
board (and compatible) with either W5100-based
network shield (like
[
Arduino Ethernet Shield
](
http://arduino.cc/en/Main/ArduinoEthernetShield
)
) or
[
CC3000
](
http://www.ti.com/product/cc3000
)
-based WIFI Shield.
## Build and run instructions:
###To run with Arduino Ethernet (W5100) shield:
1.
Add (Sketch->Add file...) the following files to sketch:
-
/mongoose/mongoose.h
-
/mongoose/mongoose.c
-
/mongoose/platforms/arduino_ethernet_W5100/avrsupport.h
-
/mongoose/platforms/arduino_ethernet_W5100/avrsupport.cpp
3.
Buils and start (in console) /Users/alex/Projects/mongoose/examples/restful_server example
4.
Make
`board_ip`
and
`board_mac`
variables suitable for your network and board
5.
Change IP address in
`s_target_address`
variable to IP address of host running restful_server
6.
Uncomment line
`#include <Ethernet.h>`
7.
Compile and flash sketch
8.
restful_server will start to show current uptime and free memory size (with 5 seconds interval)
###To run with Adafruit WiFi (CC3000) shield:
1.
Add (Sketch->Add files...) the following files to sketch:
-
/mongoose/mongoose.h
-
/mongoose/mongoose.c
-
/mongoose/platforms/arduino_ethernet_W5100/avrsupport.h
-
/mongoose/platforms/arduino_ethernet_W5100/avrsupport.cpp
2.
Import Adafruit CC3000 library for mongoose
(select Sketch->Import Library...->Add library... and point
/mongoose/platforms/arduino_wifi_CC3000/adafruit_CC3000_lib_mongoose folder)
3.
Buils and start (in console) /Users/alex/Projects/mongoose/examples/restful_server example
4.
Make the following variables suitable for your network
-
`board_ip`
-
`subnet_mask`
-
`gateway`
-
`dns`
-
`wlan_ssid`
-
`wlan_pwd`
-
`wlan_security`
5.
Change IP address in
`s_target_address`
variable to IP address of host running restful_server
6.
Uncomment line
`#include <Adafruit_CC3000.h>`
8.
Compile and flash sketch
9.
restful_server will start to show current uptime and free memory size (with 5 seconds interval)
examples/arduino_restful_client/arduino_restful_client.ino
deleted
100644 → 0
View file @
2ea63a0e
/*
* Copyright (c) 2015 Cesanta Software Limited
* All rights reserved
*
* Build and run instructions:
* To run with Arduino Ethernet (W5100) shield:
* -----------------------------------------------------------
* 1. Add (Sketch->Add file...) the following files to sketch:
* - /mongoose/mongoose.h
* - /mongoose/mongoose.c
* - /mongoose/platforms/arduino_ethernet_W5100/avrsupport.h
* - /mongoose/platforms/arduino_ethernet_W5100/avrsupport.cpp
* 2. Buils and run in console /Users/alex/Projects/mongoose/examples/restful_server example
* 3. Make board_ip and board_mac variables suitable for your network and board
* 4. Uncomment line #include <Ethernet.h>
* 5. Change IP address in s_target_address variable to IP address of host running restful_server
* 6. Compile & flash sketch
* 7. restful_server server will start to show current uptime and free memory size (with 5 second interval)
*
* To run with Adafruit WiFi (CC3000) shield:
* -----------------------------------------------------------
* 1. Add (Sketch->Add files...) the following files to sketch:
* - /mongoose/mongoose.h
* - /mongoose/mongoose.c
* - /mongoose/platforms/arduino_ethernet_W5100/avrsupport.h
* - /mongoose/platforms/arduino_ethernet_W5100/avrsupport.cpp
* 2. Import Adafruit CC3000 library for mongoose (select Sketch->Import Library...->Add library... and point
* /mongoose/platforms/arduino_wifi_CC3000/adafruit_CC3000_lib_mongoose folder
* 3. Buils and run in console /Users/alex/Projects/mongoose/examples/restful_server example
* 4. Make the following variables suitable for your network
* - board_ip
* - subnet_mask
* - gateway
* - dns
* - wlan_ssid
* - wlan_pwd
* - wlan_security
* 5. Uncomment line #include <Adafruit_CC3000.h>
* 6. Compile & flash sketch
* 7. restful_server server will start to show current uptime and free memory size (with 5 second interval) *
*
*/
//#include <Ethernet.h>
//#include <Adafruit_CC3000.h>
#include <SPI.h>
#include "mongoose.h"
// CHANGE THESE VARIABLES
// NB: Devices with the same address must not end up on the same network.
// Use MAC address provided by device manufacturer (e.g. on a sticker).
// If there isn't one, use a random one from the locally administered range.
// See http://en.wikipedia.org/wiki/MAC_address for details.
static
uint8_t
board_mac
[]
=
{
0xDE
,
0xAD
,
0xBE
,
0xEF
,
0xFE
,
0xED
};
static
uint8_t
board_ip
[]
=
{
192
,
168
,
10
,
177
};
#ifdef WIFI_CC3000
static
uint8_t
subnet_mask
[]
=
{
255
,
255
,
255
,
0
};
static
uint8_t
gateway
[]
=
{
192
,
168
,
10
,
254
};
static
uint8_t
dns_ip
[]
=
{
192
,
168
,
10
,
254
};
static
const
char
*
wlan_ssid
=
"mynetwork"
;
static
const
char
*
wlan_pwd
=
"mypassword"
;
static
int
wlan_security
=
WLAN_SEC_WPA2
;
#endif
static
const
char
*
s_target_address
=
"192.168.10.3:8000"
;
/////////////////////////////////////////////
static
const
char
*
s_request
=
"/printcontent"
;
static
uint32_t
IP2U32
(
uint8_t
*
iparr
)
{
return
((
uint32_t
)
iparr
[
0
]
<<
24
)
|
((
uint32_t
)
iparr
[
1
]
<<
16
)
|
(
iparr
[
2
]
<<
8
)
|
(
iparr
[
3
]);
}
static
int
get_data_to_send
(
char
*
buf
,
int
buf_size
)
{
// Adding data to send
// It could be any sensor data, now just put uptime & free memory size here
return
snprintf
(
buf
,
buf_size
,
"Uptime: %lus Free memory: %db"
,
millis
()
/
1000
,
get_freememsize
());
}
static
void
rfc_ev_handler
(
struct
mg_connection
*
nc
,
int
ev
,
void
*
ev_data
)
{
int
connect_status
;
switch
(
ev
)
{
case
NS_CONNECT
:
connect_status
=
*
(
int
*
)
ev_data
;
if
(
connect_status
==
0
)
{
char
buf
[
100
];
int
len
=
get_data_to_send
(
buf
,
sizeof
(
buf
));
mg_printf
(
nc
,
"POST %s HTTP/1.0
\r\n
Host: %s
\r\n
Content-Lenght: %d"
"
\r\n\r\n
%s"
,
s_request
,
s_target_address
,
len
,
buf
);
nc
->
flags
|=
MG_F_SEND_AND_CLOSE
;
}
else
{
nc
->
flags
|=
MG_F_CLOSE_IMMEDIATELY
;
}
break
;
default:
break
;
}
}
static
struct
mg_mgr
mgr
;
static
struct
mg_connection
*
nc
;
void
setup
()
{
Serial
.
begin
(
9600
);
Serial
.
println
(
"Initialization..."
);
#if defined(ETHERNET_W5100)
avr_netinit
(
board_mac
,
board_ip
);
#elif defined(WIFI_CC3000)
if
(
avr_netinit
(
wlan_ssid
,
wlan_pwd
,
wlan_security
,
IP2U32
(
board_ip
),
IP2U32
(
subnet_mask
),
IP2U32
(
gateway
),
IP2U32
(
dns_ip
))
!=
0
)
{
Serial
.
println
(
"Initialization error, check network settings"
);
return
;
};
#endif
mg_mgr_init
(
&
mgr
,
NULL
);
Serial
.
println
(
"Initialization done"
);
}
void
loop
()
{
nc
=
mg_connect
(
&
mgr
,
s_target_address
,
rfc_ev_handler
);
if
(
nc
!=
NULL
)
{
mg_set_protocol_http_websocket
(
nc
);
}
uint32_t
time_to_finish
=
millis
()
+
5000
;
while
(
millis
()
<
time_to_finish
)
{
mg_mgr_poll
(
&
mgr
,
1000
);
}
}
examples/arduino_restful_server/Makefile
deleted
100644 → 0
View file @
2ea63a0e
# This "makefile" is only intended to prevent errors during main makefile execution
all
:
examples/arduino_restful_server/README.md
deleted
100644 → 0
View file @
2ea63a0e
# Arduino Restful Server
This example demonstrates how to use
[
Mongoose
](
https://www.cesanta.com/mongoose
)
to control Arduino
using HTTP requests.
Example just blinks by LED when Mongoose receives HTTP command, but it can be modified to execute any user-specific code.
At the moment this example supports
[
Arduino Mega 2560
](
http://arduino.cc/en/Main/ArduinoBoardMega2560
)
board (and compatible) with either W5100-based
network shield (like
[
Arduino Ethernet Shield
](
http://arduino.cc/en/Main/ArduinoEthernetShield
)
) or
[
CC3000
](
http://www.ti.com/product/cc3000
)
-based WIFI Shield.
## Build and run instructions:
###To run with Arduino Ethernet (W5100) shield:
1.
Add (Sketch->Add file...) the following files to sketch:
-
/mongoose/mongoose.h
-
/mongoose/mongoose.c
-
/mongoose/platforms/arduino_ethernet_W5100/avrsupport.h
-
/mongoose/platforms/arduino_ethernet_W5100/avrsupport.cpp
2.
Make
`board_ip`
and
`board_mac`
variables suitable for your network and board
3.
Uncomment line
`#include <Ethernet.h>`
4.
Compile and flash sketch
5.
Run
`curl http://<board_ip/blink`
LED attached to PIN 13 will blink and board free memory size and board uptime will be displayed.
###To run with Adafruit WiFi (CC3000) shield:
1.
Add (Sketch->Add files...) the following files to sketch:
-
/mongoose/mongoose.h
-
/mongoose/mongoose.c
-
/mongoose/platforms/arduino_ethernet_W5100/avrsupport.h
-
/mongoose/platforms/arduino_ethernet_W5100/avrsupport.cpp
2.
Import Adafruit CC3000 library for mongoose
(select Sketch->Import Library...->Add library... and point
/mongoose/platforms/arduino_wifi_CC3000/adafruit_CC3000_lib_mongoose folder)
3.
Make the following variables suitable for your network
-
`board_ip`
-
`subnet_mask`
-
`gateway`
-
`dns`
-
`wlan_ssid`
-
`wlan_pwd`
-
`wlan_security`
5.
Uncomment line
`#include <Adafruit_CC3000.h>`
4.
Compile and flash sketch
5.
Run curl
`http://<board_ip/blink`
LED attached to PIN 13 will blink and board free memory size and board uptime will be displayed.
examples/arduino_restful_server/arduino_restful_server.ino
deleted
100644 → 0
View file @
2ea63a0e
/*
* Copyright (c) 2015 Cesanta Software Limited
* All rights reserved
*
* Build and run instructions:
* To run with Arduino Ethernet (W5100) shield:
* -----------------------------------------------------------
* 1. Add (Sketch->Add file...) the following files to sketch:
* - /mongoose/mongoose.h
* - /mongoose/mongoose.c
* - /mongoose/platforms/arduino_ethernet_W5100/avrsupport.h
* - /mongoose/platforms/arduino_ethernet_W5100/avrsupport.cpp
* 2. Make board_ip and board_mac variables suitable for your network and board
* 3. Uncomment line #include <Ethernet.h>
* 4. Compile & flash sketch
* 5. Run curl http://<board_ip/blink
* LED attached to PIN 13 will blink and board free memory size and uptime will responsed
*
* To run with Adafruit WiFi (CC3000) shield:
* -----------------------------------------------------------
* 1. Add (Sketch->Add files...) the following files to sketch:
* - /mongoose/mongoose.h
* - /mongoose/mongoose.c
* - /mongoose/platforms/arduino_ethernet_W5100/avrsupport.h
* - /mongoose/platforms/arduino_ethernet_W5100/avrsupport.cpp
* 2. Import Adafruit CC3000 library for mongoose (select Sketch->Import Library...->Add library... and point
* /mongoose/platforms/arduino_wifi_CC3000/adafruit_CC3000_lib_mongoose folder
* 3. Make the following variables suitable for your network
* - board_ip
* - subnet_mask
* - gateway
* - dns
* - wlan_ssid
* - wlan_pwd
* - wlan_security
* 5. Uncomment line #include <Adafruit_CC3000.h>
* 4. Compile & flash sketch
* 5. Run curl http://<board_ip/blink
* LED attached to PIN 13 will blink and board free memory size and uptime will responsed
*
*/
//#include <Ethernet.h>
//#include <Adafruit_CC3000.h>
#include <SPI.h>
#include "mongoose.h"
// CHANGE THESE VARIABLES
// NB: Devices with the same address must not end up on the same network.
// Use MAC address provided by device manufacturer (e.g. on a sticker).
// If there isn't one, use a random one from the locally administered range.
// See http://en.wikipedia.org/wiki/MAC_address for details.
static
uint8_t
board_mac
[]
=
{
0xDE
,
0xAD
,
0xBE
,
0xEF
,
0xFE
,
0xED
};
static
uint8_t
board_ip
[]
=
{
192
,
168
,
10
,
8
};
#ifdef WIFI_CC3000
static
uint8_t
subnet_mask
[]
=
{
255
,
255
,
255
,
0
};
static
uint8_t
gateway
[]
=
{
192
,
168
,
10
,
254
};
static
uint8_t
dns_ip
[]
=
{
192
,
168
,
10
,
254
};
static
const
char
*
wlan_ssid
=
"mynetwork"
;
static
const
char
*
wlan_pwd
=
"mypassword"
;
static
int
wlan_security
=
WLAN_SEC_WPA2
;
#endif
///////////////////////////////////////////////
static
const
char
*
s_http_port
=
"60000"
;
static
uint32_t
IP2U32
(
uint8_t
*
iparr
)
{
return
((
uint32_t
)
iparr
[
0
]
<<
24
)
|
((
uint32_t
)
iparr
[
1
]
<<
16
)
|
(
iparr
[
2
]
<<
8
)
|
(
iparr
[
3
]);
}
static
void
rfs_ev_handler
(
struct
mg_connection
*
nc
,
int
ev
,
void
*
ev_data
)
{
struct
http_message
*
hm
=
(
struct
http_message
*
)
ev_data
;
char
buf
[
100
];
int
clen
;
switch
(
ev
)
{
case
NS_HTTP_REQUEST
:
if
(
mg_vcmp
(
&
hm
->
uri
,
"/blink"
)
==
0
)
{
blink
(
1
,
500
);
}
clen
=
snprintf
(
buf
,
sizeof
(
buf
),
"Free memory size: %d Uptime: %d"
,
(
int
)
get_freememsize
(),
(
int
)
time
(
NULL
));
mg_printf_http_chunk
(
nc
,
"HTTP/1.1 200 OK
\r\n
"
"Content-Length: %d
\r\n
"
"Transfer-Encoding: chunked
\r\n\r\n
"
"%s"
,
clen
,
buf
);
mg_send_http_chunk
(
nc
,
""
,
0
);
break
;
case
NS_SEND
:
nc
->
flags
|=
MG_F_CLOSE_IMMEDIATELY
;
break
;
default:
break
;
}
}
static
struct
mg_connection
*
nc
;
static
struct
mg_mgr
mgr
;
void
setup
()
{
Serial
.
begin
(
9600
);
Serial
.
println
(
"Initialization..."
);
#if defined(ETHERNET_W5100)
avr_netinit
(
board_mac
,
board_ip
);
#elif defined(WIFI_CC3000)
if
(
avr_netinit
(
wlan_ssid
,
wlan_pwd
,
wlan_security
,
IP2U32
(
board_ip
),
IP2U32
(
subnet_mask
),
IP2U32
(
gateway
),
IP2U32
(
dns_ip
))
!=
0
)
{
Serial
.
println
(
"Initialization error, check network settings"
);
return
;
};
#endif
mg_mgr_init
(
&
mgr
,
NULL
);
nc
=
mg_bind
(
&
mgr
,
s_http_port
,
rfs_ev_handler
);
mg_set_protocol_http_websocket
(
nc
);
Serial
.
println
(
"Initialization done"
);
}
void
loop
()
{
mg_mgr_poll
(
&
mgr
,
1000
);
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment