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
NONAMED(8)						      System Manager's Manual							NONAMED(8)

NAME
nonamed - not a name daemon, but acts like one SYNOPSIS
nonamed [-d[level]] [-p port] [-n address[/port]] DESCRIPTION
Nonamed is not an Internet name daemon. When started it immediately tries to find a real name daemon on the local network. If it finds one then it will relay any DNS queries to that name daemon. If it can't find one then it will do its best to answer simple queries using the /etc/hosts table for name to address translation. On startup nonamed broadcasts up to five" simple UDP queries on the local network. This is a somewhat nasty thing to do, because it makes all name servers on the net spring into action to answer the request. The first name server to answer is used by nonamed to answer the queries of its clients. The broadcast search is repeated after an hour to give another name server a chance to be abused. (It is quite normal for a host to use a remote name server. The broadcasts are a bit unfriendly, but they only happen once an hour.) If a real name server is found then nonamed enters "relay mode", passing all queries on. In relay mode the daemon cannot be distinguished from a real DNS name daemon. Nonamed accepts both UDP and TCP queries under Minix-vmd. Under standard Minix only UDP queries are accepted. 256" relayed UDP queries can be outstanding before it forgets where the first one came from. In answer mode nonamed can answer simple DNS queries to translate a host name to an IP address, or an IP address to a host name. Suppose /etc/hosts looks like this: 127.0.0.1 localhost 192.9.200.1 darask.home.cs.vu.nl 192.9.200.2 burask.home.cs.vu.nl Then queries for the host names listed can be answered with the IP addresses to the left of them. If the name can't be found then it is retried with the domain name stripped of, this is because "localhost" is looked up as "localhost.home.cs.vu.nl" in the above example. Reverse lookups are answered with the first hostname on the line with the IP address. UDP queries are immediately answered on startup if the answer can be found in the hosts file. Failure answers, and answers to TCP queries are delayed until it decides that there are no real name servers out there. Nonamed employs several timeouts for efficient operation: If five" broadcasts, two seconds" apart fail to produce a name server on startup then it decides that there are no real name servers around. After 1 hour" it will again look for a name server. (We don't want to hog the same one indefinitely.) If no UDP reply is seen in .ds m1 than a simple probe is sent the name server. If that doesn't provoke an answer in two seconds" then it will look for a new name server. A failing TCP connection will also invoke a search, the TCP connection is then made to the new name server. A client using UDP will retry eventually, a client using TCP will notice nothing but a short delay. The daemon drops back into answer mode if the search fails and it has a hosts file with a "localhost" entry. It waits five minutes" for any action on a TCP stream before the connection is aborted. In answer mode it will generate data with a TTL (time to live) of 1 hour". OPTIONS
The options are only useful when debugging nonamed, although it can be very instructive to watch DNS queries being done. -d[level] Set debugging level to level (a single digit, by default 1.) Debug mode 1 makes nonamed decode and display the DNS queries and replies that it receives, sends and relays. The decoding only handles the common cases. In debug mode 2 it prints tracing information about the internal jobs it executes. In debug mode 3 it core dumps when an error causes it to exit. The debugging level may also be increased by 1 at runtime by sending signal SIGUSR1 or turned off (set to 0) with SIGUSR2. [-p port] Port to use instead of the normal domain port. [-n address[/port]] Use this IP address and port to find a real name server. It can be used to make nonamed relay to another nonamed. (They do not listen to broadcasts, of course.) You can run two daemons on one machine if you choose a new port number for one of them. You can force nonamed out of relay mode by sending it a hangup signal. FILES
/etc/hosts Hosts to address translation table when in answer mode. SEE ALSO
gethostbyname(3), resolver(3), hosts(5), set_net_default(8), boot(8), inetd(8), irdpd(8), rarpd(8). NOTES
You can specify a remote name server in /etc/resolv.conf to circumvent nonamed. But then you lose its talent for automatically finding new name servers when the remote name server becomes unreachable. Don't add a "localhost" entry to the hosts file if there are remote name servers. It makes nonamed drop back in answer mode on a flaky network. BUGS
If you can get a remote nonamed to listen to your name server then you can make it believe anything you want to. You need access to a machine on the same subnet of course. AUTHOR
Kees J. Bot (kjb@cs.vu.nl) NONAMED(8)
All times are GMT -4. The time now is 09:30 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy