Try   HackMD

- Guide skriven av Noor Latif 2020-12-03

Internet via USB med ljussensor

"It's dangerous to go alone in the dark.
Here take this photoresistor and display values online!"

Vi använder MQTT protokollet för att läsa av en ljussensor kopplad till en Arduino UNO. Det tillåter framtida möjligheter att ansluta enheter till bl.a Google Home, Apple HomeKit, Siri, Google Now. MQTT är även känt för sin låga strömförbrukning och integrering med IFTT (hemautomatisering).

För att göra allt detta så behöver vår Arduino UNO internettillgång, men eftersom detta inte finns inbyggt på vår UNO så får vi emulera internet genom att köra en internet gateway på Arduino COM porten kopplad till datorns USB port.

Vi utnyttjar sedan dashboard- och IoT-tjänsten Cayenne som vår MQTT broker och för att fjärrstyra arduinon från app/webbgränssnitt.

Innehållsförteckning

Komponentlista

Komponenter
Ett Cayenne konto
Arduino UNO R3
Ljussensor
Breadboard
3st labbsladdar

Kodlösningar

1. Flödesschema

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

2. Felsökningskod

"Debugging sketch"
Används i debugging syften för att säkerställa sensorfunktionen. Kodinstruktioner återfinns i videon på steg 3.

int sensorPin = A0; // Pin# for Analog Output int ledPin = 13; // Internal LED light int sensorValue = 0; // Sensor value storage /* light intensity * high values for bright environment * low values for dark environment */ int threshold = 100; //Light threshold value void setup() { Serial.begin(9600); pinMode(ledPin, OUTPUT); } void loop() { sensorValue = analogRead(sensorPin); //Save the brightness level Serial.print("Current light value: "); Serial.println(sensorValue); //Print the brightness level if (sensorValue < threshold) { //If brightness threshold is reached. digitalWrite(ledPin, HIGH); //Turn Led on } else { digitalWrite(ledPin, LOW); //Turn Led off } delay(100); // Increase delay for lower power usage }

3. Generera fungerande onlinekod!

Komplett guide med användning av Cayenne IoT Cloud. Jag går igenom hur man kan läsa av ljussensorn på nätet och hur vi kan aktivera en "alert" som mailar dig när ett visst ljusvärde nås. Videon är väldigt kompakt, så pausa där det behövs! -4min

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Kopplingsdiagram

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Kopplingsguide

Glöm inte videoguiden för Cayenne molnet!

  • Ljussensorn:
    Dubbelkolla den faktiska kopplingen med en multimeter. Kvalitetskontrollen är bristande på dessa givare.
    1. Koppla 5V till pinnen S.
    2. Koppla GND till mittpinnen.
    3. Koppla - till A0 på Arduinon.
  • LED lampan:
    1. LED pin 13 är den
      inbyggda LED-indikatorn på Arduino UNO och behöver inte kopplas.
    2. Lampan ska lysa om det blir för mörkt.

Bra att veta

  • Tillverkaren hade markerat ljussensorn fel på mitt ex. Använd multimeter eller testkoden om du känner dig osäker.
  • En resistor finns inbyggd i denna ljussensor. Därför matar vi in 5V strömmen direkt.
  • Stäng av Cayenne servern innan du laddar upp ny kod för att frigöra COM-porten.

Bonus: Gör så att du får ett mail om det blir ljust i rummet istället!
Utmaning: Använd Ethernet Shield W5500 sketchen med din Ethernetsköld i Cayenne istället för USB.