Ikke forstået som produkter man finder og køber på internettet, men IoT = internet of things, ting med netforbindelse.
Det er noget alle Makere skal igennem. Målet er at måle noget fx CO2-indhold, og lægge dataene på et website i form af en live-graf. Senere kan det komme på tale at styre noget fx en servo eller en lampe via nettet.
Min mus har indkøbt både en NodeMCU og en Wemos D1, som begge er microcontrollere med en WIFI antenne. Jvf. denne tutorial https://www.youtube.com/watch?v=IQVKGAU8jcA, så ser Wemos D1 nemmest ud, og den ligner en Arduino UNO.
1. http://CodeBender.cc, som jeg normalt skriver kode i fordi det ligger i skyen, understøtter ikke Wemos boards.
2. Efter at installere board-drivere og biblioteker i Arduino IDE-miljøet, blev Wemos boarded plugget i, og finder fint de lokale WIFI-netværk, som er i nærheden. Kommer nemt på vores private netværk.
3. De næste tutorials bruger et website til at hente tekst fra en txt-til og sende en email via et php-script. Det ser nemt ud. https://www.youtube.com/watch?v=4Z0gBG8dkqw.
4. Mit website ligger på webhotellet unoEuro. Af en eller anden grund bliver Wemos D1 boarded nægtet adgang til sitet, selv om de rigtige filer ligger der. Jeg kan ikke helt gennemskue hvorfor, jeg bliver nægtet adgang. Kan selvfølgelig godt komme derind via ftp o.l.
Pause
Denne tutorial virker endnu nemmere, og går uden om at bruge website: http://www.instructables.com/id/THE-2016-SUPER-NOOB-FRIENDLY-WAY-Control-an-Arduin/?ALLSTEPS
5. Tjenesten BLYNK har en app til iOS og Android, som kan modtage og sende data til IoT-dimser bl.a. Wemos D1, selv om det IRL er et lidt ældre board. Jeg har hentet appen, oprettet en bruger og sat et program op (det er drag n drop).
Her skal den måle temperatur og luftfugtighed via en DHT11 sensor (5V) og vise dem i appen.
6. Blynk har fået at vide at den får data fra “Wemos D1”, selv om denne tutorialen ovenfor foreskriver noget andet.
7. Koden til Wemos D1 (ses nederst) er sammenskrevet og modificeret efter eksemplerne “ESP8266 standalone” (der er ingen eksempler målrettet Wemos D1) og “DHT”. I modsætning til eksemplet har jeg ikke brugt digital pin 2, men 1, da den er PWM, og det er sikkert nødvendigt for DHT11 sensoren.
8. Upload koden (Husk upload hastighed på 11520 bit/s). Boarded, som vælges i Arduino IDE er “Wemos D1 R2 or mini”. Tryk play i Blynk:
(Slideren er til at styre lysstyrken på en LED i pin D8-GND.)
Lidt flere indstillinger, når temperaturen skal vises:
Det er en ret nem måde at komme i gang med IoT!!
Vil man lave mange advancerede ting i Blynk koster det penge. Det er fair nok. Alligevel er jeg skeptisk. Blynk tager meget af kreativiteten ud af projektet. Det er selvfølgelig sjovt, at se sine data på skærmen blive live-opdateret, men det er ikke mig der har gjort det meste af arbejdet, det har Blynk.
Men hvorfor ikke glæde sig? Jeg kan ikke lave og kode alting selv. Jeg accepterer gladeligt masser af løsninger -tager dem endda for givet. Men her føler jeg, at en løsning, som jeg ville betragte som min egen, var inden for rækkevidde. Men jeg fik den ikke, for far (Blynk), kom og løste det for mig. Tis i bukserne. Ud over det, er dataene ikke rigtigt ude på nettet endnu, da de kun kan ses i appen, som skal downloades.
Jeg faldt over tjenesten https://thingspeak.com/, som vist er skabt til at vise data på nettet. Det må jeg prøve.
/************************************************************** * Blynk is a platform with iOS and Android apps to control * Arduino, Raspberry Pi and the likes over the Internet. * You can easily build graphic interfaces for all your * projects by simply dragging and dropping widgets. * * Downloads, docs, tutorials: http://www.blynk.cc * Blynk community: http://community.blynk.cc * Social networks: http://www.fb.com/blynkapp * http://twitter.com/blynk_app * * Blynk library is licensed under MIT license * This example code is in public domain. * ************************************************************** * This example runs directly on ESP8266 chip. * * You need to install this for ESP8266 development: * https://github.com/esp8266/Arduino * * Please be sure to select the right ESP8266 module * in the Tools -> Board menu! * * Change WiFi ssid, pass, and Blynk auth token to run :) * **************************************************************/ #define BLYNK_PRINT Serial // Comment this out to disable prints and save space #include ESP8266WiFi.h #include BlynkSimpleEsp8266.h //#include SimpleTimer.h #include DHT.h // You should get Auth Token in the Blynk App. // Go to the Project Settings (nut icon). char auth[] = "kode du får fra Blynk"; // Your WiFi credentials. // Set password to "" for open networks. char ssid[] = "camilla-PC-Wireless"; char pass[] = "din kode"; #define DHTPIN 1 // What digital pin we're connected to // Uncomment whatever type you're using! #define DHTTYPE DHT11 // DHT 11 //#define DHTTYPE DHT22 // DHT 22, AM2302, AM2321 //#define DHTTYPE DHT21 // DHT 21, AM2301 DHT dht(DHTPIN, DHTTYPE); //SimpleTimer timer; void sendSensor() { float h = dht.readHumidity(); float t = dht.readTemperature(); // or dht.readTemperature(true) for Fahrenheit delay(500); if (isnan(h) || isnan(t)) { Serial.println("Failed to read from DHT sensor!"); //return; } // You can send any value at any time. // Please don't send more that 10 values per second. //Serial.print(h); //Serial.println(t); Blynk.virtualWrite(V5, h); Blynk.virtualWrite(V6, t); } void setup() { Serial.begin(9600); Blynk.begin(auth, ssid, pass); dht.begin(); delay(2000); // Setup a function to be called every second //timer.setInterval(1000L, sendSensor); sendSensor(); } void loop() { Blynk.run(); sendSensor(); }