Sponsored Content
Top Forums Programming Arduino Project: iPhone to HM-10 BLE to NB-IoT Shield to NB-IoT Network to Internet to Linux Server Post 303043453 by Neo on Wednesday 29th of January 2020 04:27:54 AM
Old 01-29-2020
Success!

Push a button on the iPhone and send a BLE bluetooth message to the Arduino UNO who forwards the request to a remote server via a commercial NB-IoT network; where the server parses the request and returns the results back to the iPhone via the same NB-IoT / BLE link.

In this case we request the load average of a remote Ubuntu Linux server 'cat /proc/loadavg' 12 times zones away. The remote server runs a Python UDP service "test app" for this "mini application" example.

BLE/NB-IOT/UDP internetworking Smilie

I think I may well be the first "maker" to do this with the Arduino UNO, and iPhone, the HM-10 BLE module and an NB-IoT shield and commercial network... but I cannot be sure!

Arduino Project:  iPhone to HM-10 BLE to NB-IoT Shield to NB-IoT Network to Internet to Linux Server-img_9089jpg


Arduino Project:  iPhone to HM-10 BLE to NB-IoT Shield to NB-IoT Network to Internet to Linux Server-img_9088jpg


I'm currently testing reliability. Will post the draft Arduino UNO sketch and the Python UDP test server code when finished preliminary testing. Please don't expect a polished product, as this is just a demonstration using the iPhone to send a BLE message to the Ardunio with an NB-IoT shield to forward the request to a remote UDP server and display the results back on the iPhone.

Also, I think I should include a few more "mini-app buttons" for this demo.
These 2 Users Gave Thanks to Neo For This Post:
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Linux for an internet server to an ISP

I just moved away from a T3 line back to a dial up I just wanted to know would a P200 with 64meg and a 4 gig hard drive be ok for a linux server for an additional 3 pcs all running win98. I will be dialing into an isp using a 56k v90 modem. Any support or help will be great. (3 Replies)
Discussion started by: izrailov
3 Replies

2. IP Networking

can i force connecting to local web server via internet network ?

Hello all this is general question , if i have web server installed in my local pc and i have client that connecting to that web server can i force it always to go via the internet network ? the reason im asking is .. that im noticed when i close my internet connection i still can connect to my... (2 Replies)
Discussion started by: umen
2 Replies

3. IP Networking

Can not access Linux server over the Internet

hi i have linux server connected to internet through a switch/router. i have opened a port on the router and i am able to connect to the server if iptables is off. but when it is on i cant. i want to create a rule in iptables so that it accepts packets coming from a particular datacard. it... (7 Replies)
Discussion started by: u.n.i.x
7 Replies

4. Programming

Arduino-cli - Uploading to Unknown Chinese Arduino Boards using the Arduino Command Line Interface

In my further exploration of Arduino, today I decided to install the arduino-cli on my mac today. https://github.com/arduino/arduino-cli I followed the instructions for macOS but when I got to this part: arduino-cli board list I got the dreaded "Unknown" Fully Qualified Board Name... (1 Reply)
Discussion started by: Neo
1 Replies

5. Programming

Arduino Project with NB-IoT (3GPP) and LoRa / LoRaWAN

My favorite projects are always related to the "latest" tech in command and control, networking and network communications. This Elecrow GSM/GPRS/EDGE SIM5360E 3G Shield seems to be the "latest and the greatest" as far as 3G and GPS, as far as I can see so far, but I has it drawbacks for sure.... (6 Replies)
Discussion started by: Neo
6 Replies

6. Programming

NB-IoT Arduino Shield from AIS (Thailand) First Impressions

Today I received my NB-IoT Arduino Shield for AIS (Thailand). Here is a "pinout" photo of the shield. My shield looks just like the one above, for the most part. I'll post another photo of the actual device later. When I received the shield in the mail, I went immediately to a local... (8 Replies)
Discussion started by: Neo
8 Replies

7. Programming

Elecrow GSM/GPRS/EDGE SIM5360E 3G Shield for Arduino

Normally I have very good experiences buying from AliExpress, but in this case with Elecrow, I'm disappointed. After confirming with Elecrow on AliExpress that their Elecrow GSM/GPRS/EDGE SIM5360E 3G Shield for Arduino would work with 3G SIM cards in Thailand, I purchased one. My plan was to... (1 Reply)
Discussion started by: Neo
1 Replies

8. Programming

Basic Arduino UNO Bluetooth Testing with the BLE 4.0 (CC2541, MLT-BT04 IC)

Here is a sketch to do basic testing for the Arduino UNO and the MLT-BT04. This BLE module works with IOS (iPhone) and I'll add some details on my IOS testing with an iPhone in a follow-up post. For now, here is the basic BLE (HM-10) sketch for the Arduino UNO: /* Arduino test-code... (7 Replies)
Discussion started by: Neo
7 Replies

9. Programming

Wuhan Coronavirus Status App for China - Rapid Prototype using MQTT and the IoT OnOff IOS App

With a little bit of work, was able to build a nice "Wuhan Coronavirus Status" app using MQTT and the IoT-OnOff app. More on this technique here: ESP32 (ESP-WROOM-32) as an MQTT Client Subscribed to Linux Server Load Average Messages The result turned out nice, I think. I like the look and... (10 Replies)
Discussion started by: Neo
10 Replies

