Circuit simple de photocellule Arduino et enregistrement de données (4 / 5 étapes)

Étape 4: Configuration du logiciel - Arduino avec WiFi bouclier

Cette étape peut ou peut ne pas vous concerner, cela dépend vraiment sur ce que le matériel que vous avez. La carte Arduino ou clone devrait accepter n’importe quel code de l’Arduino avec que vous programmer, mais le bouclier WiFi vous avez mai ne fonctionne ne pas avec le code, je m’apprête à vous montrer. J’ai un Linksprite CC3000. La plupart CC3000 sont codées de la même façon, il suffit de trouver les bibliothèques qui travaillent avec elle et ajuster les choses dans le code principal pour le faire fonctionner. Avec le Linksprite, j’ai trouvé que la bibliothèque Adafruit CC3000 fonctionne parfaitement avec mon bouclier et il se trouve que Adafruit IO est la même société.

TL; DR: WiFi votre bouclier peut devoir être codé différemment et peut nécessiter plus d’effort de votre part.

Voici le code que j’ai utilisé :

#include « Adafruit_SleepyDog.h » #include « Adafruit_CC3000.h » #include « SPI.h » #include « utility/debug.h » #include « Adafruit_MQTT.h » #include "Adafruit_MQTT_CC3000.h" < /p >< p > int photocellPin = 0 ; la cellule et le 10K pulldown sont connectés à a0 < /p >< p > / *** CC3000 Pins *** / < /p >< p > #define ADAFRUIT_CC3000_IRQ 3 / / doit être une tige d’interruption ! #define ADAFRUIT_CC3000_VBAT 5 / / VBAT & CS peuvent être n’importe quel broches numériques. #define ADAFRUIT_CC3000_CS 10 / / utiliser le matériel SPI pour les broches restantes / / sur un UNO, SCK = 13, MISO = 12 et MOSI = 11 < /p >< p > / *** Point d’accès WiFi *** / < /p >< p > #define WLAN_SSID "---votre WIFI SSID (nom)---" / / ne peut pas dépasser 32 caractères ! #define WLAN_PASS «---votre mot de passe WIFI---» #define WLAN_SECURITY WLAN_SEC_WPA2 / / peut être : WLAN_SEC_UNSEC, WLAN_SEC_WEP, / / WLAN_SEC_WPA ou WLAN_SEC_WPA2 < /p >< p > / *** Adafruit.io Setup *** / l’administration fédérale-AIO_SERVER de #define de < /p >< p > "io.adafruit.com" #define AIO_SERVERPORT 1883 #define AIO_USERNAME «---votre USERNAME ADAFRUIT---» #define AIO_KEY « Vos tableaux de bord ADAFRUIT clé » / / c’est le carré jaune avec l’icône de clé sur votre tableau de bord < /p >< p > / *** Global État (vous n’avez pas besoin de changer cela!) *** < /p >< p > / installation de la classe principale de CC3000, tout comme une esquisse de CC3000 normale. Adafruit_CC3000 cc3000 = Adafruit_CC3000 (ADAFRUIT_CC3000_CS, ADAFRUIT_CC3000_IRQ, ADAFRUIT_CC3000_VBAT); < /p >< p > / / Store le serveur MQTT, nom d’utilisateur et mot de passe dans la mémoire flash. Ceci est requis pour utiliser la bibliothèque Adafruit MQTT. const char MQTT_SERVER [] PROGMEM = AIO_SERVER ; const char MQTT_USERNAME [] PROGMEM = AIO_USERNAME ; const char MQTT_PASSWORD [] PROGMEM = AIO_KEY ; < /p >< p > / / installation de la classe CC3000 MQTT en passant dans la classe CC3000 et les détails de connexion et de serveur MQTT. Adafruit_MQTT_CC3000 mqtt (& cc3000, MQTT_SERVER, AIO_SERVERPORT, MQTT_USERNAME, MQTT_PASSWORD); < /p >< p > / / vous n’avez pas besoin de changer quoi que ce soit sous cette ligne ! #define halt(s) {Serial.println (F (s)); while(1);} < /p >< p > / / CC3000connect est une fonction d’assistance qui met en place le CC3000 et se connecte à / / le réseau WiFi. Voir l’onglet cc3000helper.cpp au-dessus de la source ! Boolean CC3000connect (const char * wlan_ssid, const char * wlan_pass, uint8_t wlan_security); < /p >< p > / *** se nourrit *** < /p >< p > / Setup un flux appelé « cellule » pour la publication. Avis MQTT chemins pour AIO suivent la forme : < nom d’utilisateur > /feeds/ < feedname > const char PHOTOCELL_FEED [] PROGMEM = AIO_USERNAME "/ RSS/photo" ; Cellule photoélectrique Adafruit_MQTT_Publish = Adafruit_MQTT_Publish (& mqtt, PHOTOCELL_FEED); < / feedname >< / username >< / p >< p > / *** Code Sketch *** / < /p >< p > void setup() {Serial.begin(115200) ; < /p >< p > Serial.println (F ("demo Adafruit MQTT")); < /p >< p > Serial.print (F ("RAM libre:")) ; Serial.println(getFreeRam(), DEC); < /p >< p > / / initialiser le module CC3000 Serial.print (F (« \nInit le CC3000...")) ; Si (! cc3000.begin()) halt("Failed") ; < /p >< p > mqtt.subscribe (& onoffbutton); < /p >< p > while (! CC3000connect (WLAN_SSID, WLAN_PASS, WLAN_SECURITY)) {Serial.println (F ("une nouvelle tentative de WiFi")); delay(1000);}} uint32_t x = analogRead(photocellPin) ; C’est important ! Cette partie m’a fallu une éternité to figure out. < /p >< p > / /, vous devez le « uint32_t x = "partie si vous envisagez d’essayer d’ajouter un capteur différent, alors il suffit de suivre « x » par le biais de < /p >< p > / / le reste du code < /p >< p > void loop() {x = analogRead(photocellPin); / / Veillez à réinitialiser chaque itération de la boucle de surveillance ! Watchdog.Reset() ; < /p >< p > / / s’assurer que la connexion au serveur MQTT est vivante (ce qui fera le premier / / connexion et se reconnecter automatiquement lorsqu’il est déconnecté). Voir la MQTT_connect / / fonction de définition plus loin. MQTT_connect() ; < /p >< p > / / il s’agit de notre subloop occupé à « attendre les paquets entrants d’abonnement » Adafruit_MQTT_Subscribe * abonnement ; tandis que ((abonnement = mqtt.readSubscription(1000))) {if (abonnement == & onoffbutton) {Serial.print (F ("Got:")) ; Serial.println ((char *) onoffbutton.lastread) ; }} < /P >< p > / / maintenant nous pouvons publier des trucs ! Serial.Print (F ("Photocellule \nSending val")) ; Serial.Print(x) ; Serial.Print("...") ; Si (! photocell.publish(x)) {Serial.println(F("Failed"));} else {Serial.println(F("OK!"));} < /p >< p > / / ping sur le serveur pour garder la fi vivant de connexion mqtt ()
! MQTT.Ping()) {Serial.println (F ("MQTT Ping a échoué."));} < /p >< p >} < /p >< p > / / fonction pour vous connecter et de vous reconnecter au besoin pour le serveur MQTT. Doit être appelée dans la boucle de fonction et il seront chargera si connexion. void MQTT_connect() {int8_t ret ; < /p >< p > / / Stop si déjà connecté. si (mqtt.connected()) {return;} < /P >< p > Serial.print (« Connecting to MQTT... "); < /p >< p > tandis que ((ret = mqtt.connect())! = 0) {/ / connect volonté retourne 0 pour Serial.println(mqtt.connectErrorString(ret)) connectés ; Si (retraité < 0) CC3000connect (WLAN_SSID, WLAN_PASS, WLAN_SECURITY) ; y0w, permet de se connecter au wifi à nouveau Serial.println ("MQTT une nouvelle tentative de connexion dans 5 secondes...") ; MQTT.Disconnect() ; Delay(5000) ; attendre 5 secondes} Serial.println ("MQTT connecté!") ; }

Articles Liés

La compréhension complète faite simple - GPS avec ARDUINO

La compréhension complète faite simple - GPS avec ARDUINO

Salut frenzzz... Sa fait longtemps que j'ai fait un petit truc pour vous tous... Dans ce tutoriel, j'ai essayé d'informer un fameux systèmes de positionnement étant impliqué dans presque tous les projets... Même j'ai eu des difficultés très maîtriser
Cougar, exécuter un simple jeu d’Arduino.

Cougar, exécuter un simple jeu d’Arduino.

J'ai construit ce jeu Arduino/traitement comme un travail scolaire. La mission consistait à construire un jeu de l'Arduino et j'ai décidé de construire la mine comme un circuit simple arduino et une conception de logiciels plus complexe. La façon don
Comment identifier les PNP et NPN Transistors (avec un Circuit Simple)

Comment identifier les PNP et NPN Transistors (avec un Circuit Simple)

dans ce projet, je vais faire un des plus simple PNP et NPN circuit identificateurs jamais. Vous verrez combien il est facile de faire un ! J'ai aussi posté sur mon site un peu de la théorie sur la PNP et NPN Transistors , que je vous recommande de l
Construire un Circuit Simple d’une boîte à Pizza (sans soudure)

Construire un Circuit Simple d’une boîte à Pizza (sans soudure)

j'ai apprennent mieux par le biais de méthodes pédagogiques tactiles.  Enseignement et apprentissage des circuits de base, l'électronique et électricité à partir de livres est bon, mais pourquoi ne pas construire un circuit simple à partir de zéro et
Conception de circuits simples en ligne

Conception de circuits simples en ligne

Parfois, vous avez besoin d'un schéma simple de votre circuit pour illustrer votre instructable ou autre chose. Si vous souhaitez simplement vous connecter certains éléments de base un outil professionnel comme EagleCad pourrait être un énorme exagér
Instruction de construire un circuit simple

Instruction de construire un circuit simple

Cette instruction est utilisée pour construire un circuit simple. Il sera utile pour les débutants d'apprendre des circuits. Si vous voulez garder étudie le génie électrique, vous aurez besoin de construire beaucoup de circuits complexes plus tard. C
Comment construire un Circuit Simple sans soudure.

Comment construire un Circuit Simple sans soudure.

Bonjour à nouveau ! Il s'agit d'artisanat Maker Infinity faisant une autre collaboration avec JM1999 ! :)Dans ce instructable, JM1999 vais vous montrer comment faire un circuit simple, sans soudure ! (BTW, j'ai utilisé pour essayer de faire de celles
Comment enregistrer les données de la carte arduino

Comment enregistrer les données de la carte arduino

comment se connecter (enregistrer) les données reçues par le biais de la série de la carte arduino (ou tout autre microcontrôleur/projet qui utilise serial). J'ai expliquer où trouver le programme qui peut le faire, comment le configurer, utiliser et
Simple pas cher Arduino Oscilloscope

Simple pas cher Arduino Oscilloscope

Bonjour tout le monde !Je suis venu avec ce projet intéressant, car je commence à apprendre le traitement, alors j'ai pensé que ce serait cool de le partager avec vous. Espérons que vous l'apprécierez !OK, juste pour clarifier les choses, cela n'est
Circuit simple de LED sur le Cheap

Circuit simple de LED sur le Cheap

une courte vidéo de présentation :J'ai dû apporter 15 circuits simples avec une lumière, la batterie et l'interrupteur qui pourrait être facilement monté et démonté plusieurs fois pour une activité de camp louveteau. La lumière doivent être assez bri
Circuit simple calme livre

Circuit simple calme livre

INTRODUCTIONDANS CETTE LEÇON, NOUS ALLONS CONSTRUIRE DES CIRCUITS SIMPLES AVEC « COMMUTATEURS ». NOUS PERMET DE COUDRE DES CIRCUITS SIMPLES EN UN LIVRE TRANQUILLE EN UTILISANT LES MODÈLES DÉJÀ COUSUS DANS LE LIVRE.Étape 1: Matériaux/outils Matériaux
Transformer un vieux cellulaire en un périphérique (en utilisant un arduino) l’envoi de données

Transformer un vieux cellulaire en un périphérique (en utilisant un arduino) l’envoi de données

Que va faire cet appareil ?Lorsque vous avez terminé, il pourra la combinaison du circuit, arduino et modded téléphone portable envoyer des données par le biais de textes via le réseau cellulaire de manière autonome. Cela pourrait être des données de
Connexion Arduino à la base de données MySQl w / USB à l’aide de MysqlIO

Connexion Arduino à la base de données MySQl w / USB à l’aide de MysqlIO

J'ai toujours pensé à contrôler arduino depuis un autre périphérique via WiFi ou internet, mais je ne voulais pas sacrifier aucune broche pour la communication. J'ai déjà fait un projet pour contrôler mon PC avec arduino à l'aide de la télécommande I
Enregistrement de données de capteur de LinkitOne à l’aide de GoBetwino

Enregistrement de données de capteur de LinkitOne à l’aide de GoBetwino

IoT projets impliquent généralement la connexion à internet et l'affichage des données à un service de Cloud Computing. Toutefois, plusieurs applications d'enregistrement de données en mode hors connexion peuvent être développées à l'aide de la plate