ZigBee Gateway Clarification? - xbee

I am working on setting up a project where I should be able to control my ZigBee End Device (ZDO or ZED) from an IP gateway. On having a detailed study, I understood on having a setup established.
However, I need to confirm if ZigBee devices from different vendors will be able communicate with each other?
If they can communicate, can a common (generic) Gateway be used for accessing or controlling the end devices (from different vendors) from a IP network?
Kindly lend me your suggestions. Also, your advice on the devices already available or how to progress?

Yes, the concept of a ZigBee Gateway is to provide an IP interface to a ZigBee network. All certified ZigBee devices of a given profile (Smart Energy, Home Automation, etc.) should be able to join a network that you can then access with a Gateway.
Just make sure you're using a certified ZigBee Gateway.
Other companies, like Digi International make devices with IP and ZigBee interfaces that you may be able to use, if you're not interested in using the Gateway Standard.

Related

LoRaWAN OTAA protocol specification

I'm trying to implement communication between LoRaWAN and module using RFM95W with STM32L476. The problem I'm facing is that there is no library for dealing with OTAA and I wasn't able to find any relevant source how it looks like or how it works. Now I'm just able to send raw packets. It would be better if I coded the communication myself but I'm ok with working library, thanks
This protocol uses DevEUI AppEUI and AppKey
There are many libraries for stm32 for LoRa. For myself I go with the official LoRaMac-node from semtech. If your starting the journey into C and STM32, you can just start with the mbed-os.
To start to play with LoRaWAN protocol and demo board, there are two mains ways:
Use the LoRaWAN stack from ST and ST projects : use ST-cube: https://www.st.com/en/embedded-software/i-cube-lrwan.html
Use the LoRaWAN stack provides by Semtech (for information Semtech is the provider of the IP of the radio LORA and radio chip(as SX1276)) and pre-configured projects : https://github.com/Lora-net/LoRaMac-node
For the demo, you can use the ST demo board B-L072Z-LRWAN1 :https://www.st.com/en/evaluation-tools/b-l072z-lrwan1.html .
Don't forget, to use the LoRaWAN protocol, you must be compliante with ETSI(for europe) or FCC(for USA) regulation(frequency plan to use, duty cycle to respect, radio power to respect..)
And To use a LoRaWAN device, the message sent by the device is received by a LoRaWAN gateway (provided by apublic operator (like Orange or Objenious in France, Senet in USA) or by a private network( your gateway with your server), or a by community gateway like TTN)
TTN(The Thing Network) is also a good provider of demo board and server + gateway to start to play with LoRaWAN : https://www.thethingsnetwork.org/docs/
All LoRaWAN specifications are hosted by the LoRa Alliance: https://lora-alliance.org/
Have a good LoRaWAN XP!
Really? No libraries? Check it out https://www.st.com/en/embedded-software/i-cube-lrwan.html

How do mobile phone companies detect if you are sharing your 3G/4G internet connection?

I just spoke with a phone company in Denmark, that offer "Free 3G/4G", on the phone, but they have a limitation if you create a hotspot and share the connection, this limitation is on 50GB.
How do they detect if your mobile device is sharing the connection? Do they intercept some special headers that the computer/other phones send over the connection?
MAC addresses are used at a lower layer than IP and relate to each hop or leg of an end to end communication so they don't really help with this issue.
Detecting tethered devices is quite a complicated task and there are special solutions to do exactly this. They tend to look at multiple things to try to determine if other devices are using the mobiles connection, even if the devices are spoofing or manipulating headers etc.
Examples of things a solution will look at:
number of simultaneous sessions
HTTP user-agent headers
device type
device screen size
TCP Timestamp
TCP Source Port
TCP Sequence Number
Application-based correlation to TCP flows
Node-pair correlation to TCP flows
See here for an example solution and more details of the above (this is just one example solution):
https://www.sandvine.com/downloads/general/sandvine-technology-showcases/policy-control-for-connected-and-tethered-devices.pdf
We put the question to Three, which not too surprisingly declined to
answer. However, if you think about it logically, it should be fairly
simple to detect tethering. Every device with a network connection
(including Wi-Fi) has a unique hardware identifier called a MAC
address. Assuming that the operator can trace the final destination of
the data packets, it should be able to determine that the final MAC
doesn't match your phone's.
source
Although the post is about UK operators, it should apply in Denmark.

Connect via bluetooth to an android device without a custom application

I would like to use an arduino with a bluetooth module to modify the volume and skip songs on my phone.
All the information I found was about how to code an application that would communicate with a device via bluetooth, which isn't what I am looking for. I want to know what protocol I should follow to connect to an android device via bluetooth like a car radio would do.
My goal is to be able to use my device as a remote to control the built-in music application.
I think you are looking for the AVRCP protocol. Please send more info about your hardware so I can digg a better answer (if you need more, anyways...).

Cross-platform Bluetooth interoperability

I have a requirement to have a cross-platform program --- intended for mobile devices such as Android, Brew, Bada, WinCE etc --- be able to communicate with other instances of itself via Bluetooth.
Unfortunately:
the Bluetooth APIs on such devices are all radically, radically different.
the terminology they use is also radically different.
what actually works is frequently radically different to what they say works.
So far I've discovered that Android will allow you to connect to or listen on RFCOMM services specified by a simple UUID, but does not allow more complicated manipulation of SDP records; Brew claims to support SPP but the API appears to allow arbitrary RFCOMM; Bada supports SPP but doesn't allow you to specify the UUID, so I have no idea how you're supposed to do service discovery or listen for two things at once...
Oh, and iOS doesn't allow Bluetooth communication at all to non-iOS devices.
So:
I can't be the first person to need to do this. Is there a known subset of Bluetooth functionality that I should be using in order to maximise portability?
Device makers usually implement some bluetooth profiles such as A2DP, OBEX, etc. Depending what you want to do, you should check that all your target devices implement the required profiles.
Note that even though a device can implement an specific profile, there may not be an API that will allow you to use it.
See http://en.wikipedia.org/wiki/Bluetooth_profile.

wireless networks c program

I would like to create a wireless network from a laptop. If laptops come within range, I would like it to send them a welcome message and send them a goodbye message when they leave the wifi range. Is it possible to do this in C?
Please help me out with this.
It is possible, but it is a very complex task and I don't think that programming language choice is the first thing to look into.
As a start, you can read up on Wikipedia on Wireless ad-hoc networks.
How should your messages be received and displayed on the remote side? If you want to use some existing protocol over TCP/IP, or create your own (deploying custom applications on the remote machines), you will need to mess with networks and this is not always possible as one machine can be a part of only one network. So the machines need to be not connected to anything and somehow allow you to connect to them, it involves changing network settings on all that machines (for example, setting them to join the ad-hoc network with predefined name).
If all machines automatically join the existing network, this question has nothing to do with wireless (physical layer) but with Avahi, Netbios or whatever other services allowing you to get notifications and/or enumerate devices in the network.

Resources