Professional Documents
Culture Documents
Πτυχιακή Εργασία
Βλαγοΐδης Νικόλαος(ΑEΜ:1448)
1
Abstract
The purpose of this thesis is to develop a Wireless Waterflow Sensor and the transfer of
the data collected to cloud server. For the implementation of the system we use an Arduino
programmable board , a WiFi Module ESP8266 , a Xiaomi Power Bank and the Thingspeak.com
platform. After the installation of the system the user can at any time see the data collected in
tabular and graphic through the platform for further analysis and information.
2
Πίνακας Περιεχομένων
Σύνοψη 1
Abstract 2
0. Εισαγωγή 6
0.1 Πρόβλημα παρατήρησης ροής υγρού 7
0.2 Internet Of Things 9
1. Μοφρές και τύποι Ροόμετρων 9
1.1 Ροόμετρα Μεταβαλλόμενης Επιφάνειας 9
1.2 Ροόμετρα Υπερήχων 10
1.3 Μαγνητικά Ροόμετρα 11
1.4 Ροόμετρα Στρόβιλου 12
1.5 Ροόμετρα Προπέλας 13
1.6 Ροόμετρα Απόπτωσης Δίνης 14
1.7 Ροόμετρα Μεταβαλλόμενης Επιφάνειας(Πλωτού στυλ) 15
1.8 Ροόμετρα Θετικής μετατόπισης 16
1.9 Ροόμετρα Διαφοράς Πίεσης 17
2. Αrduino - Thingspeak 18
2.1 Τι είναι το Arduino ; Πώς προγραμματίζεται 18
2.1.1 Μικροελεγκής 20
2.1.2 Είσοδοι - Έξοδοι 21
2.1.3 Τροφοδοσία 23
2.1.4 Ενσωματωμένα κουμπιά και LED 24
2.1.5 Arduino IDE και σύνδεση με τον Υπολογιστή 24
2.1.6 Γλώσσα προγραμματισμού 26
2.1.7 Shield 29
2.2 Thingspeak Cloud 31
2.2.1 Ξεκινώντας με το Thingspeak 32
3. Προτεινόμενη λύση 35
3.1 Ροόμετρο 35
3.1.1 Τεχνικά Χαρακτηριστικά 37
3.2 Συνδέοντας το ροόμετρο με το Arduino 38
3.3 WiFi Module - ESP8266 39
3.4 Ο κώδικάς του Arduino 40
3.5 Παροχή Ρεύματος 42
3.5.1 Power Bank 43
3.5.2 Υπολογίζοντας την κατανάλωση 44
3.6 Casing - Θήκη 45
3.6.1 Ingress Protection και τι σημαίνει 45
4. Αποτελέσματα - Πρακτική εφαρμογή 49
4,1 Τιμές στο Serial - Port 50
4.2 Τιμές στο Thingspeak 51
3
4.3 Ακραίες Τιμές και Αυτονομία 52
5. Συμπέρασματα και προτάσεις 53
5.1 Πρόταση για υλοποίηση με Raspberry Pi 54
5.2 Πρόταση για αυτόνομη παραγωγή ή εξοικονόμηση ενέργειας 54
5.3 Εφαρμογή σε κάποιο σύστημα εξοικονόμησης νερού 54
5.4 Εφαμογή σε κάποιο σύστημα μεταφοράς η παροχής καυσίμων 54
5.5 Εφαρμογή σε κάποιo σύστημα κηπουρικής 54
6. Βιβλιογραφία 55
4
Κατάλογος Εικόνων
5
0. Εισαγωγή
0.1 Πρόβλημα παρατήρησης ροής υγρού
Στόχος μας είναι η παρατήρηση ροής νερού για μεγάλο χρονικό διάστημα από κάποιο
αισθητήρα και η αποστολή των δεδομένων στο cloud για περεταίρω στατιστική ανάλυση. Η
επιλογή του κατάλληλου αισθητήρα(ροόμετρο) είναι καίρια καθώς υπάρχουν πολλοί τύποι όπου
ο καθένας έχει τα θετικά και τα αρνητικά του. Παρακάτω γίνεται ανάλυση διάφορων τύπων
ροόμετρων. Αφού γίνει η σωστή επιλογή του αισθητήρα πρέπει οι μετρήσεις να μεταδωθούν σε
κάποιο μικροελεκτή έτσι ώστε να δωθεί νοήμα στις μετρήσεις. Ένας μικροελεγκτής Arduino
είναι μία καλή λύση για αξιόπιστα αποτελέσματα. Όπως θα δούμε και στα επόμενα κεφάλαια
είναι εύκολος στον προγραμματισμό και η «ανοικτού κώδικα» φιλοσοφία που τον διακρίνει τον
καθιστά μονόδρομο στην λύση. Υπάρχουν χιλιάδες εφαρμογές και επεκτάσεις για το Arduino
και στην περίπτωση μας χρησιμοποιείται για να διαβάζει τις τιμές του αισθητήρα οι οποίες είναι
σε μορφή τάσης ρεύματος και με την σύνδεση του σε ένα ασύρματο δίκτυο στο ίντερνετ να
αποθηκεύει τις τιμές για περεταίρω χρήση σε μια πλατφόρμα cloud. Υπάρχουν πολλές επιλογές
για την πλατφόρμα cloud ωστόσο μπορεί κανέις να φτιάξει και τον δικό του cloud server για να
εξυπηετήσει τις ανάγκες του. Επίσης μπορεί να χρησιμοποιήθέι και ένα ξεχωριστό πρωτόκολλο
επικοινωνίας MQTT το οποίο είναι ένα machine-to-machine (M2M)/"Internet of Things"
πρωτόκολλο επικοινωνίας σχεδιασμένο για “ελαφριά” καταχώρηση/ανάκτηση μεταφοράς
μηνυμάτων. Στην συγκεκριμένη περίπτωση θα χρησιμοποιηθεί η πλατφόρμα Thingspeak (
https://thingspeak.com/ ) η οποία θεωρείται αρκετά αξιόπιστη είναι δωρεάν και «ανοικτού
κώδικα» προσφέρει εγγραφές ανα 15 δευτερόλεπτα και μπορεί να χρησιμοποιηθεί για δημόσια
προβολή των αποτελεσμάτων.
6
0.2 Internet Of Things
7
πληροφορικά συστήματα χρησιμοποιούνται για τη βέλτιστη διαχείριση φυσικών πόρων
και την ανάπτυξη έξυπνων υπηρεσιών για τη δημιουργία ενός «έξυπνου πλανήτη»
Εικόνα 1: Internet of Things
8
1. Μορφές και τύποι Ροόμετρων [5]
Πώς λειτουργεί;
Πού το χρησιμοποιούμε;
9
1.2 Ροόμετρα υπερήχων (Ultrasonic Flowmeters)
Πώς λειτουργεί;
Πού το χρησιμοποιούμε;
Τα ροόμετρα υπερήχων εφαρμόζονται συνήθως στη μέτρηση της ταχύτητας υγρών που
επιτρέπουν τα υπερηχητικά κύματα να τα διαπερνούν όπως το νερό, τετηγμένο θείο, κρυογόνα
υγρά και χημικά προϊόντα. Με μικρές τροποποιήσεις μπορούν να μετρήσουν φυσικού αερίου και
την ροή ατμού. Πρέπει να δωθεί προσοχή στα υγρά που περιορίζουν την διείσδυση των
υπερήχων όπως πολλοί τύποι πολτού. Πολλά αδιαφανή υγρά μπορεί να περιορίσουν τη
διείσδυση υπερηχητικών κυμάτων πολύ κοντά στο τοίχωμα του σωλήνα με αποτέλεσμα να
υποβαθμίσει την ακρίβεια ή να προκαλέσει την αποτυχεία μέτρησης από το ροόμετρο.
10
1.3 Μαγνητικά Ροόμετρα (Magnetic Flowmeters)
Πώς λειτουργεί;
Πού το χρησιμοποιούμε;
αγνητικό Ροόμετρο
Εικόνα 4: Μ
11
1.4 Ροόμετρα στρόβιλου (Turbine Flowmeters)
Πώς λειτουργεί;
Πού το χρησιμοποιούμε;
Ροόμετρα στροβίλου μετρούν την ταχύτητα υγρών αερίων και ατμών σε σωλήνες όπως
υδρογονάθρακες χημικές ουσίες, νερό, κρυογόνα υγρά, ο αέρας, και τα βιομηχανικά αέρια.
Υψηλής ακρίβειας ροόμετρα στροβίλου είναι διαθέσιμα για την μεταφορά των
υδρογονανθράκων και φυσικού αερίου. Συχνά ενσωματώνεται η λειτουργικότητα ενός
υπολογιστή ροής για τη διόρθωση της πίεσης, της θερμοκρασίας και τις ιδιότητες του ρευστού,
προκειμένου να επιτευχθεί η επιθυμητή ακρίβεια για την εφαρμογή.
οόμετρο στρόβιλου
Εικόνα 5: Ρ
12
1.5 Ροόμετρα προπέλας (Paddle Wheel Flowmeters)
Πώς λειτουργεί;
Πού το χρησιμοποιούμε;
Τα ροόμετρα προπέλας μετρούν την ταχύτητα των υγρών σε σωλήνες, όπως οι χημικές
ουσίες, το νερό και υγρά. Υψηλή ακρίβεια είναι εφικτή εάν έχει εγκατασταθεί προσεκτικά.
Τοποθετούνται στο άκρο της κατατομής της ροής και έτσι επηρεάζονται από αλλαγές του
ιξώδους. Η πιο συνήθης χρήση τους είναι σε ένα σύστημα όπου το υγρό είναι σαν το νερό και
παρακολουθούνται τα επίπεδα άλλων μεταβλητών, όπως pH / ORP, αγωγιμότητα, η πίεση, η
θερμοκρασία . Όλοι οι αισθητήρες εισάγονται στην ίδια σωλήνα Ts και συνδέονται σε έναν
ελεγκτή / πομπό. Υπάρχουν περιορισμοί στην θερμοκρασία και τη πίεση αυτού του συστήματος
εισαγωγής, αλλά είναι πολύ ευπροσάρμοστο . Εφαρμογές με ροόμετρα προπέλας βρίσκουμε στις
βιομηχανίες νερού και χημικών. Εφαρμογές στο νερό αφορούν και εταιρίες ύδρευσης.
Υπάρχουν διάφορες εφαρμογές στο πεδίο των τροφίμων και ποτών καθώς και σε χημικές
βιομηχανίες.
οόμετρο Προπέλλας
Εικόνα 6 : Ρ
13
1.6 Ροόμετρα απόπτωσης δίνης (Vortex Shedding
Flowmeters)
Πώς λειτουργεί;
Όταν ένα υγρό περνάει από ένα αντικείμενο ή από μιά απόφραξη, μπορεί να συμβούν
ταλαντώσεις. Παραδείγματα αυτών των ταλαντώσεων στη φύση περιλαμβάνουν το σφύριγμα
που προκαλείται από τον άνεμο που πνέει ανάμεσα από τα κλαδιά των δέντρων, οι δίνες που
παράγονται γύρω από ένα βράχο σε ένα ποτάμι που ρέει γρήγορα, και το κυματισμό της σημαίας
στον άνεμο. Πρέπει να σημειωθεί ότι σε όλα αυτά τα παραδείγματα όταν η ροή επιβραδύνεται,
οι ταλαντώσεις σταματούν. Δηλαδή, το σφύριγμα σταματά όταν ο άνεμος σταματάει, το νερό
ρέει ήρεμα γύρω από το βράχο, όταν το ποτάμι δεν ρέει γρήγορα, και η σημαία δεν κυματίζει σε
ένα ήπιο αεράκι. Τα ροόμετρα δίνης είναι ροόμετρα που παράγουν ταλαντώσεις ως αποτέλεσμα
της ροής.
Οι αρχές λειτουργίας και γεωμετρίες του σχετίζονται με τη δίνη απόπτωσης, εντάσσονται στο
φαινόμενο Coanda. Η συχνότητα της δίνης είναι ανάλογη προς το ρυθμό ροής του υγρού. Το
φαινόμενο Coanda στα ροόμετρα δίνης περιλαμβάνει δύο περάσματα ανάδρασης που φέρει
εναλλάξ το υγρό πίσω προς την είσοδο του μετρητή παροχής, έτσι ώστε να κατευθύνουν τη ροή
εναλλάξ σε ένα από τα δύο εσωτερικά «τείχη» του μετρητή ροής. Η συχνότητα που γίνεται η
αναπλήρωση μεταξύ των διόδων ανατροφοδότησης είναι ευθέως ανάλογη προς την ταχύτητα
ροής του ρευστού.
Πού το χρησιμοποιούμε;
Τα ροόμετρα απόπτωσης δίνης μπορούν να μετρήσουν την ταχύτητα υγρών, αερίων και
ατμών όπως το νερό, κρυογονική υγρά, νερό τροφοδοσίας βραστήρα, υδρογονάνθρακες,
χημικές ουσίες, τον αέρα, το άζωτο, βιομηχανικά αέρια και ατμούς. Πρέπει να δοθεί προσοχή σε
εφαρμογές όπου η μέτρηση της ροής απαιτείται να είναι κοντά στο κάτω εύρος τιμών του
μετρητή παροχής, διότι αυτού του τύπου τα ροόμετρα απενεργοποιούνται σε χαμηλές ταχύτητες
ροής. Η ταχύτητα με την οποία αυτά τα ροόμετρα απενεργοποιούνται τυπικά είναι 0,3 m / sec (1
ft / sec) για τα υγρά, αλλά είναι συνήθως υψηλότερη για τα αέρια / ατμούς επειδή μια μέγιστη
ροή της σχετικά χαμηλής σε πυκνότητα αερίου / ατμού απαιτείται για να λειτουργήσει το
σύστημα ανίχνευσης .
14
1.7 Ροόμετρα μεταβαλλόμενης επιφάνειας(Πλεόμενου στυλ)
(Variable Area (Float Style) Flowmeters)
Πώς λειτουργεί;
Πού το χρησιμοποιούμε;
15
1.8 Ροόμετρα θετικής μετατόπισης(Positive Displacement
Flowmeters)
Πώς λειτουργεί;
Πού το χρησιμοποιούμε;
16
1.9 Ροόμετρα Διαφοράς Πίεσης (Differential Pressure
Flowmeters)
Πώς λειτουργεί;
Τα ροόμετρα διαφοράς πίεσης χρησιμοποιούν την εξίσωση Bernoulli για τη μέτρηση της
ροής του ρευστού σε ένα σωλήνα. Τα ροόμετρα διαφοράς πίεσης εισαγάγουν μια στένωση στο
σωλήνα που δημιουργεί μία πτώση πίεσης κατά μήκος του μετρητή ροής. Όταν η ροή αυξάνει,
δημιουργείται μεγαλύτερη πτώση πίεσης. Υπάρχουν δύο πομποί που μερτάνε την διαφορά
πίεσης για να προσδιορίσουν την ροή του υγρού. Η εξίσωση Bernoulli αναφέρει ότι η πτώση
πίεσης κατά μήκος της στενώσεως είναι ανάλογη με το τετράγωνο της ταχύτητας ροής. Η
τεχνολογία αυτή έχει το 21% της παγκόσιμας αγοράς στα ροόμετρα.
Πού το χρησιμοποιούμε;
Οι μετρητές διαφοράς πίεσης μετρούν συμπερασματικά τη ροή των υγρών , αερίων και
ατμών όπως το νερό, κρυογόνα υγρά, χημικές ουσίες, τον αέρα, τα βιομηχανικά αέρια, και
ατμούς. Πρέπει να δοθεί προσοχή όταν χρησιμοποιόυνται ροόμετρα διαφοράς πίεσης για
ρευστά με υψηλό ιξώδες, όπως ορισμένες υδρογονάνθρακες και τα τρόφιμα, επειδή η ακρίβειά
τους μπορεί να υποβαθμιστεί όταν αριθμός Reynolds είναι χαμηλός.
17
2 Arduino - Thingspeak .
rduino Board
Εικόνα 11: A
18
Ακριβώς επειδή απευθύνεται κυρίως σε αρχάριους των ηλεκτρονικών και επειδή, παρά τις
αναλυτικότατες οδηγίες που υπάρχουν, δεν έχουν όλοι τις γνώσεις και τα μέσα να
κατασκευάσουν μια ηλεκτρονική πλακέτα, κυκλοφορούν έτοιμες, προκατασκευασμένες
πλακέτες Arduino που μπορείτε να προμηθευτείτε για περίπου €25. Με λίγα χρήματα παραπάνω
μάλιστα, οι περισσότεροι προμηθευτές διαθέτουν Arduino Starter Kit, τα οποία, εκτός από το
ίδιο το Arduino, περιέχουν διάφορα άλλα εξαρτήματα και εργαλεία που μπορεί να χρειαστείτε
για τις πρώτες σας κατασκευές. Στην ουσία, πρόκειται για ένα ηλεκτρονικό κύκλωμα που
βασίζεται στον μικροελεγκτή ATmega της Atmel και του οποίου όλα τα σχέδια, καθώς και το
software που χρειάζεται για την λειτουργία του, διανέμονται ελεύθερα και δωρεάν ώστε να
μπορεί να κατασκευαστεί από τον καθένα (απ’ όπου και ο περίεργος -για hardware-
χαρακτηρισμός «ανοικτού κώδικα»). Αφού κατασκευαστεί, μπορεί να συμπεριφερθεί σαν ένας
μικροσκοπικός υπολογιστής, αφού ο χρήστης μπορεί να συνδέσει επάνω του πολλαπλές μονάδες
εισόδου/εξόδου και να προγραμματίσει τον μικροελεγκτή να δέχεται δεδομένα από τις μονάδες
εισόδου, να τα επεξεργάζεται και να στέλνει κατάλληλες εντολές στις μονάδες εξόδου. Το
Arduino βέβαια, δεν είναι ούτε ο μοναδικός, ούτε και ο καλύτερος δυνατός τρόπος για την
δημιουργία μιας οποιασδήποτε διαδραστικής ηλεκτρονικής συσκευής. Όμως το κύριο
πλεονέκτημά του είναι η τεράστια κοινότητα που το υποστηρίζει και η οποία έχει δημιουργήσει,
συντηρεί και επεκτείνει μια ανάλογου μεγέθους online γνωσιακή βάση. Έτσι, παρότι ένας
έμπειρος ηλεκτρονικός μπορεί να προτιμήσει διαφορετική πλατφόρμα ή εξαρτήματα ανάλογα με
την εφαρμογή που έχει στον νου του, το Arduino, με το εκτενές documentation, καταφέρνει να
κερδίσει όλους αυτούς των οποίων οι γνώσεις στα ηλεκτρονικά περιορίζονται στα όσα λίγα
έμαθαν στο σχολείο.
2.1.1 Μικροελεγκτής
Το Arduino βασίζεται στον ATmega328, έναν 8-bit RISC μικροελεγκτή, τον οποίο
χρονίζει στα 16MHz. Ο ATmega328 διαθέτει ενσωματωμένη μνήμη τριών τύπων [1]:
● 2Kb μνήμης SRAM που είναι η ωφέλιμη μνήμη που μπορούν να χρησιμοποιήσουν τα
προγράμματά σας για να αποθηκεύουν μεταβλητές, πίνακες κ.λπ. κατά το runtime. Όπως και
σε έναν υπολογιστή, αυτή η μνήμη χάνει τα δεδομένα της όταν η παροχή ρεύματος στο
19
● 1Kb μνήμης EEPROM η οποία μπορεί να χρησιμοποιηθεί για «ωμή» εγγραφή/ανάγνωση
δεδομένων (χωρίς datatype) ανά byte από τα προγράμματά σας κατά το runtime. Σε
αντίθεση με την SRAM, η EEPROM δεν χάνει τα περιεχόμενά της με απώλεια τροφοδοσίας
● 32Kb μνήμης Flash, από τα οποία τα 2Kb χρησιμοποιούνται από το firmware του Arduino
που έχει εγκαταστήσει ήδη ο κατασκευαστής του. Το firmware αυτό που στην ορολογία του
Arduino ονομάζεται bootloader είναι αναγκαίο για την εγκατάσταση των δικών σας
προγραμμάτων στον μικροελεγκτή μέσω της θύρας USB, χωρίς δηλαδή να χρειάζεται
για την αποθήκευση αυτών ακριβώς των προγραμμάτων, αφού πρώτα μεταγλωττιστούν
στον υπολογιστή σας. Η μνήμη Flash, όπως και η EEPROM δεν χάνει τα περιεχόμενά της με
απώλεια τροφοδοσίας ή reset. Επίσης, ενώ η μνήμη Flash υπό κανονικές συνθήκες δεν
προορίζεται για χρήση runtime μέσα από τα προγράμματά σας, λόγω της μικρής συνολικής
μνήμης που είναι διαθέσιμη σε αυτά (2Kb SRAM + 1Kb EEPROM), έχει σχεδιαστεί μια
βιβλιοθήκη που επιτρέπει την χρήση όσου χώρου περισσεύει (30Kb μείον το μέγεθος του
υποστηρίζει σειριακή επικοινωνία, την οποία το Arduino προωθεί μέσα από έναν ελεγκτή
χρησιμοποιείται για την μεταφορά των προγραμμάτων που σχεδιάζονται από τον υπολογιστή
στο Arduino αλλά και για αμφίδρομη επικοινωνία του Arduino με τον υπολογιστή μέσα από το
20
ισόδοι και εξόδοι του Arduino Board
Εικόνα 12: Ε
Επιπλέον, στην πάνω πλευρά του Arduino βρίσκονται 14 θηλυκά pin, αριθμημένα από 0 ως 13,
που μπορούν να λειτουργήσουν ως ψηφιακές είσοδοι και έξοδοι. Λειτουργούν στα 5V και
καθένα μπορεί να παρέχει ή να δεχτεί το πολύ 40mA.
Ως ψηφιακή έξοδος, ένα από αυτά τα pin μπορεί να τεθεί από το πρόγραμμά σας σε κατάσταση
HIGH ή LOW, οπότε το Arduino θα ξέρει αν πρέπει να διοχετεύσει ή όχι ρεύμα στο
συγκεκριμένο pin. Με αυτόν τον τρόπο μπορείτε λόγου χάρη να ανάψετε και να σβήσετε ένα
LED που έχετε συνδέσει στο συγκεκριμένο pin. Αν πάλι ρυθμίσετε ένα από αυτά τα pin ως
ψηφιακή είσοδο μέσα από το πρόγραμμά σας, μπορείτε με την κατάλληλη εντολή να διαβάσετε
την κατάστασή του (HIGH ή LOW) ανάλογα με το αν η εξωτερική συσκευή που έχετε συνδέσει
σε αυτό το pin διοχετεύει ή όχι ρεύμα στο pin (με αυτόν τον τρόπο λόγου χάρη μπορείτε να
«διαβάζετε» την κατάσταση ενός διακόπτη).
Μερικά από αυτά τα 14 pin, εκτός από ψηφιακές είσοδοι/έξοδοι έχουν και δεύτερη λειτουργία.
Συγκεκριμένα:
σας ενεργοποιεί την σειριακή θύρα. Έτσι, όταν λόγου χάρη το πρόγραμμά σας
στέλνει δεδομένα στην σειριακή, αυτά προωθούνται και στην θύρα USB μέσω
21
του ελεγκτή Serial-Over-USB αλλά και στο pin 0 για να τα διαβάσει
ενδεχομένως μια άλλη συσκευή (π.χ. ένα δεύτερο Arduino στο δικό του pin 1).
μεγάλης ακρίβειας.
ταχύτητες των ανεμιστήρων. Έτσι, μπορείτε να συνδέσετε λόγου χάρη ένα LED
σε κάποιο από αυτά τα pin και να ελέγξετε πλήρως την φωτεινότητά του με
πραγματικά αναλογικό σύστημα και ότι θέτοντας στην έξοδο την τιμή 127, δεν
σημαίνει ότι η έξοδος θα δίνει 2.5V αντί της κανονικής τιμής των 5V, αλλά ότι
θα δίνει ένα παλμό που θα εναλλάσσεται με μεγάλη συχνότητα και για ίσους
Στην κάτω πλευρά του Arduino, με τη σήμανση ANALOG IN, θα βρείτε μια ακόμη
σειρά από 6 pin, αριθμημένα από το 0 ως το 5. Το καθένα από αυτά λειτουργεί ως αναλογική
είσοδος κάνοντας χρήση του ADC (Analog to Digital Converter) που είναι ενσωματωμένο στον
22
μικροελεγκτή. Για παράδειγμα, μπορείτε να τροφοδοτήσετε ένα από αυτά με μια τάση την οποία
μπορείτε να κυμάνετε με ένα ποτενσιόμετρο από 0V ως μια τάση αναφοράς Vref η οποία, αν δεν
κάνετε κάποια αλλαγή είναι προρυθμισμένη στα 5V. Τότε, μέσα από το πρόγραμμά σας
μπορείτε να «διαβάσετε» την τιμή του pin ως ένα ακέραιο αριθμό ανάλυσης 10-bit, από 0 (όταν
η τάση στο pin είναι 0V) μέχρι 1023 (όταν η τάση στο pin είναι 5V). Η τάση αναφοράς μπορεί
να ρυθμιστεί με μια εντολή στο 1.1V, ή σε όποια τάση επιθυμείτε (μεταξύ 2 και 5V)
τροφοδοτώντας εξωτερικά με αυτή την τάση το pin με την σήμανση AREF που βρίσκεται στην
απέναντι πλευρά της πλακέτας. Έτσι, αν τροφοδοτήσετε το pin AREF με 3.3V και στην
συνέχεια δοκιμάσετε να διαβάσετε κάποιο pin αναλογικής εισόδου στο οποίο εφαρμόζετε τάση
1.65V, το Arduino θα σας επιστρέψει την τιμή 512.
Τέλος, καθένα από τα 6 αυτά pin, με κατάλληλη εντολή μέσα από το πρόγραμμα μπορεί
να μετατραπεί σε ψηφιακό pin εισόδου/εξόδου όπως τα 14 που βρίσκονται στην απέναντι
πλευρά και τα οποία περιγράφηκαν πριν. Σε αυτή την περίπτωση τα pin μετονομάζονται από
0~5 σε 14~19 αντίστοιχα.
2.1.3 Τροφοδοσία
Το Arduino μπορεί να τροφοδοτηθεί με ρεύμα είτε από τον υπολογιστή μέσω της
σύνδεσης USB, είτε από εξωτερική τροφοδοσία που παρέχεται μέσω μιας υποδοχής φις των
2.1mm (θετικός πόλος στο κέντρο) και βρίσκεται στην κάτω-αριστερή γωνία του Arduino και
πλέον μπορούν να χρησιμοποιηθούν Power Banks μέσω θύρας mini-usb.
Πάνω στην πλακέτα του Arduino υπάρχει ένας διακόπτης micro-switch και 4
μικροσκοπικά LED επιφανειακής στήριξης.
Η λειτουργία του διακόπτη (που έχει την σήμανση RESET) και του ενός LED με την σήμανση
POWER είναι μάλλον προφανής.
Τα δύο LED με τις σημάνσεις TX και RX, χρησιμοποιούνται ως ένδειξη λειτουργίας του
σειριακού interface, καθώς ανάβουν όταν το Arduino στέλνει ή λαμβάνει (αντίστοιχα) δεδομένα
μέσω USB. Σημειώστε ότι τα LED αυτά ελέγχονται από τον ελεγκτή Serial-over-USB και
23
συνεπώς δεν λειτουργούν όταν η σειριακή επικοινωνία γίνεται αποκλειστικά μέσω των
ψηφιακών pin 0 και 1.
Τέλος, υπάρχει το LED με την σήμανση L. Η βασική δοκιμή λειτουργίας του Arduino
είναι να του αναθέσετε να αναβοσβήνει ένα LED (θα το δείτε αυτό στην συνέχεια όταν θα
φτιάξετε την πρώτη εφαρμογή σας). Για να μπορείτε να το κάνετε αυτό από την πρώτη στιγμή,
χωρίς να συνδέσετε τίποτα πάνω στο Arduino, οι κατασκευαστές του σκέφτηκαν να
ενσωματώσουν ένα LED στην πλακέτα, το οποίο σύνδεσαν στο ψηφιακό pin 13. Έτσι, ακόμα
και αν δεν έχετε συνδέσει τίποτα πάνω στο φυσικό pin 13, αναθέτοντάς του την τιμή HIGH
μέσα από το πρόγραμμά σας, θα ανάψει αυτό το ενσωματωμένο LED.
Ότι χρειάζεστε για την διαχείριση του Arduino από τον υπολογιστή σας το παρέχει το
Arduino IDE, την τελευταία έκδοση του οποίου μπορείτε να κατεβάσετε από το επίσημο site
https://www.arduino.cc/en/Main/Software για καθένα από τα τρία δημοφιλέστερα λειτουργικά
συστήματα.
● ένα πρακτικό περιβάλλον για την συγγραφή των προγραμμάτων σας (τα οποία
ονομάζονται sketch στην ορολογία του Arduino) με συντακτική χρωματική
σήμανση,
● αρκετά έτοιμα παραδείγματα,
● μερικές έτοιμες βιβλιοθήκες για προέκταση της γλώσσας και για να χειρίζεστε
εύκολα μέσα από τον κώδικά σας τα εξαρτήματα που συνδέετε στο Arduino,
● τον compiler για την μεταγλώττιση των sketch σας,
● ένα serial monitor που παρακολουθεί τις επικοινωνίες της σειριακής (USB),
αναλαμβάνει να στείλει αλφαριθμητικά της επιλογής σας στο Arduino μέσω
αυτής και είναι ιδιαίτερα χρήσιμο για το debugging των sketch σας
● και την επιλογή να ανεβάσετε το μεταγλωττισμένο sketch στο Arduino.
24
Για τα δύο τελευταία χαρακτηριστικά βέβαια, το Arduino πρέπει να έχει συνδεθεί σε μια
από τις θύρες USB του υπολογιστή και, λόγω του ελεγκτή Serial-over-USB, θα πρέπει να
αναγνωριστεί από το λειτουργικό σας σύστημα ως εικονική σειριακή θύρα.
Για την σύνδεση θα χρειαστείτε ένα καλώδιο USB από Type A σε Type B, όπως αυτό
των εκτυπωτών. Για την αναγνώριση από το λειτουργικό θα χρειαστεί να εγκαταστήσετε τον
οδηγό του FTDI chip (δηλαδή του ελεγκτή Serial-over-USB) ο οποίος υπάρχει στον φάκελο
drivers του Arduino IDE που κατεβάσατε. Την τελευταία έκδοση αυτού του οδηγού μπορείτε
επίσης να κατεβάσετε για κάθε λειτουργικό σύστημα από το site της FTDI. Σημειώστε ότι στους
τελευταίους πυρήνες του Linux υπάρχει εγγενής υποστήριξη του συγκεκριμένου ελεγκτή.
Αν όλα έγιναν σωστά, το κεντρικό παράθυρο του Arduino IDE θα εμφανιστεί όταν το
εκτελέσετε και στο μενού Tools –> Serial Port θα πρέπει να εμφανίζεται η εικονική σειριακή
θύρα (συνήθως COM# για τα Windows, /dev/ttyusbserial## για το MacOS και /dev/ttyusb## για
το Linux). Επιλέξτε αυτή την εικονική θύρα και στην συνέχεια επιλέξτε τον τύπο του Arduino
σας (Arduino Duemilanove w/ ATmega328) από το μενού Tools –> Board.
25
2.1.6 Γλώσσα προγραμματισμού
Η γλώσσα του Arduino βασίζεται στη γλώσσα Wiring, μια παραλλαγή C/C++ για
μικροελεγκτές αρχιτεκτονικής AVR όπως ο ATmega, και υποστηρίζει όλες τις βασικές δομές
της C καθώς και μερικά χαρακτηριστικά της C++. Για compiler χρησιμοποιείται ο AVR gcc και
ως βασική βιβλιοθήκη C χρησιμοποιείται η AVR libc.
Λόγω της καταγωγής της από την C, στην γλώσσα του Arduino μπορείτε να
χρησιμοποιήσετε ουσιαστικά τις ίδιες βασικές εντολές και συναρτήσεις, με την ίδια σύνταξη,
τους ίδιους τύπων δεδομένων και τους ίδιους τελεστές όπως και στην C. Πέρα από αυτές όμως,
υπάρχουν κάποιες ειδικές εντολές, συναρτήσεις και σταθερές που βοηθούν για την διαχείριση
του ειδικού hardware του Arduino. Οι πιο σημαντικές από αυτές επεξηγούνται στον πίνακα που
ακολουθεί:
26
Επιστρέφει την κατάσταση του
συγκεκριμένου ψηφιακού pin (0
digitalRead Συνάρτηση int (pin)
για LOW και 1 για HIGH)
εφόσον αυτό είναι pin εισόδου.
Δέχεται τις τιμές DEFAULT,
INTERNAL ή EXTERNAL στην
παράμετρο type για να καθορίσει
analogReferen την τάση αναφοράς (Vref) των
Εντολή – (type)
ce αναλογικών εισόδων (5V, 1.1V ή
η εξωτερική τάση με την οποία
τροφοδοτείται το pin AREF
αντίστοιχα)
Επιστρέφει έναν ακέραιο από 0
εώς 1023, ανάλογα με την τάση
analogRead Συνάρτηση int (pin) που τροφοδοτείται το
συγκεκριμένο pinαναλογικής
εισόδου στην κλίμακα 0 ως Vref.
Θέτει το συγκεκριμένο ψηφιακό
pin σε κατάσταση
ψευδοαναλογικής εξόδου
(PWM). Η παράμετρος value
καθορίζει το πλάτος του παλμού
analogWrite Εντολή – (pin, value)
σε σχέση με την περίοδο του
παραγόμενου σήματος στην
κλίμακα από 0 ως 255 (π.χ. με
value 127, το πλάτος του παλμού
είναι ίσο με μισή περίοδο).
Μετρητής που επιστρέφει το
χρονικό διάστημα σε ms από την
στιγμή που άρχισε η εκτέλεση
του προγράμματος. Λάβετε
unsigned υπόψη ότι λόγω του τύπου
millis Συνάρτηση ()
long μεταβλητής (unsigned long δηλ.
32bit) θα γίνει overflow σε
2^32ms δηλαδή περίπου σε 50
μέρες, οπότε ο μετρητής θα
ξεκινήσει πάλι από το μηδέν.
27
Σταματά προσωρινά την ροή του
προγράμματος για time ms. Η
παράμετρος time είναι unsigned
long (από 0 ως 2^32). Σημειώστε
ότι παρά την προσωρινή παύση,
delay Εντολή – (time)
συναρτήσεις των οποίων η
εκτέλεση ενεργοποιείται από
interrupt θα εκτελεστούν
κανονικά κατά την διάρκεια μιας
delay.
Θέτει σε λειτουργία το
συγκεκριμένο interrupt, ώστε να
(interrupt,function,t ενεργοποιεί την
attachInterrupt Εντολή –
riggermode) συνάρτησηfunction, κάθε φορά
που ικανοποιείται η συνθήκη που
ορίζεται από την παράμετρο
Απενεργοποιεί το
detachInterrupt Εντολή – (interrupt)
συγκεκριμένοinterrupt.
Σταματά προσωρινά την
noInterrupts Εντολή – ()
λειτουργία όλων των interrupt
Επαναφέρει την λειτουργία των
interrupt που διακόπηκε
interrupts Εντολή – ()
προσωρινά από μια εντολή
noInterrupts.
Θέτει τον ρυθμό μεταφοράς
Μέθοδος
Serial.begin – (datarate) δεδομένων του σειριακού
κλάσης
interface (σε baud)
Διοχετεύει τα δεδομένα data για
αποστολή μέσω του σειριακού
Μέθοδος
Serial.println – (data) interface. Η παράμετρος
κλάσης
dataμπορεί να είναι είτε αριθμός
είτε αλφαριθμητικό.
28
Επιπλέον, στην γλώσσα του Arduino κάθε πρόγραμμα αποτελείται από δύο βασικές ρουτίνες
ώστε να έχει την γενική δομή:
void setup()
{
// ...
}
void loop()
{
// ...
}
// Υπόλοιπες συναρτήσεις...
Η βασική ρουτίνα setup() εκτελείται μια φορά μόνο κατά την εκκίνηση του
προγράμματος ενώ η βασική ρουτίνα loop() περιέχει τον βασικό κορμό του προγράμματος και η
εκτέλεσή της επαναλαμβάνεται συνέχεια σαν ένας βρόγχος while(true).
2.1.7 Shield
29
● Wave shield: Δίνει στο Arduino την δυνατότητα να παίζει ήχους/μουσική από
κάρτες SD.
● GPS shield: Προσθέτει GPS δυνατότητες στο Arduino (εντοπισμό στίγματος).
● Διάφορα Motor Shields: Σας επιτρέπουν να οδηγήσετε εύκολα μοτέρ διάφορων
τύπων (απλά DC, servo, stepper κ.λπ.) από το Arduino.
● ProtoShield: Μια προσχεδιασμένη πλακέτα πρωτοτυποποίησης, συμβατή στις
διαστάσεις του Arduino και χωρίς εξαρτήματα για να φτιάξετε το δικό σας
shield.
30
2.2 Thingspeak cloud
Το Thingspeak https://thingspeak.com/ είναι μία από τις πολλές πλατφόρμες cloud που
εξειδικεύεται στο Internet of Things ( IoT).
Συλογή δεδομένων με σένσορες Ανάλυση και παρουσίαση των δεδομένων Ανάλογες ενέργειες
31
2.2.1 Ξεκινώντας με το ThingSpeak.
Για να μπορέσουμε να φορτώσουμε τα δεδομένα μας στο ThingSpeak για ανάλυση και
επεξεργασία, θα πρέπει να δημιουργήσουμε το δικό μας λογαριασμό. [2] [3] [4]
32
Θα πρέπει να συμπληρώσετε τα στοιχεία για το νέο κανάλι που δημιουργείτε. Το όνομα
μπορεί να είναι το όνομα του project πάνω στο οποίο δουλεύεται. Τα υπόλοιπα μπορούν να
αφεθούν κενά ή να συμπληρωθούν αντοιστοιχα. Στα πεδία Fields είναι το μέρος όπου θα
αποθηκευτούν τα δεδομένα. Κάθε κανάλι μπορεί να έχει μέχρι 8 Fields.
33
Κάθε κανάλι έχει μοναδικό κλειδί API. Το κλειδί API εξασφαλίζει ότι τα δεδομένα
ανεβένουν στο σωστό κανάλι και με ασφάλεια από τυχών 3ους που θα θέλουν να παρεμβάλουν
στην επικοινωνία.
34
3 Προτεινόμενη λύση
3.1 Ροόμετρο
Το ροόμετρο που επιλέχθηκε είναι ένα ροόμετρο προπέλας και λειτουργεί με την αρχή
του “Hall Effect”. Σύμφωνα με το “Hall Effect” η διαφορά τάσης επάγεται σε έναν αγωγό είναι
35
εγκάρσια προς το ηλεκτρικό ρεύμα και το μαγνητικό πεδίο κάθετο προς αυτό. Στο συγκεκριμένο
ροόμετρο εκμεταλευόμαστε το “Hall Effect” χρησιμοποιόντας ένα μικρό ανεμιστήρα / έλικα σε
σχήμα στροφείο το οποίο τοποθετείται στην διαδρομή του υγρού που ρέει.
Έτσι, το υγρό πιέζει τα πτερύγια του ρότορα, προκαλώντας την περιστροφή του. Ο
άξονας του ρότορα είναι συνδεδεμένο με ένα αισθητήρα φαινομένου Hall. Γίνεται μια
διευθέτηση ενός ρεύματος πηνίου ροής και ενός μαγνήτη συνδεδεμένα με τον άξονα του ρότορα.
Έτσι, μια τάση / παλμός προκαλείται καθώς ο ρότορας περιστρέφεται. Σε αυτό το ροόμετρο , για
κάθε λίτρο του υγρού που διέρχεται μέσα από αυτό το λεπτό αυτό εξάγει περίπου 4,5 παλμούς.
Αυτό οφείλεται στο μεταβαλλόμενο μαγνητικό πεδίο που προκαλείται απο τον μαγνήτη που
συνδέεται στην άτρακτο του ρότορα όπως φένεται και στην παρακάτω εικόνα. Για την μέτρηση
των παλμών χρησιμοποιούμε ένα Arduino board.
36
3.1.1 Τεχνικά χαρακτηριστικά
Εύρος τάσης DC 5 ~ 18 V
Θερμοκρασία χρήσης ≤ 80 ° C
Θερμοκρασία -25 ~ + 80 ° C
37
3.2 Συνδέοντας το ροόμετρο με το Arduino
Οι συνδέσεις που απαιτούντε είναι ελάχιστες. Υπάρχουν τρία καλώδια από το ροόμετρο.
Η 5V Vcc (Κόκκινο καλώδιο), η Gnd (Μαύρο καλώδιο), και η γραμμή για το σήμα / παλμό
(Κίτρινο καλώδιο). Συνδέουμε το Vcc και GND του μετρητή ροής με το Vcc και Gnd του
Arduino. Η γραμμή παλμών του αισθητήρα ταχύτητας ροής συνδέεται με το ψηφιακό pin 2 του
Arduino. Το ψηφιακό pin 2 του Arduino λειτουργεί και ώς pin διακόπτης (interrupt pin 0).
38
3.3 Wifi Module - ESP8266
39
3.4 Ο κώδικας του Arduino
void pulseCounter(){
// Increment the pulse counter
pulseCount++;
}
Αυτή είναι η συνάρτηση που μετράει τους παλμούς . Στο παραπάνω ροόμετρο για κάθε λίτρο
νερό που περνάει ανά λεπτό παράγονται 4.5 παλμοί. Έτσι διερώντας το συνολικό αριθμό
παλμών με 4.5 έχει ώς αποτέλεσμα το συνολικό ποσό του υγρού που περνάει σε λίτρα/λεπτό.
Με την ίδια λογική διερώντας με το 60 θα μας δώσει την ροή σε λίτρα/ώρα. Τέλος πρέπει να
αναφερθεί ότι το ροόμετρο έχει απόκλιση της τάξης του 3%.
Στην συγκρκριμένη περίπτωση διερούμε με το 60 για να δούμε πόσο νερό περνάει σε διάρκεια 1
δευτερολέπτου και πολλαπλασιάζουμε με το 1000 για να έχουμε την τιμή σε μιλιλίτρα. Τέλος
προσθέτουμε αυτό το ποσό στα συνολικά μιλιλίτρα που έχουν περάσει.
totalMilliLitres += flowMilliLitres;
40
Για την σύνδεση με το wifi χρησιμοποιούμε το library <ESP8266WiFi.h> που είναι η
κατάλληλη βιβλιοθήκη για το Wifi module που χρησιμοποιούμε.
Στην αρχή του κώδικα δηλώνουμε το όνομα του δικτύου που θέλουμε να συνδεθούμε και τον
κωδικό:
Στην συνέχεια ξεκινάμε το WiFi με την συνάρτηση begin δίνοντας σαν μεταβλητές το ssid και
το password και μέχρι να συνδεθεί τυπούνουμε με καθυστέρηση 0.5 second χαρακτήρες “.” για
την διάδραση του χρήστη.
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Με την σύνδεση του χρήστη ξεκινάμε ένα client χρησιμοποιώντας το library του Thingspeak
<ThingSpeak.h>.
WiFiCliend client;
Thingspeak.begin(client);
Kατεβάζουμε την τιμή που υπάρχει στο cloud για να μπορούμε να προσθέσουμε περεταίρω τιμές
που θα εντοπίσει το ροόμετρο.
Total = Thingspeak.readFloatField(myChannelNumber,2);
Τέλος με μια απλή μεταβλητή που κρατάει τον χρόνο σε msec από την τελευταία εγγραφή
καταγράφουμε την τιμή στο cloud στην συγκεκριμένη περίπτωση η καταγραφή γίνεται άνα 15
seconds όσο και το όριο του Τhingspeak. Αλλάζοντας την τιμή μπορεί κανείς να έχει μια πιο
αραιή δειγματοληψία.
41
3.5 Παροχή Ρεύματος
ower Bank
Εικόνα 16: P
42
3.5.1 Power Bank
Ένα Power Bank, είναι μια φορητή μπαταρία / φορητός φορτιστής.Αυτό σημαίνει πως
μπορεί να δώσει παροχή ρεύματος σε χώρο που δεν είναι εύκολη η πρόσβαση σε ρεύμα.
Χωρητικότητα
Τα περισσότερα powerbanks διαθέτουν 1 έξοδο, έτσι ώστε να φορτίζετε μια συσκευή την
φορά. Πολλά όμως διαθέτουν 2 θύρες ή και περισσότερες για να φορτίζετε περισσότερες. Άλλο
ένα θέμα που πρέπει να σας απασχολεί είναι τα Ampere που διαθέτουν οι θύρες USB. Για
παράδειγμα το ipad για να φορτίσει θέλει έξοδο με 2.1A, άρα καλό είναι να κοιτάξετε τα τεχνικά
χαρακτηριστικά του κινητού σας για να κάνετε την σωστότερη επιλογή. Βέβαια αν επιλέξετε
αυτά με διπλή έξοδο το πιο πιθανό είναι να μην έχετε κάποιο πρόβλημα.
Έξτρα χαρακτηριστικά
Εκτός από τα παραπάνω βασικά, μπορείτε να επιλέξετε η συσκευή σας να έχει και
κάποια έξτρα χαρακτηριστικά όπως:
Κύκλωμα υπερφόρτισης -> διακόπτει την φόρτιση όταν η μπαταρία της συσκευής σας φτάσει το
100%
Φακός
43
3.5.2 Υπολογίζοντας την κατανάλωση
Χωριτικότητα μπαταρίας (σε mAh) / μέση κατανάλωση (in mA) = Χρόνος ζωής σε ώρες. [10]
44
3.6 Casing - Θήκη
Υπάρχουν πολλοί τρόποι για να εξασφαλίσεις την στεγανότητα και την σωστή
λειτουργία του μικροελεκτή με μία θήκη ή οποία μπορεί να τυπωθεί με τρισδιάστατο εκτυπωτή
είτε με κάποια έτοιμη που προσφέρετε σε κάποιο κατάστημα. Στην λύση επιλεκτηκε η
δημιουργία ενός στεγανού κουτιού με IP55 .
45
Πρώτο Ψηφίο
Μέγεθο
ς
Βαθμός Αποτελεσματικό απέναντι
Αντικει
μένου
1 >50mm Κάθε μεγάλη επιφάνεια του σώματος, όπως το πίσω μέρος του
χεριού, αλλά καμία προστασία έναντι σκόπιμη επαφή με ένα
μέρος του σώματος.
6 Λεπτή Δεν επιτρέπει την είσοδο της σκόνης πλήρη προστασία κατά της
σκόνη επαφής.
46
Δεύτερο Ψηφίο
Μέγεθος
Βαθμός Αποτελεσματικό απέναντι
Αντικειμένου
0 Δεν προστατευετε –
4 πιτσίλισμα του
νερού
πιτσίλισμα του νερού κατά την περίφραξη από
οποιαδήποτε κατεύθυνση δεν πρέπει να έχουν
επιβλαβείς συνέπειες.
47
κατασκευή με ανοικτό καπάκι
Εικόνα 17: Η
48
4. Αποτελέσματα - Πρακτική
εφαρμογή
Για την εφαρμογή του συστήματος χρησιμοποιήσαμε νερό και ένα δοχείο των 300 ml.
49
4.1 Τιμές στο Serial-Port
Ο χρήστης έχει την δυνατότητα να πάρει ανάδραση από το σύστημα για την
λειτουργικότητα του καθώς και για τις τιμές που συλλέγει. Παρακάτω φένεται το γέμισμα του
δοχείου 300 ml 2 φορές και οι τιμές που παίρνουμε από το IDE του Arduino για την
παρακολούθηση του Serial- Port.
50
4.2 Τιμές στο Thingspeak
51
4.3 Ακραίες Τιμές και Αυτονομία.
Αφήνοντας το σύστημα για 2 μέρες χωρίς χρήση, δοκιμάζουμε ακραίες τιμές φυσώντας
μέσα στο σωληνάριο του ροόμετρο με σκοπό να δημιουργήσουμε τεράστια ροή και μεγάλη
πίεση. Το ροόμετρο ανταποκρίνεται χωρίς να παρουσιάσει πρόβλημα και αναγράφει τις τιμές
στο cloud server όπως και αναμενόταν.
52
5. Συμπεράσματα και προτάσεις για
μελέτη και εφαρμογή
aspberry Pi
Εικόνα 20: R
53
5.2 Πρόταση για αυτόνομη παραγωγή ή εξοικονόμηση
ενέργειας.
Πρόταση για μελέτη: Να δοκιμαστεί η πιθανότητα ενσωμάτωσης μιας μικρής
ηλεκτρηκής γεννήτριας στο κινητό σύστημα του αισθητήρα μέσω της οποίας θα μπορεί να
παραχθεί ενέργεια για ιδιοκατανάλωση από το σύστημα. Επίσης αν το σύστημα είναι
τοποθετημένο σε αίθριο χώρο μπορούν να χρησιμοποιηθούν ηλιακοί συλλέκτες για την
τροφοδότησή του.
54
6. Βιβλιογραφία
Ιστοσελίδες - Αναφορές
[1] https://deltahacker.gr/arduino-intro/
[2] https://www.rs-online.com/designspark/thingspeak-a-free-internet-of-things-iot-platform
[3] https://www.mathworks.com/help/thingspeak/getting-started-with-thingspeak.html
[4] https://www.mathworks.com/help/thingspeak/
[5] http://www.flowmeters.com/
[6] https://nurdspace.nl/ESP8266
[7] http://www.esp8266.com
[8] https://github.com/esp8266/esp8266-wiki/wiki
[9] https://www.sparkfun.com/products/13678
[10] https://learn.adafruit.com/low-power-wifi-datalogging/battery-life-and-current-consumption
[11] http://www.dsmt.com/resources/ip-rating-chart/
Βιβλία:
55