10. Hardware

Arduino Robot Tank Project

Normally I'm not into kits, but I thought my wife would enjoy this one since she is a big fan of robots and droids on StarWars! We are done with the basic mechanical assembly and starting on the electronics assembly today. The robot's "brain" consists of three levels. The Arduino board, on... (5 Replies)
Discussion started by: Neo
5 Replies
RADCLIENT(1)							 FreeRADIUS Daemon						      RADCLIENT(1)

NAME
radclient - send packets to a RADIUS server, show reply SYNOPSIS
radclient [-4] [-6] [-d raddb_directory] [-c count] [-f file] [-F] [-h] [-i id] [-n num_requests_per_second] [-p num_requests_in_parallel] [-q] [-r num_retries] [-s] [-S shared_secret_file] [-t timeout] [-v] [-x] server {acct|auth|status|disconnect|auto} secret DESCRIPTION
radclient is a radius client program. It can send arbitrary radius packets to a radius server, then shows the reply. It can be used to test changes you made in the configuration of the radius server, or it can be used to monitor if a radius server is up. radclient reads radius attribute/value pairs from it standard input, or from a file specified on the command line. It then encodes these attribute/value pairs using the dictionary, and sends them to the remote server. The User-Password and CHAP-Password attributes are automatically encrypted before the packet is sent to the server. OPTIONS
-4 Use IPv4 (default) -6 Use IPv6 -c count Send each packet count times. -d raddb_directory The directory that contains the RADIUS dictionary files. Defaults to /etc/raddb. -f file File to read the attribute/value pairs from. If this is not specified, they are read from stdin. This option can be specified mul- tiple times, in which case packets are sent in order by file, and within each file, by first packet to last packet. A blank line separates logical packets within a file. -F Print the file name, packet number and reply code. -h Print usage help information. -i id Use id as the RADIUS request Id. -n num_requests_per_second Try to send num_requests_per_second, evenly spaced. This option allows you to slow down the rate at which radclient sends requests. When not using -n, the default is to send packets as quickly as possible, with no inter-packet delays. Due to limitations in radclient, this option does not accurately send the requested number of packets per second. -p num_requests_in_parallel Send num_requests_in_parallel, without waiting for a response for each one. By default, radclient sends the first request it has read, waits for the response, and once the response is received, sends the second request in its list. This option allows you to send many requests at simultaneously. Once num_requests_in_parallel are sent, radclient waits for all of the responses to arrive (or for the requests to time out), before sending any more packets. This option permits you to discover the maximum load accepted by a RADIUS server. -q Go to quiet mode, and do not print out anything. -r num_retries Try to send each packet num_retries times, before giving up on it. The default is 10. -s Print out some summaries of packets sent and received. -S shared_secret_file Rather than reading the shared secret from the command-line (where it can be seen by others on the local system), read it instead from shared_secret_file. -t timeout Wait timeout seconds before deciding that the NAS has not responded to a request, and re-sending the packet. The default timeout is 3. -v Print out version information. -x Print out debugging information. server[:port] The hostname or IP address of the remote server. Optionally a UDP port can be specified. If no UDP port is specified, it is looked up in /etc/services. The service name looked for is radacct for accounting packets, and radius for all other requests. If a service is not found in /etc/services, 1813 and 1812 are used respectively. The RADIUS attributes read by radclient can contain the special attribute Packet-Dst-IP-Address. If this attribute exists, then that IP address is where the packet is sent, and the server specified on the command-line is ignored. If the RADIUS attribute list always contains the Packet-Dst-IP-Address attribute, then the server parameter can be given as -. The RADIUS attributes read by radclient can contain the special attribute Packet-Dst-Port. If this attribute exists, then that UDP port is where the packet is sent, and the :port specified on the command-line is ignored. acct | auth | status | disconnect | auto Use auth to send an authentication packet (Access-Request), acct to send an accounting packet (Accounting-Request), status to send an status packet (Status-Server), or disconnect to send a disconnection request. Instead of these values, you can also use a decimal code here. For example, code 12 is also Status-Server. The RADIUS attributes read by radclient can contain the special attribute Packet-Type. If this attribute exists, then that type of packet is sent, and the type specified on the command-line is ignored. If the RADIUS attribute list always contains the Packet-Type attribute, then the type parameter can be given as auto. secret The shared secret for this client. It needs to be defined on the radius server side too, for the IP address you are sending the radius packets from. EXAMPLE
A sample session that queries the remote server for Status-Server (not all servers support this, but FreeRADIUS has configurable support for it). $ echo "Message-Authenticator = 0x00" | radclient 192.0.2.42 status s3cr3t Sending request to server 192.0.2.42, port 1812. radrecv: Packet from host 192.0.2.42 code=2, id=140, length=54 Reply-Message = "FreeRADIUS up 21 days, 02:05" SEE ALSO
radiusd(8), AUTHORS
Miquel van Smoorenburg, miquels@cistron.nl. Alan DeKok <aland@freeradius.org> 2 April 2009 RADCLIENT(1)
All times are GMT -4. The time now is 04:49 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy