Enkel Arduino fotocell krets och dataloggning (4 / 5 steg)

Steg 4: Installera programvaran - Arduino med WiFi sköld



Detta steg kanske eller kanske inte gäller dig, det är beroende på vilken maskinvara du har. Arduino ombord eller klon bör acceptera någon Arduino kod du programmera det med men WiFi sköld du har maj inte arbeta med koden jag ska visa dig. Jag har en Linksprite CC3000. De flesta CC3000 är kodad på samma sätt, du måste bara hitta de bibliotek som arbetar med det och justera saker inom huvudkoden det fungerar. Med Linksprite hittade jag att Adafruit CC3000 biblioteket fungerar perfekt med min sköld och det råkar vara så att Adafruit IO är samma företag.

TL; DR: Din WiFi shield kan behöva kodas annorlunda och kan kräva mer ansträngning från din sida.

Här är koden jag använde:

#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; cellen och 10K pulldown är anslutna till a0 < /p >< p > / *** CC3000 Pins *** / < /p >< p > #define ADAFRUIT_CC3000_IRQ 3 / / måste vara ett avbrott pin!
#define ADAFRUIT_CC3000_VBAT 5 / / VBAT & CS kan vara några digitala stift.
#define ADAFRUIT_CC3000_CS 10
Att använda maskinvara SPI för återstående stiften
På en UNO, SCK = 13, MISO = 12 och MOSI = 11 < /p >< p > / *** WiFi tillträde punkt *** / < /p >< p > #define WLAN_SSID "---din WIFI SSID (namnet)---" / / får inte vara längre än 32 tecken!
#define WLAN_PASS "---din WIFI lösenord---"
#define WLAN_SECURITY WLAN_SEC_WPA2 / / kan vara: WLAN_SEC_UNSEC, WLAN_SEC_WEP,
WLAN_SEC_WPA eller WLAN_SEC_WPA2 < /p >< p > / *** Adafruit.io Setup *** / < /p >< p > #define AIO_SERVER "io.adafruit.com"
#define AIO_SERVERPORT 1883
#define AIO_USERNAME "---ADAFRUIT användarnamn---"
#define AIO_KEY "Din instrumentpaneler ADAFRUIT nyckel" / / är det gula torget med nyckelikonen på instrumentpanelen < /p >< p > / *** Global stat (du inte behöver ändra på detta!) *** < /p >< p > / Setup CC3000 huvudklass, precis som en normal CC3000 skiss.
Adafruit_CC3000 cc3000 = Adafruit_CC3000 (ADAFRUIT_CC3000_CS, ADAFRUIT_CC3000_IRQ, ADAFRUIT_CC3000_VBAT); < /p >< p > / / butik MQTT servern, användarnamn och lösenord i flash-minnet.
Detta behövs för att använda Adafruit MQTT biblioteket.
CONST char MQTT_SERVER [] PROGMEM = AIO_SERVER;
CONST char MQTT_USERNAME [] PROGMEM = AIO_USERNAME;
CONST char MQTT_PASSWORD [] PROGMEM = AIO_KEY; < /p >< p > / / Setup klassen CC3000 MQTT av passerar i CC3000 klass och MQTT server och logga in detaljer.
Adafruit_MQTT_CC3000 mqtt (& cc3000, MQTT_SERVER, AIO_SERVERPORT, MQTT_USERNAME, MQTT_PASSWORD); < /p >< p > / / behöver du inte ändra någonting under raden!
#define halt(s) {Serial.println (F (s)); while(1);} < /p >< p > / / CC3000connect är en hjälpare funktion som sätter upp CC3000 och ansluter till
WiFi-nätverket. Se cc3000helper.cpp fliken ovan för källan!
booleska CC3000connect (const char * wlan_ssid, const char * wlan_pass, uint8_t wlan_security); < /p >< p > / *** Feeds *** < /p >< p > / Setup ett foder som heter "fotocell" för publicering.
Meddelande MQTT banor för AIO följa form: < användarnamn > /feeds/ < feedname >
CONST char PHOTOCELL_FEED [] PROGMEM = AIO_USERNAME "/ feeds/fotocell";
Adafruit_MQTT_Publish fotocell = Adafruit_MQTT_Publish (& mqtt, PHOTOCELL_FEED); < / feedname >< / användarnamn >< /p >< p > / *** skiss kod *** / < /p >< p > void setup() {
Serial.BEGIN(115200); < /p >< p > Serial.println F ("Adafruit MQTT demo"). < /p >< p > Serial.print (F ("fri slå ned:")); Serial.println(getFreeRam(), DEC); < /p >< p > / / initialisera modulen CC3000
Serial.Print F ("\nInit CC3000...").
om (! cc3000.begin())
halt("failed"); < /p >< p > mqtt.subscribe (& onoffbutton); < /p >< p > tag (! CC3000connect(WLAN_SSID, WLAN_PASS, WLAN_SECURITY)) {
Serial.println F ("försöker igen WiFi").
Delay(1000);
}
}

uint32_t x = analogRead(photocellPin); Detta är viktigt! Denna del tog mig evigheter att figurera ut. < /p >< p > / / du behöver det "uint32_t x =" del om du planerar på att försöka lägga till en annan sensor, sedan bara följa "x" genom < /p >< p > / / resten av koden < /p >< p > void loop() {
x = analogRead(photocellPin);
Se till att återställa watchdog varje loopen upprepas!
Watchdog.Reset(); < /p >< p > / / säkerställa anslutningen till MQTT servern är vid liv (detta kommer att göra först
anslutning och automatiskt återansluta när frånkopplad). Se MQTT_connect
funktionsdefinitionen ytterligare nedan.
MQTT_connect(); < /p >< p > / / detta är vår "vänta för inkommande prenumeration paket" upptagen subloop
Adafruit_MQTT_Subscribe * prenumeration;
medan ((abonnemang = mqtt.readSubscription(1000))) {
om (prenumeration == & onoffbutton) {
Serial.Print (F ("fick:"));
Serial.println ((char *) onoffbutton.lastread);
}
} < /P >< p > / / nu kan vi publicera grejer!
Serial.Print (F ("\nSending fotocell val"));
Serial.Print(x);
Serial.Print("...");
om (! photocell.publish(x)) {
Serial.println(F("failed"));
} annat {
Serial.println(F("OK!"));
} < /p >< p > / / ping servern för att hålla liv i den mqtt anslutningen
om (! mqtt.ping()) {
Serial.println F ("MQTT Ping misslyckades.").
{} < /p >< p >} < /p >< p > / / funktion för att ansluta och återkoppla som krävs för att MQTT servern.
Bör kallas i slingan funktion och det kommer att ta hand om ansluter.
void MQTT_connect() {
int8_t ret; < /p >< p > / / sluta om redan ansluten.
om (mqtt.connected()) {
hemkomst.
} < /P >< p > Serial.print ("ansluter till MQTT... "); < /p >< p > medan ((ret = mqtt.connect())! = 0) {/ / Anslut vilja avkastning 0 för ansluten
Serial.println(mqtt.connectErrorString(ret));
om (ret < 0)
CC3000connect (WLAN_SSID, WLAN_PASS, WLAN_SECURITY); y0w, kan ansluta till wifi igen
Serial.println ("försöker igen MQTT anslutning i 5 sekunder...");
mqtt.Disconnect();
Delay(5000); vänta 5 sekunder
}
Serial.println ("MQTT ansluten!");
}

Se Steg
Relaterade Ämnen

Arduino IOT: Temperatur och luftfuktighet (med ESP8266 WiFi)

Hej alla! Jag är Michalis Vasilakis från www.ardumotive.com och i detta Instructables kommer jag visa dig hur du gör din egen Internet av saker (IOT) termometer med hjälp av Arduino uno styrelsen.Du kan använda den hemma, på kontoret, eller var som h...

Arduino fotocell Theremin Synth (glitchamin)

du vet Theremin, rätt? Dessa cool-ser lådor med antenner som producerar buller utan beröring? De spelas av bland andra Jimmy Page av ledde Zeppelin och presentera i soundtracks av otaliga filmer. Tja, med detta instructable, jag kommer att visa dig h...

Automatiska bevattningssystem med kapacitiv sond och Arduino på billiga (och jag menar det)

Varning: Jag är inte en elektronikingenjör, så jag inte kan ge någon garanti för design (mycket mindre en implementering). Jag vet bara presenteras lösningen fungerade för mig minst 5-6 månader (så jag inte kan ens garantera dess tillförlitlighet öve...

Mellanliggande Arduino: Ingångar och utgångar

Fortsätter från min Intro till Arduino inlägg, går detta Instructable över vissa något mer avancerade ämnen med Arduino, särskilt om att styra och hantera många ingångar och utgångar. Nästa klass omfattar hur du ansluter den Arduino ingångar och utgå...

Arduino nybörjare och grundläggande elektronik Kit Primer

lärde jag mig att en av mina systerdöttrar hade ett intresse för programmering. Hon arbetade med robotics på gymnasiet och har en sommar praktikplats där de hade Arduinos. Jag tror att hon kunde låna en Arduino för att experimentera med hemma men var...

ARDUINO gränssnitt och konverterare för INPUT/OUTPUT digital/analog

CE schéma réunit toutes les gränssnitt ou convertisseurs que j'utilise avec mes microcontrôleurs Häll piloter mes systèmes (gaine de ventilation chauffante régulation de température, portail automatisé, fyra thermique, monte avgift, station de pompag...

Arduino RC krets: PWM till analoga DC

Arduino är en plattform som kan användas för att utveckla interaktiva objekt. För detta projekt kommer vi att använda den Arduino Mega 2560. Den har 54 digital input/output pins, varav 15 kan användas som puls bredd modulering (PWM) utgångar.PWM kan...

Online grafer med ingenting men en Arduino, Ethernet Shield och Sensor

Slutligen har jag beslutat att lägga några av mina befintliga projekt på instructables. Här är anpassade från mitt Super Graphing Data Logger projekt.Vad är Super Graphing Data Logger (SGDL)? Det är en Arduino projekt som integrerar dataloggning och...

Cougar kör en enkel Arduino spel.

Jag byggde detta Arduino/bearbetning spel som en skoluppgift. Uppgiften var att bygga en Arduino spel och jag bestämde mig att bygga min som en enkel arduino krets och en mer komplicerad programvara. Hur spelet fungerar som beroende på tryck applicer...

Arduino få upp och flytta

som vi alla tillbringa en ökande mängd tid sitta vid vårt bord är det lätt att bli uppslukad av det vi gör och lös reda på tid.Det sägs att vi ska få upp och flytta från vår plats minst en gång varje timme, men vem vill titta på klockan?Med en mycket...

HK spårvagn Laser skär ras spel (Arduino, Pure Data och GSR sensorer)

Detta spelet betalar vördnad till Hong Kongs stressande gator, där den ikoniska Hongkong "Ding Ding" spårvagnar sammanföra lokalbefolkningen och utlänningar. Detta projekt var också inspirerad av aktuella studier som görs på stress och känslomäs...

Den enklaste uppladdningsbart batteri krets (och rädda planeten alltför)!

Hallo alla...Idén kom till mig när jag var redo att ersätta en battericell i min väckarklocka bredvid min säng. Även använder jag de senaste 5 år endast laddningsbara batterierna av de flesta typer jag övervägt hur många battericeller människor värld...

Hur man bygger en enkel Lödfritt krets.

Hej igen! Detta är Craft Maker Infinity gör ett samarbete med JM1999! :)I detta instructable, JM1999 kommer att visa dig hur man gör en enkel, Lödfritt krets! (BTW jag brukade försöka göra dessa, men de visar inte sig så bra, men JM1999 har listat ut...

Enkel kontinuitet testare krets

kontinuitet testare är en enhet som testar kontinuiteten i kabeln till hands. Det är ett oumbärligt verktyg att kontrollera trasiga ledningar och oönskade kortslutning av ledningar. Om vi vill kontrollera att kabeln är ansluten från ena änden till en...

Perfboard Hackduino ($8 Arduino-kompatibel krets)

Aldrig igen måste du demontera färdiga projekt bara för att återanvända en Arduino ombord!Denna handledning kommer att gå igenom steg som ingår i tillverka ditt eget Arduino-kompatibel krets använder bara ~$8 delar (detta inkluderar ATMega chip!). De...

Kommunicera med arduino micro controller och dator via usb med en vb program

Om du är som mig och vill kunna styra dina objekt anslutna till din arduino via datorn måste du ett sätt att upprätta en anslutning och kommunicera med din arduino från datorn. Denna video och handledning visar dig hur man gör just det! Jag har tagit...

Fjärrstyrda webkamera med Arduino, SensorMonkey, jQuery och Justin.tv

webb-aktivera din interaktiva sensorer över skrivbordet, smartphone och tablet enheter.Denna handledning beskriver i detalj hur du använder tjänsten gratis SensorMonkey till styra en pan och tilt webbkamera ansluten till en Arduino använder inget ann...

Arduino XboxOne, TV och Fan fjärrkontroll

I detta instructable jag kommer att visa dig hur du använder en Arduino infraröd (IR) fjärrkontroll sköld gjorde jag så att du kan göra en kontroll för alla dina enheter och säga adjö till flera kontroller och AAA-batterier.Om du inte kan få skölden...

Arduino I2C Master och Breakout

Efter framgången med min Arduino Uno I2C befälhavaren ombord började jag tänka att jag skulle kunna förbättra styrelsen. Tja... gör det mer utbyggbar för en sak, och tillåter mig att använda styrelsen för andra saker också. Jag tänkte om jag skulle k...