Sponsored Content
Top Forums Programming Arduino Project with NB-IoT (3GPP) and LoRa / LoRaWAN Post 303042555 by hicksd8 on Sunday 29th of December 2019 10:30:30 AM
Old 12-29-2019
Quote:
What, in your view, is the best wireless communications channel for passing data between from the underground parking garage (two levels below ground) to the top of a condo in the same building (27 floors up); with all the concrete in between?
Well that's quite a question. I bounced this on to a colleague of mine, Paul, to see what he said.

His reply:

Quote:
Arduino radio communication:

I haven't physically ever tried this, but I did research what was the most common radio link used for Arduino projects and I bought three transceiver pairs to try out. They're still on my bench, untested!

433Mhz RF Decoder Transmitter With Receiver Module Kit For ARM MCU Wireless - US$1.39|Shopping UK

I chose this version because the transmitter antenna can be added, rather than already being soldered on board.

Unsurprisingly it is Russian-based buyers who account for most purchases of these modules, and the reviews/feedback are poor in providing useful information.


SMETS2 meters have two (sometimes three) different transmission systems.

- Wide Area Network at either 400MHz (old ITV analogue) or Telefonica/Orange 3G GSM frequency

- In-home links to IHD and gas meter; Zigbee at 2.4GHz
which is now being augmented with 800MHz due to poor signal penetration

- sometimes a Mesh network in rural areas where Telefonica signal strength is low (I have this)

I also have a Honeywell wireless doorbell system in my house which is Mesh technology at 916.8MHz or 868MHz and is definitely better penetration than the 2.4GHz Zigbee.

I have no direct experience of LoRa, but I doubt that even this running at the lowest 433MHz could penetrate 30 floors. It's not the concrete which concerns me, but the steel reinforcing bars acting as a Faraday Cage.


If I was wanting to achieve this feat, I'd be fully expecting it to require "signal relay/filter/boosters" at intervals.


Paul
I assume that you are not allowed to attach anything to the building?

My initial thoughts:
1. Could you use existing power distribution wiring in the building to run ethernet over? e.g. Powerline adapters or similar.
2. Could you use a microwave link perhaps bounced off relay within the grounds.
3. Could you run a cable (or fibre optic) cable down the outside of the building?
4. Is there anything that would allow you to install a radio signal relay halfway down the building (eg, a friendly neighbor)

As I said, that's quite a question you've posed.
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Use The Terminal To Test Arduino Is Working.

Hi all... (Apologies for any typos at all.) This is a step by step _script_ to check if your Arduino is talking to your Linux or Macbook Pro computer using the Terminal... It works on at least 3 Linux flavours and now the Macbook Pro... I hope you find it useful as a simple check for... (0 Replies)
Discussion started by: wisecracker
0 Replies

2. OS X (Apple)

Arduino Diecimila Board Access...

This is a very simple starter DEMO to access Arduino Diecimila Board for the Macbook Pro 13" OSX 10.7.5... A potentiometer is connected between 5V and Gnd with the wiper connected to ANALOG IN 0 on the Arduino. This was adjusted to give the Ms and Ls as seen... I now have DC in for this... (0 Replies)
Discussion started by: wisecracker
0 Replies

3. OS X (Apple)

Semi-Automatic Arduino Detection.

I am working on a semi-auto detection idea for Arduino for the Scope project. It does require a little user intervention but minimal. It works by just responding to two on screen prompts to unplug and plug Arduino into a USB port. There are two versions and both work perfectly well and give... (3 Replies)
Discussion started by: wisecracker
3 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

More Arduino Stuff...

HI all... (Apologies for any typos.) To add to Neo's Arduino subject matter I have decided to upload this in ".zip" format. Ignore "*.info" files these are AMIGA icons only and also the "HAM" drawer as these are photos in ancient AMIGA HAM modes. I have noticed that there are current... (6 Replies)
Discussion started by: wisecracker
6 Replies

6. Programming

Arduino UNIX Time - Syncing Computer UNIX Time to Arduino Time with Python

Just finished a quick Python script to send the current unix time over to the Arduino from macOS, so in the absence of GPS or some other way to get the unix timestamp (epoch time) to the Arduino, I can get my macOS and Arduino UNO synced to within a second. Normally, when the Arduino starts... (9 Replies)
Discussion started by: Neo
9 Replies

7. 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

8. Programming

LoRaWAN, Dragino LG308 Gateway, and MicroPython - Quick Thoughts

Yesterday I had a chance to enjoy testing LoRaWAN with the owner of the M2M Shop who was kind enough to drive three hours down the seacoast to set up and test the Dragino LoRaWAN LG308 gateway operating on AS923MHz in Thailand. Ahead of K. Somsak's visit, he had asked me to install Thonny,... (0 Replies)
Discussion started by: Neo
0 Replies

9. Programming

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

