标签: iot

即使Android M上的移动数据为ON(带连接),也可通过WiFi(无连接)发送请求

我必须将UDP数据包发送到没有互联网连接的WiFi模块(提供自己的AP)但是当我将移动设备连接到AP时,Android会重定向移动数据接口上的数据包,因为它已经连接了互联网.

我已经使用下面的代码来完成我的工作,但它似乎不适用于Android M.

@TargetApi(Build.VERSION_CODES.LOLLIPOP)
private void setWifiInterfaceAsDefault() {
    ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);

    NetworkRequest.Builder builder = new NetworkRequest.Builder();
    NetworkRequest networkRequest= builder.addCapability(NetworkCapabilities.NET_CAPABILITY_NOT_RESTRICTED)
            .addTransportType(NetworkCapabilities.TRANSPORT_WIFI)
            .build();

    connectivityManager.requestNetwork(networkRequest, new ConnectivityManager.NetworkCallback());
}
Run Code Online (Sandbox Code Playgroud)

我还补充道

<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
Run Code Online (Sandbox Code Playgroud)

在我的AndroidManifest.xml上,我确保自己Settings.System.canWrite(this)返回true但仍然没有.

提前致谢.

networking android android-wifi iot android-6.0-marshmallow

14
推荐指数
2
解决办法
3871
查看次数

Azure IoT Hub中的TCP支持

Azure IoT Hub支持AMQP,MQTT,HTTP协议.为了自定义这些协议,我们有Azure IoT协议网关.我可以在MQTT协议定制上找到好的样本.我需要一些使用Azure IoT协议网关进行基于TCP的协议自定义的示例代码.

编辑(为了得到答案): OP提出的问题是使用Azure协议网关支持基于TCP的专有协议的示例.目前,IoT中心仅支持AMQP,MQTT和HTTP.虽然这些协议实际上依赖于TCP,但如果没有额外的AMQP,MQTT或HTTP层,则集线器不支持直接TCP连接.正如解释在这里,我们需要一个定制的基于TCP协议的一个基本的例子.

想象一下,一个基本设备只能通过TCP在给定的IP地址/端口上发送一些专有的有效载荷:我们需要一个网关定制的例子,允许该设备将数据发送到集线器.

协议网关的当前代码设计很差,因为它严重依赖于MQTT.

也加上一些赏金.

c# tcp azure iot azure-iot-hub

14
推荐指数
1
解决办法
1951
查看次数

AWS IOT - Credential的范围应该是正确的服务

我正在尝试访问一个简单的AWS IOT REST服务,但我还没有成功.这就是我做的.

  1. 我在我的aws中创建了一个iam用户,并下载了访问密钥和密钥
  2. 使用该用户登录AWS IOT并创建"事物"
  3. 从thing的属性中我找到了影子的REST URL
  4. 使用Postman的新"aws签名"功能,并为其提供访问密钥,密钥,区域(us-east-1)和服务名称(iot)
  5. 试图"获取"端点,这就是我得到的 -

    { "message": "Credential should be scoped to correct service. ", "traceId": "be056198-d202-455f-ab85-805defd1260d" }

  6. 我认为邮递员有问题,所以我尝试使用连接到S3的aws-sdk-sample示例并将其更改为连接到IOT URL.这是我的程序片段(Java)

    String awsAccessKey = "fasfasfasdfsdafs";
    String awsSecretKey = "asdfasdfasfasdfasdfasdf/asdfsdafsd/fsdafasdf";
    
    URL  endpointUrl = null;
    String regionName = "us-east-1";
    try {
        endpointUrl = new URL("https://dasfsdfasdf.iot.us-east-1.amazonaws.com/things/SOMETHING/shadow");
    }catch (Exception e){
        e.printStackTrace();
    }
    Map<String, String> headers = new HashMap<String, String>();
    headers.put("x-amz-content-sha256", AWSSignerBase.EMPTY_BODY_SHA256);
    
    AWSSignerForAuthorizationHeader signer = new AWSSignerForAuthorizationHeader(
            endpointUrl, "GET", "iot", regionName);
    String authorization = signer.computeSignature(headers,
            null, // no query parameters …
    Run Code Online (Sandbox Code Playgroud)

amazon-web-services iot aws-sdk aws-iot

13
推荐指数
1
解决办法
5082
查看次数

Raspbian/ARM上的.NET Core?

我们知道.NET Core支持Linux x64和x86,MacOS X,Windows ......但它是否可以在Linux中用于Raspberry Pi?(例如Raspbian).

.net raspberry-pi raspbian iot .net-core

13
推荐指数
1
解决办法
5972
查看次数

如何在C++中使用Bluez5 DBUS API来配对和连接新设备?

我正在为英特尔爱迪生编写一个蓝牙驱动程序.Board软件是最新的,我正在使用基于Eclipse的IDE进行开发.此爱迪生版本中的Bluez版本号为5.37.

我正在设计一个必须满足以下要求的系统:

  • 扫描附近的蓝牙设备.[X]
  • 根据名称和MAC地址检测传感器设备.[X]
  • 自动配对和连接传感器设备.[]

最后一项是问题,因为我可以检测传感器设备,但我无法使用bluez5接口配对它们.到目前为止,我已尝试使用D-BUS接口,但由于我不断收到以下错误消息,因此无法正常工作:

接口"org.bluez.Manager"上带有签名"s"的方法"FindAdapter"不存在

代码在此处显示.请注意:

  • DBusConnection*conn - > DBUS_BUS_SYSTEM
  • const char*adapter - >"hci0".

码:

DBusMessage *msg, *reply;
DBusError err;
const char *reply_path;
char *path;

msg = dbus_message_new_method_call("org.bluez", "/","org.bluez.Manager", "FindAdapter");
dbus_message_append_args(msg, DBUS_TYPE_STRING, &adapter,DBUS_TYPE_INVALID);
dbus_error_init(&err);
reply = dbus_connection_send_with_reply_and_block(conn, msg, -1, &err);
dbus_message_unref(msg);
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

c++ bluetooth bluez iot intel-edison

13
推荐指数
1
解决办法
2759
查看次数

HTTP和COAP之间的主要区别是什么?

HTTP主要用于查看网页.Coap是IoT或WSN的HTTP简化版本.虽然COAP基于UDP,但它应该有ACK消息来模拟TCP.由于COAP比HTTP简单,因此它具有更低的延迟并且消耗更少的功率.

那么,为什么浏览器和Web服务器不能用COAP替换HTTP?鉴于以前的论点,是否预计COAP将完全取代HTTP?这只是时间问题吗?是否有任何仅受HTTP支持的功能?

protocols http coap iot

12
推荐指数
2
解决办法
5498
查看次数

物联网请求响应协议

我们需要构建一个可以与运行Android变体的某些嵌入式设备通信的服务器.我们需要能够向设备发送命令,并接收响应.一个简单的命令可能是询问设备的状态.我们不会有HTTP,所以我们需要让客户端/设备与服务器建立连接.

我们正在考虑使用MQTT,因为它具有许多不错的属性(QoS,轻量级,为物联网构建),但它本身不支持请求响应工作流.

我们已经考虑过在MQTT之上构建RPC,但在我们开始之前,我只是想让人们对此问题有所了解.Websockets,WAMP,ZeroMQ会更好吗?


编辑:

Q1: 我们甚至需要RPC吗?

Q2: 有没有一种方法来构建系统,我总是发送异步类型的消息,仍然提供良好的用户体验?

Q3: 任何例子?

寻找实施示例并亲身体验使用单个设备构建物联网通信系统的经验.

parallel-processing android low-latency mqtt iot

12
推荐指数
2
解决办法
1559
查看次数

Android AllJoyn:与第二台机器的连接给出了BusAttachement的错误

我开发了两种不同传感器的应用程序.它们分别正常工作,但是当我尝试使用它们来创建两个不同的总线时,Alljoyn给出了这个例外.

org.alljoyn.services.common.BusAlreadyExistException:先前已使用BusAttachment设置了该对象.

下面是我的连接源代码.谁能告诉我为什么我遇到这个问题.

private void connect() 
        {           org.alljoyn.bus.alljoyn.DaemonInit.PrepareDaemon(getApplicationContext());

            bus = new BusAttachment("ControlPanelBrowser", BusAttachment.RemoteMessage.Receive);
            bus.registerBusListener(new BusListener());


            Status status = bus.registerBusObject(mControlPanelSignalInterface, Constants.SERVICE_PATH);


            if (status != Status.OK) {

                Log.d(TAG, "Problem while registering bus object");

            }   

            SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
            srpPassword = settings.getString(PREFS_PASSWORD, DEFAULT_SECURED_SRP_PASSWORD);

            SrpAnonymousKeyListener authListener = new SrpAnonymousKeyListener(this, logger, AUTH_MECHANISMS);
            Status authStatus = bus.registerAuthListener(authListener.getAuthMechanismsAsString(), 
                    authListener, getKeyStoreFileName());

            if ( authStatus != Status.OK ) {
                Log.e(TAG, "Failed to register AuthListener");
            }

            status = bus.connect();


            if (Status.OK == status){

                String daemonName = Constants.DAEMON_NAME_PREFIX + ".ControlPanelBrowser.G" …
Run Code Online (Sandbox Code Playgroud)

android sensor android-sensors alljoyn iot

12
推荐指数
1
解决办法
259
查看次数

如何修复颤振中的“SocketException:OS 错误:连接超时,errno = 110,地址 = 192.168.5.10,端口 = 49590”错误

我正在尝试将我的 android 应用程序连接到 Tcp iot 服务器,首先我使用 wifi 连接到 tcp 服务器,然后尝试套接字连接,但它显示连接超时的相同错误。

      print(r);
    }).catchError((e) {
      print(e);
    });
Run Code Online (Sandbox Code Playgroud)

wifi连接没有任何错误。


Socket.connect("192.168.5.10", 5800).then((socket) {
    print('Connected to: '
      '${socket.remoteAddress.address}:${socket.remotePort}');
    socket.destroy();
  });
Run Code Online (Sandbox Code Playgroud)

此处显示未处理的异常:SocketException: OS Error: Connection timed out, errno = 110, address = 192.168.5.10, port = 49590

tcp socket.io dart iot flutter

12
推荐指数
1
解决办法
6395
查看次数

水平扩展mosquitto经纪人

我正在考虑将mosquitto作为MQTT经纪人.根据我的阅读,我意识到Mosquitto不支持水平缩放.

到目前为止,我的要求的所有其他标准都可以通过Mosquitto来满足.

我不确定这个问题是否过于通用或广泛,但我想知道的是,如果有任何方法可以实现扩展功能,还可以为Mosquitto实现负载平衡等.

broker mqtt mosquitto iot

11
推荐指数
1
解决办法
7594
查看次数