0
votes

Dispositif d'azur iot à la messagerie en nuage

Je veux écrire une application de console qui écrit le message de périphérique au cloud. J'ai écrit une application de cloud2-périphérique à l'aide de HUB iOT et préconfig tous mes identifiants de périphérique HUB et fonctionne.

Voici mon code d'échantillon pour connecter-2-Cloud-Message à l'aide de C # dans Visual Studio. P>

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Input;
using System.Diagnostics.Tracing;
using Microsoft.Azure.Devices.Client;

namespace Device2CloudApp
{
    class Program
    {

        // private our own fields for connection to IOT.

        private DeviceClient deviceClient;


        // use the device specific connection string.

        private const string IOT_HUB_CONN_STRING = "HostName=eNstaHub.azure-devices.net;DeviceId=GcobaniNumber1;SharedAccessKey="";
        private const string IOT_HUB_DEVICE = "GcobaniNumber1";
        private const string IOT_HUB_DEVICE_LOCATION = "West US";


        /*
         *  We calling all method inside the constructor for memory allocation. 
         */
       public  Program ()
        {

            SendMessageToIOTHubAsync(deviceClient).Wait();

        }

        private async Task SendMessageToIOTHubAsync(DeviceClient deviceClient)
        {
            try
            {
                var payload = "{" +
                "\"deviceId\":\"" + IOT_HUB_DEVICE + "\", " +
                "\"location\":\"" + IOT_HUB_DEVICE_LOCATION + "\", " +
                "\"localTimestamp\":\"" + DateTime.Now.ToLocalTime() + "\"" +
                "}";

                var msg = new Message(Encoding.UTF8.GetBytes(payload));
                System.Diagnostics.Debug.WriteLine("\t{0} > Sending message:[{1}]", DateTime.Now.ToLocalTime(), payload);
                await deviceClient.SendEventAsync(msg);
            }catch(Exception ex)
            {
                System.Diagnostics.Debug.WriteLine("!!!" + ex.Message);
            }
        }


        static void Main(string[] args)
        {
            DeviceClient deviceClient = DeviceClient.CreateFromConnectionString(IOT_HUB_CONN_STRING);

            // creating a Constructor here for method declarion.

            Program prg = new Program();
        }
    }
}


0 commentaires

3 Réponses :


1
votes

Vous avez un Deviceclient local dans la méthode MAIN qui n'est pas celui utilisé lors de la communication avec Azure.

Supprimer celui-là et créer l'instance que vous avez dans la classe à la place.


0 commentaires

0
votes

Il devrait fonctionner comme code suivant. XXX


1 commentaires

Merci équipe, le premier exemple a fait l'astuce que j'avais réussi à se connecter de l'appareil au message Cloud. TelemetryData Point est un bon champ constant à utiliser dans votre classe. Comme il envoie une référence à votre hub IoT pour la surveillance. J'exclure d'autres champs tels que la température, etc., car ne faisaient pas partie de ma portée à ce problème.



0
votes

S'il vous plaît essayez ceci .hope cela aide.

déclarer les constantes d'abord. xxx

puis créer une chaîne de connexion en fonction de symétrickey Xxx

échantillon code de simulateur: xxx


0 commentaires