Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Je Arduino Besturen met Google Assistant – Complete Stapsgewijze Tutorial

Onderdelen en benodigdheden

Arduino UNO1
Espressif ESP8266 ESP-01 module1

Apps en online diensten

  • Arduino IDE
  • Microsoft Visual Studio 2017 (voor servercode)
  • IFTTT account
  • Google Assistant (op Android/iOS)

Over dit project

Leer hoe je een verbinding maakt tussen een internetdienst en een Arduino-board. Aan het einde van deze tutorial kun je:

  • Data van Google Assistant ontvangen
  • IFTTT applets gebruiken
  • Webhooks en HTTP-requests begrijpen
  • Met je Arduino praten via spraakcommando's
Je Arduino Besturen met Google Assistant – Complete Stapsgewijze Tutorial

Google Assistant & IFTTT Applets

Google Assistant is Google's AI virtuele assistent, beschikbaar op mobiele apparaten en smart home devices. Het ondersteunt tweerichtingsgesprekken, herkent spraak uitstekend en reageert snel. IFTTT (If This Then That) is een gratis webservice om eenvoudige conditionele kettingen (applets) te maken tussen diensten zoals Gmail, Facebook, Telegram, enz.

Je Arduino Besturen met Google Assistant – Complete Stapsgewijze Tutorial

Webhook & JSON

Een webhook is een HTTP-callback die een webapplicatie kan activeren. JSON (JavaScript Object Notation) is een lichtgewicht dataformaat voor asynchrone communicatie, vaak als vervanger van XML.

Je Arduino Besturen met Google Assistant – Complete Stapsgewijze Tutorial

Google Assistant naar Arduino

We sturen een string van Google Assistant via IFTTT webhook naar een server/database. De ESP8266 haalt de data op en stuurt het via seriële poort naar de Arduino, die de opdracht uitvoert (bijv. PWM instellen, pin schakelen).

Schakeling

Je Arduino Besturen met Google Assistant – Complete Stapsgewijze Tutorial

ESP-01 TX/RX verbonden met Arduino Serial (bijv. pins 0/1 of SoftwareSerial). ESP-01 voeding 3,3V (let op: niet 5V!). Arduino UNO via USB gevoed.

Implementatie

  1. Google Assistant apparaat: Android telefoon of ondersteund device. Ga naar assistant.google.com.
  2. IFTTT applet aanmaken:
    • Ga naar ifttt.com, maak account, klik My Applets → New Applet.
    • THIS: zoek Google Assistant, kies Say a phrase with a number ingredient. Voorbeeldzin: Set PWM of pin 9 to # (de # is het getal). Voeg alternatieve zinnen toe. Antwoord: The PWM is updated.
    • THAT: zoek Webhooks, kies Make a web request. URL: jouw server endpoint. Method: POST, Content-Type: application/json. Body: {"Number":"{{NumberField}}"}.
Je Arduino Besturen met Google Assistant – Complete Stapsgewijze Tutorial

Server en Database

Voorbeeldservercode (C# ASP.NET) om IFTTT-webhooks te ontvangen en in database op te slaan. Downloadbaar via projectlink. Pas modellen aan naar wens.

ESP8266 & Arduino Code

Installeer ArduinoJson library via Library Manager in Arduino IDE.

ESP-01 Code (haalt data op van server)

#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>
#include <ArduinoJson.h>

const char* ssid = "YOUR_SSID";
const char* password = "YOUR_PASSWORD";

void setup() {
  Serial.begin(115200);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.println("Connecting...");
  }
}

void loop() {
  if (WiFi.status() == WL_CONNECTED) {
    HTTPClient http;
    http.begin("https://yourip/api/Home/GetAllApp"); // jouw endpoint
    int httpCode = http.GET();
    if (httpCode > 0) {
      String payload = http.getString();
      Serial.println(payload); // stuurt JSON naar Arduino
    }
    http.end();
  }
  delay(3000);
}

Arduino Code (voert commando uit)

String inputString = "";
String buff;
bool stringComplete = false;
bool id;
int f, buf;
char x;

void setup() {
  Serial.begin(9600);
  inputString.reserve(200);
}

void loop() {
  if (stringComplete) {
    // zoek "id" in JSON
    f = 0;
    while (f < 100) {
      if (inputString.substring(f, f+2) == "id") { id = true; break; }
      f++;
    }
    if (id) {
      x = inputString.charAt(f + 4); // verwacht "id":4 voor PWM pin 9
    }
    if (x == '4') {
      f = 0;
      while (f < 100) {
        if (inputString.substring(f, f+6) == "number") {
          f += 9; // spring naar waarde
          buff = "";
          for (int i = 0; i < 3; i++) {
            char c = inputString.charAt(f + i);
            if (c == '\"') break;
            buff += c;
          }
          buf = buff.toInt();
          analogWrite(9, buf); // PWM op pin 9
          break;
        }
        f++;
      }
    }
    inputString = "";
    stringComplete = false;
  }
}

void serialEvent() {
  while (Serial.available()) {
    char inChar = (char)Serial.read();
    inputString += inChar;
    if (inChar == '\n') stringComplete = true;
  }
}
Je Arduino Besturen met Google Assistant – Complete Stapsgewijze Tutorial
Je Arduino Besturen met Google Assistant – Complete Stapsgewijze Tutorial

Wat kun je er verder mee?

  • Voeg commando's toe voor digitale pinnen, relaismodules, verlichting, enz.
  • Stuur data van Arduino terug naar Google Assistant (bijv. sensorwaarden).

Productieproces

  1. Geïntegreerde QR, RFID en Temperatuurverificatie Toegangscontrolesysteem
  2. Universele Android-afstandsbediening bouwen met Arduino, 1Sheeld en IR-besturing
  3. Slimme spaarpot bouwen: Muntenacceptor besturen met Arduino Nano
  4. Een LED bedienen via Bluetooth met Arduino – Eenvoudige DIY Handleiding
  5. Twee Stappenmotors Sturen met Arduino Nano & Joystick – Simpele Tutorial
  6. Arduino & MPU6050: Precieze Servomotor Besturing met SG90 & MG996R
  7. Spraakgestuurde huishoudapparaten: Bluetooth-besturing met Google Assistant
  8. u-blox LEA‑6H GPS Module: Arduino & Python Integratie Handleiding
  9. Spraakherkenning & Synthese Meesteren op Arduino Due
  10. ThimbleKrox: Vingergemonteerde Muizenbesturing met Arduino Micro & MPU-6050
  11. Real-time RFID aanwezigheidssysteem met Arduino en Google Sheets