FIWARE: GPS DATA ON CrateDB AND VISUALIZATION ON GRAFANA - gps

Actually, I am experimenting with FIWARE and IoT systems and I need to visualize on Grafana the localization of a specific device using a GPS. All data that GPS sends to Orion Context Broker (OCB) is latitude, longitude, altitude and they are in Cayenne LPP Format. My DataBase is based on CrateDB and QuantumLeap allows me to subscribe to changes in the OCB and copy them to the database
The request from Insomnia is here
For the beginning, I used the following post to subscribe the IoT LoRaWan Agent to the platform that supports this protocol (The Things Network Or ChirpStack)
After the subscription, the system automatically generates a table with data type float and only works with The Things Network, the problem is as soon as I add a second GPS device it is of type "String" instead of being of type "Object" so latitude, longitude, and altitude data do not appear.
Later, I used the data type "geo: point" instead of "float" and it is possible to record GPS data in CrateDB, because it is 2D location but the data is stored in String and Grafana cannot use this type of data Does anyone know what can be the ideal configuration?
Note: CrateDB don't support 3D geolocalization just 2D geolocalization

Solved!!
I added a new object with a new two-variable (latitude and longitude) these ones are created based on the original variable gps_1 type geo_point
Solution create new object

Related

How to use RTCM data from NTRIP caster to correct my GPS position?

I have written a code which performs a connection to a NTRIP caster and receives data in RTCM3 format.
I have been able to decode these messages and I can distinguish them in base to their code such as (1006, 1008, 1013, etc..).
But I don't know which of this data I have to use to correct my GPS position and how to perform this correction.
Could you give me some hints or references?
Always mentioned which module you're using, what are the hardware interfaces.
I don't think you need to decode the data coming from the NTRIP server. Most of the time the RTK module does that on his own, all you have to do is redirect the data coming from the NTRIP server to the RTK module (without changing anything).

How to visualize GPS coordinates on a map using Node red?

I'm trying to track the location of an object/vehicle for this, I'm using a GY-GPS6MV2 module for getting GPS coordinates. I'm streaming those values to Bluemix - Internet of Things cloud platform and trying to visualize the data on maps from node red using the WorldMap node. But while doing so I couldn't map them on the OpenStreetMap.
I have gone through the documentation on WorldMap node. But couldn't get the insights which are useful for me. Can you please help in this context?
Link :WorldMap NodeRed
From the worldmap node docs:
Usage
Plots "things" on a map. The map will be served from
{httpRoot}/worldmap
The minimum msg.payload must contain name, lat and lon properties,
e.g.
{name:"Joe", lat:51, lon:-1.05}
name must be a unique identifier across the whole map. Repeated location updates to the same name move
the point.
At the moment your msg.payload is a string with lat, then 2 new lines and then the lon value. You need to build a msg.payload that matches what's in the doc. This is probably best done directly from the output of the IBM IoT node as it looks to already be a JSON object which will make it easier to extract the correct values.

Is it possible to get a list of available instance types in a specific availability zone for AWS RDS?

I`m trying to modify RDS DB Instance launched in vpc by AWS API using ModifyDBInstance action. I`m not change instance type (instance launched with db.m1.small type and not canged), but I`m reciving message:
AWS Error. Request ModifyDBInstance failed. Cannot modify the instance class because there are no instances of the requested class available in the current instance's availability zone. Please try your request again at a later time. (RequestID: xxx).
According to AWS docs
To determine the instance classes that are available for a particular DB engine, use the DescribeOrderableDBInstanceOptions action. Note that not all instance classes are available in all regions for all DB engines.
So I have two quastions:
Is it possible to get by API only Instance types available in specific AZ? In DescribeOrderableDBInstanceOptions actions responce I have many instance types, which not available. I`m also checked responce of DescribeReservedDBInstancesOfferings action, and it`s doesn`t fit.
Why it possible to launch DBInstance with some instance type, but have troubles on trying to modify it DBInstance without changing instance type?
Any ideas?
It looks like one of the return values listed in this AWS RDS CLI call is AvailabilityZones
AvailabilityZones -> (list)
A list of Availability Zones for the orderable DB instance.
(structure)
Contains Availability Zone information.
This data type is used as an element in the following data type:
OrderableDBInstanceOption
Name -> (string)
The name of the availability zone.
Generally the CLI allows your to filter but it is not support for rds for some reason or another.
--filters (list)
This parameter is not currently supported.
The API returns the object OrderableDBInstanceOption which also has the AZ listed.
To answer #2 is that AWS does have capacity issues from time to time, like any other cloud or service provider, they are generally better at handling it than others. What AZ are you trying to use and size of instance? If you continue to have issues I would open a support ticket with AWS.
The easiest way is to select any one of the Rds instance you have in your infrastructure and click on Modify and there will be one option like dbInstanceTypes it is like drop down where you can find available instance types available in the particular region.

omnet++ Inet - Simulating dynamic access point behaviour

I have to create a particular simulation for a college project. The simulation should feature several mobile nodes cyclically switch between 802.11 access point and station modes. While in station mode, nodes should read the SSIDs of access points around them, and then they should change their SSID in AP mode accordingly. There is no need for connections or data exchange between the nodes beside the SSID reading.
Now, I've been through Omnet/Inet tutorials/documentation (all two of them), and I feel pretty much stuck.
What I could use right now is someone confirming my understanding of the framework giving me some directions on how exactly I should proceed.
From what I understand is Inet does not implement any direct/easy way to do what I'm trying to do. Most examples have fixed connections declared in NED files and hosts with a fixed status (AP or STA) defined in the .ini file.
So my question is basically how do I do that: do I need to extend a module (say, wirelessHost), modifying its runtime behaviour, or should I implement a new application (like UDPApp) to have my node read other SSIDs and change his accordingly? And what is the best way to access an host's SSID?
You may utilize two radios for each mobile node e.g. **.mobilenode[*].numRadios = 2 (see also example in /inet/examples/wireless/multiradio/).
The first radio operates as AP **.mobilenode[*].wlan[0].mgmtType = "Ieee80211MgmtAPSimplified" which has to adapt its SSID.
The second radio serves as STA **.mobilenode[*].wlan[1].mgmtType = "Ieee80211MgmtSTA". Now, you have to sub-class Ieee80211AgentSTA which handles the SSID scanning procedure and has to change the first radio's SSID upon new SSID detection. Then you utilize the adopted sub-class within the simulation. Finally, active scanning has to be activated **.mobilenode[*].wlan[1].agent.activeScan = true.

sending gps data using icomsat v1.1

I am doing my final year project that tracks the vehicle and displays the position on google maps,am using an arduino,GPS module and icomsat v1.1 GPRS module.Am trying to send the GPS data to a web page at my local server with no success,how do i do this, pls help :
this is how am doing it:
//set http param value
GPRS.print("AT+HTTPPARA=\"URL\",\"http://my_domain/gps_tracker.php?");
GPRS.print("visor=false");
GPRS.print("&latitude=");
GPRS.print(latitude);
GPRS.print("&longitude=");
GPRS.print(longitude);
GPRS.print("speed=");
GPRS.print(speedOTG);
GPRS.print("\"");
I suppose that you need to send the url as a single line message, using: println instead of print.
And check if you're receiving or not any data on your GPRS module, or if you're not managing it right.