Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

MKR1000 Temperatur- und Feuchtigkeitssensor

Komponenten und Verbrauchsmaterialien

Arduino MKR1000
× 1
DHT22-Temperatursensor
× 1

Apps und Onlinedienste

Microsoft Azure
Arduino-IDE
Microsoft Visual Studio 2015

Über dieses Projekt

Paul DeCarlo hat einen großartigen Artikel über das Senden von Wetterdaten von einem Particle Photon an Microsoft Azure. Ich wollte dies mit dem neuen Arduino MKR1000 duplizieren.

Das Photon verwendet einen Webhook, um Daten aus der Particle Cloud an Azure zu senden. Da der MKR1000 HTTPS unterstützt, können Daten direkt an Azure gesendet werden. In dieser Anleitung wird Ihr MKR1000 mit Azure verbunden und ein Großteil des serverseitigen Codes aus dem Microsoft Connect the Dots-Projekt wiederverwendet.

Hardware

Ein DHT22-Sensor wird verwendet, um Temperatur und Luftfeuchtigkeit zu messen. Sie können den Code auch ändern, um den DHT11-Sensor zu unterstützen. Verdrahten Sie den DHT-Sensor auf dem Steckbrett. Senden Sie 3,3 Volt vom MKR1000 an den ersten Pin. Platzieren Sie einen 10.000Ω Pullup-Widerstand von 3,3V an Pin 2. Verbinden Sie Pin 3 mit Masse. Führen Sie ein Kabel von Pin 2 am DHT22 zu Pin 6 am MKR1000.

Weitere Informationen zu DHT22 finden Sie im DHT-Tutorial von Adafruit.

Arduino-IDE

Öffnen Sie die Arduino-IDE. Verwenden Sie den Boards Manager, um das MKR1000-Board zu installieren. Verwenden Sie den Bibliotheksmanager, um die WiFi101-Bibliothek zu installieren.

HTTPS

Der Arduino MKR1000 unterstützt HTTPS, aber wir müssen die Zertifikate für die Websites, die wir besuchen, manuell installieren. Dies ist notwendig, da der Speicher auf dem Gerät begrenzt ist. Dies ist ein zweistufiger Prozess. Zuerst laden wir eine Skizze auf die Tafel und führen dann ein Programm auf unserem Computer aus, um die Zertifikate hochzuladen.

Verwenden Sie die Arduino-IDE, um die Firmware-Updater-Skizze auf Ihr Board zu laden.

Laden Sie den WiFi101-Firmware-Updater herunter. Entpacken Sie das Archiv und führen Sie winc1500-uploader-gui.exe aus.

Das HTTPS-Zertifikat für Azure Event Hubs wird für servicebus.windows.net ausgestellt, sodass jede Service Bus-URL funktionieren sollte. Geben Sie ctd-ns.servicebus.windows.net in das Textfeld ein. Wählen Sie Ihren COM-Port und laden Sie die Zertifikate hoch.

Arduino-Skizze

Klonen Sie die Arudino-Skizze von https://github.com/don/MKR1000-Azure oder laden Sie sie herunter. Bearbeiten Sie die Registerkarte ssid und ändern Sie die ssid[] und Passwort[] an Ihre Netzwerkeinstellungen anzupassen. Laden Sie die Skizze auf Ihr MKR1000-Board hoch.

Wenn Fehler auftreten, müssen Sie möglicherweise den Arduino Library Manager (Skizze -> Bibliothek einschließen -> Bibliotheken verwalten...) verwenden, um die "DHT-Sensorbibliothek", die ArduinoJson- oder die RTCZero-Bibliothek zu installieren.

Öffnen Sie den Arduino Serial Monitor (Tools -> Serial Monitor) und stellen Sie sicher, dass die Daten an Azure gesendet werden.

Die Skizze verwendet einen Event Hub aus dem Connect the Dots-Projekt. Das bedeutet, dass wir die vorhandene Azure-Web-App verwenden können, um unsere Daten anzuzeigen. Öffnen Sie http://connectthedotsdx.azurewebsites.net/ in Ihrem Browser. Sie sollten Daten von MKR1000 sehen. Da es sich um einen "öffentlichen" Event Hub handelt, werden Ihre Sensordaten mit anderen Sensoren gemischt. Wenn mehrere Personen diesen MKR1000-Code ausführen, möchten Sie möglicherweise den Anzeigenamen ändern oder Anleitung im createJSON Funktion.

Erstellen Sie Ihren eigenen Event Hub 

Die Ausführung mit dem vorhandenen Event Hub ist in Ordnung, Sie können jedoch auch Ihren eigenen Event Hub für Ihre Daten erstellen. Dies erfordert Visual Studio und ein Azure-Abonnement. Die Free Visual Studio 2015 Community Edition funktioniert einwandfrei. Sie können sich auch für ein kostenloses Azure-Testabonnement anmelden.

Wir verwenden Code aus dem Connect the Dots-Projekt. Klonen Sie das Projekt mit git oder verwenden Sie die Schaltfläche ZIP herunterladen auf der Github-Seite.

git-Klon https://github.com/Azure/connectthedots.git

Sie können den Anweisungen von Microsoft zum Erstellen der Azure-Ressourcen folgen, die eine Weile dauern, Ihnen jedoch ein tiefes Verständnis dafür vermitteln, wie die Teile zusammengesetzt sind. Ich empfehle, das AzurePrep-Projekt aus dem geklonten Repository zu verwenden, um diese Ressourcen automatisch zu erstellen.

Verwenden Sie Visual Studio, und öffnen Sie die AzurePrep-Lösung über connectthedots\Azure\AzurePrep. Führen Sie das AzurePrep-Projekt im Release-Modus aus .

Die Anwendung öffnet einige Fenster, in denen Sie aufgefordert werden, sich bei Azure anzumelden und Ihren Ressourcen Berechtigungen zu erteilen. Beantworten Sie danach eine Reihe von Fragen im Terminal, um die Ressourcen zu erstellen.

Sie müssen einen Namen für Ressourcen auswählen. Die Dokumentation zum Verbinden der Punkte empfiehlt den Namen ctd (verbinden Sie die Punkte) + Ihre Initialen. Ich habe zum Beispiel "ctddc" gewählt.

Führen Sie zurück in Visual Studio das CreateWebConfig-Ziel von AzurePrep aus, um eine Konfigurationsdatei für die Website zu erstellen. Melden Sie sich an, folgen Sie den Anweisungen. Eine web.config-Datei wird auf den Desktop geschrieben.

Kopieren Sie web.config von Ihrem Desktop in das connectthedots-Websiteprojekt, connectthedots\Azure\WebSite\ConnectTheDotsWebSite.

Öffnen Sie die ConnectTheDotsWebsite-Lösung von connectthedots\Azure\WebSite in Visual Studio.

Sie müssen dem Projekt die neue web.config-Datei hinzufügen. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf die Lösung. Wählen Sie "Hinzufügen -> Vorhandener Artikel..." aus dem Menü. Navigieren Sie zu ConnectTheDotsWebSite und fügen Sie web.config hinzu.

Führen Sie das Projekt in Microsoft Edge aus. Sie werden keine Daten sehen, bis wir die Skizze auf dem MKR1000 aktualisieren.

Die Arduino-Skizze benötigt einen SAS-Schlüssel, um auf die Azure-Ressourcen zuzugreifen. Verwenden Sie das Event Hubs Signature Generator-Tool von Sandrino Di Mattia, um den Schlüssel im richtigen Format zu generieren. Download von https://github.com/sandrinodimattia/RedDog/releases. Entpacken Sie das Tool und starten Sie RedDog.ServiceBus.EventHubs.SignatureGenerator.

Füllen Sie die Benutzeroberfläche mit dem zuvor erstellten Namespace aus. Da ich beim Erstellen der Azure-Ressourcen ctddc verwendet habe, ist mein Namespace ctddc-ns. Der Hub-Name ist ehdevices. Sowohl der Herausgeber- als auch der Absenderschlüsselname sollten D1 lauten. Ich habe die Token-TTL auf 1 Jahr (525.600 Minuten) eingestellt. Die Signatur sollte für die Lebensdauer des Geräts gültig sein.

Sie müssen sich beim Azure-Portal anmelden, um den Absenderschlüssel abzurufen. Wählen Sie im linken Menü Durchsuchen und verwenden Sie den Filter, um Event Hubs zu finden.

Event Hubs öffnet ein neues Fenster im alten Azure-Portal.

  • Klicken Sie auf den von Ihnen erstellten Namespace.
  • Event Hubs auswählen
  • Geräte auswählen
  • Konfiguration auswählen
  • Scrollen Sie nach unten und kopieren Sie den Primärschlüssel für D1

Wechseln Sie zurück zum Signaturgenerator-Tool und fügen Sie den Schlüssel in das Absenderschlüsselfeld ein. Klicken Sie auf die Schaltfläche Generieren, um eine Signatur zu generieren.

Kopieren Sie die generierte Signatur.

Öffnen Sie erneut die MKR1000-Azure-Skizze in der Arduino IDE. Wir müssen den hostname[] ersetzen und authSAS[] Variablen mit unseren neuen Event-Hub-Einstellungen. Fügen Sie die generierte Signatur in die char authSAS[] ein Bereich. Bearbeiten Sie das Hostnamen-Feld so, dass es Ihrem Hostnamen entspricht. z.B. char hostname[] ="ctddc-ns.servicebus.windows.net";

Speichern Sie die Skizze und laden Sie sie auf Ihren MKR1000 hoch. Öffnen Sie optional den Serial Monitor und überprüfen Sie, ob die Daten an Azure gesendet werden.

ALT+TAB, um die in Microsoft Edge ausgeführte „connect the dots“-Website zu starten, und Sie sollten beginnen, Daten von Ihrem Gerät anzuzeigen.

IoT Hub

Azure IoT Hub ist neuer als Event Hub und möglicherweise besser für Ihr Projekt geeignet. IoT Hub unterstützt Messaging von Gerät zu Cloud (wie dieses Projekt) und Messaging von Cloud zu Gerät.

Verwenden Sie das Azure-Portal, um einen neuen IoT Hub zu erstellen.

Der Geräte-Explorer wird verwendet, um Signaturen für den Zugriff auf IoT Hub zu generieren. Laden Sie SetupDeviceExplorer.msi von https://github.com/Azure/azure-iot-sdks/releases herunter.

Gehen Sie zurück zum Azure-Portal und öffnen Sie den neuen Iot-Hub. Klicken Sie auf das Schlüsselsymbol, wählen Sie die Zeile iothubowner aus, kopieren Sie die Verbindungszeichenfolge für den Primärschlüssel.

Öffnen Sie den Geräte-Explorer, fügen Sie die Verbindungszeichenfolge ein und klicken Sie auf "Aktualisieren".

Klicken Sie auf die Registerkarte Verwaltung. Klicken Sie unter Aktionen auf die Schaltfläche Erstellen. Geben Sie D1 als Geräte-ID ein und klicken Sie auf Erstellen.

Markieren Sie die Zeile D1 und klicken Sie auf die Schaltfläche SAS-Token und generieren Sie einen neuen Token.

Öffnen Sie die MKR1000-Azure-Skizze in der Arduino IDE.

Ersetzen Sie den Hostnamen[] mit Ihrem IoT-Hub-Namen + ".azure-devices.net". authSAS[] aktualisieren mit dem mit dem Geräte-Explorer generierten Wert. Achten Sie darauf, nur den Teil des SAS-Tokens nach "SharedAcessSignature=" zu kopieren. Passen Sie den URI so an, dass er auf IoT Hub verweist.

char hostname[] ="hacksterdemo.azure-devices.net";char authSAS[] ="SharedAccessSignature sr=hacksterdemo.azure-devices.net%2fdevices%2fD1&sig=jnyTV8j2%2bY9BJ9fyphRyzul3b 1490944761";String deviceName ="D1";String uri ="/devices/" + deviceName + "/messages/events?api-version=2016-02-03"; 


Bearbeiten Sie den Code in der Funktion sendEvent, die nach einer gültigen Antwort sucht. Event Hub sendet ein HTTP 201, um den Erfolg anzuzeigen. IoT Hub sendet ein HTTP 204.

Ändern

if (response.startsWith("HTTP/1.1 201")) {

An

if (response.startsWith("HTTP/1.1 204")) {

Verwenden Sie die Arduino IDE, um die Skizze auf Ihren Arduino MKR1000 hochzuladen.

Wechseln Sie im Geräte-Explorer zur Registerkarte Daten. Klicken Sie auf die Schaltfläche „Überwachen“, um die an den Event Hub gesendeten Daten anzuzeigen.

Da dieses Projekt Daten vom Gerät zur Cloud sendet, verwende ich HTTP POST, um die Daten zu senden. Es gibt auch Bibliotheken zum Senden und Empfangen von Daten mit Azure IoT Hub. Leider sind sie IMO noch nicht sehr Arduino-ähnlich oder benutzerfreundlich. Wenn Ihr Gerät Daten von Azure empfangen soll, sind die Bibliotheken möglicherweise hilfreicher. Sehen Sie sich alternativ den Blog-Beitrag von Mohan Palanisamy zum Senden von Daten vom IoT-Hub an einen MKR1000 an.

In diesem Beitrag wurde gezeigt, wie Sensordaten von MRK1000 an Azure Event Hubs und Iot Hub gesendet werden. Wir haben die vorhandene Codeansicht verwendet und die Daten grafisch dargestellt. Weitere Möglichkeiten zum Schreiben von Code zum Speichern, Bearbeiten und Anzeigen Ihrer Daten mit Azure finden Sie im Connect the Dots-Projekt.

Nun, da Sie fertig sind, möchten Sie möglicherweise Ressourcen, die Sie nicht verwenden, herunterfahren oder löschen, um den Betrag zu begrenzen, der Ihnen in Rechnung gestellt wird. Die AzurePrep-Lösung verfügt über ein ClearResources-Projekt, das Sie beim Entfernen der Azure-Dienste unterstützt.

Code

Geräte-Explorer
Tool für IoT-Hub. Download SetupDeviceExplorer.msihttps://github.com/Azure/azure-iot-sdks/releases
Verbinde die Punkte
Azure-Beispielcodehttps://github.com/Azure/connectthedots
MKR1000-Arduino
Arduino-Quellcodehttps://github.com/don/MKR1000-Azure
WiFi101-Firmware-Updater
Tool zum Hinzufügen von TLS-Zertifikaten zu MKR1000https://github.com/arduino-libraries/WiFi101-FirmwareUpdater/releases/latest
Event Hubs-Signaturgenerator
Tool zum Generieren von Azure-Anmeldeinformationen für MKR1000https://github.com/sandrinodimattia/RedDog/releases

Schaltpläne

Poste ein Foto, da es kein MKR1000 Fritzing Teil gibt. Details zur Verkabelung finden Sie im Artikeltext.

Herstellungsprozess

  1. Arduino-Sensor – Typen und Anwendungen
  2. Funktionsweise von Feuchtigkeitssensoren und ihre Anwendungen
  3. DHT11-Sensor und seine Funktionsweise
  4. Aeroponik mit Raspberry Pi und Feuchtigkeitssensor
  5. So überprüfen und kalibrieren Sie einen Feuchtigkeitssensor
  6. DHT11-Sensor mit LEDs und einem Piezo-Lautsprecher
  7. Temperatur- und Feuchtigkeitsdatenlogger
  8. Arduino-Temp. Monitor und Echtzeituhr mit 3.2 Display
  9. Arduino Cloud Sensor Tower
  10. BME280 Temperatur, Luftfeuchtigkeit und Druck auf dem Nextion-Display