This post describes a "work in progress" project I started today. Here is the High Level Overview: Currently, this project sits on my desk as an Arduino UNO (on the bottom), an NB-IoT Shield (sandwiched in the middle), a Sensor Shield (on top) with a HM-10 BLE Module (in the little... (13 Replies)
Discussion started by: Neo
13 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
ISAPNP(9)						   BSD Kernel Developer's Manual						 ISAPNP(9)

NAME
ISAPNP, isapnp_devmatch, isapnp_config, isapnp_unconfig -- Plug 'n' Play ISA bus SYNOPSIS
#include <sys/bus.h> #include <dev/isa/isareg.h> #include <dev/isa/isavar.h> #include <dev/isapnp/isapnpreg.h> #include <dev/isapnp/isapnpvar.h> #include <dev/isapnp/isapnpdevs.h> int isapnp_devmatch(const struct isapnp_attach_args *ipa, const struct isapnp_devinfo *dinfo, int *variant); int isapnp_config(bus_space_tag_t iot, bus_space_tag_t memt, struct isapnp_attach_args *ipa); void isapnp_unconfig(bus_space_tag_t iot, bus_space_tag_t memt, struct isapnp_attach_args *ipa); DESCRIPTION
The machine-independent ISAPNP subsystem provides support for ISAPNP devices. ISAPNP devices were developed to support "plug and play" con- nection on the ISA bus. In all other aspects, the ISAPNP bus is same as the ISA bus (see isa(9)). Devices on the ISAPNP bus are uniquely identified by a 7-character string. Resources, such as I/O address space and interrupts, should be allocated to the devices by the machine firmware. On some machine the firmware seems doesn't work correctly and NetBSD will attempt to allo- cate resources as necessary. DATA TYPES
Drivers attached to the ISAPNP bus will make use of the following data types: struct isapnp_matchinfo NetBSD kernel contains a database of known ISAPNP devices. Each entry in the database has a struct isapnp_matchinfo. It contains the following members: const char *name; /* device id string */ int variant; /* variant flag */ struct isapnp_devinfo Defines the devices supported by a driver. It contains pointer to an array of supported struct isapnp_matchinfo structures and a pointer to another array of compatibility devices. It contains the following members: struct isapnp_matchinfo *devlogic; int nlogic; struct isapnp_matchinfo *devcompat; int ncompat; struct isapnp_region Describes ISAPNP bus-space regions. It contains the following members: bus_space_handle_t h; uint32_t base; uint32_t length; struct isapnp_pin Describes the wiring of interrupts and DMA pins from the ISAPNP bus onto the host processor. It contains the following members: uint8_t num; uint8_t flags:4; uint8_t type:4; uint16_t bits; struct isapnp_attach_args A structure used to inform the driver of the device properties. It contains the following members: bus_space_tag_t ipa_iot; /* isa i/o space tag */ bus_space_tag_t ipa_memt; /* isa mem space tag */ bus_dma_tag_t ipa_dmat; /* isa dma tag */ isa_chipset_tag_t ipa_ic; struct isapnp_region ipa_io[ISAPNP_NUM_IO]; struct isapnp_region ipa_mem[ISAPNP_NUM_MEM]; struct isapnp_region ipa_mem32[ISAPNP_NUM_MEM32]; struct isapnp_pin ipa_irq[ISAPNP_NUM_IRQ]; struct isapnp_pin ipa_drq[ISAPNP_NUM_DRQ]; FUNCTIONS
isapnp_devmatch(ipa, dinfo, variant) Matches the device described by the attachment ipa with the device-match information in dinfo. If the device is matched, isapnp_devmatch() returns a non-zero value and variant is the flag describing the device variant. isapnp_devmatch() returns zero if the device is not found. isapnp_config(iot, memt, ipa) Allocate device resources specified by ipa. The device is mapped into the I/O and memory bus spaces specified by bus-space tags iot and memt respectively. The ipa_io, ipa_mem, ipa_mem32, ipa_irq, and ipa_drq members of ipa are updated to reflect the allocated and mapped resources. isapnp_config() returns zero on success and non-zero on error. isapnp_unconfig(iot, memt, ipa) Free the resources allocated by isapnp_config(). AUTOCONFIGURATION
During autoconfiguration, an ISAPNP driver will receive a pointer to struct isapnp_attach_args describing the device attached to the ISAPNP bus. Drivers match the device using ispnp_devmatch(). During the driver attach step, driver should initially allocate and map resources using isapnp_config(). The I/O (memory) bus-space resources can be accessed using the bus-space tag ipa_iot (ipa_memt) and the bus-space handle ipa_io[0].h (ipa_mem[0].h) members of ipa. Interrupts should be established using isa_intr_establish() (see isa(9)) with the IRQ specified by the ipa_irq[0].num member of ipa. Simi- larly, the standard isa(9) DMA interface should be used with the ipa_drq[0].num member of ipa. DMA SUPPORT
Extensive DMA facilities are provided through the isa(9) DMA facilities. CODE REFERENCES
The ISAPNP subsystem itself is implemented within the file sys/dev/isapnp/isapnp.c. The database of the known devices exists within the file sys/dev/isapnp/isapnpdevs.c and is generated automatically from the file sys/dev/isapnp/isapnpdevs. New devices should be added to this file. The database can be regenerated using the Makefile sys/dev/isapnp/Makefile.isapnpdevs. SEE ALSO
isa(4), isapnp(4), pnpbios(4), autoconf(9), bus_dma(9), bus_space(9), driver(9), isa(9) Plug and Play ISA Specification V1.0a, May 5 1994. HISTORY
The machine-independent ISAPNP subsystem appear in NetBSD 1.3. BSD
June 19, 2001 BSD
All times are GMT -4. The time now is 10:27 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy