La campana.

Ci sono quelli che hanno letto questa notizia prima di te.
Iscriviti per ricevere articoli freschi.
E-mail
Nome
Cognome
Come vuoi leggere la campana
Senza spam

Sessioni - purificare nei ranghi dei blinkes!
Oggi, configueremo la gestione ESP8266 in 5 minuti dal tuo smartphone (iOS o Android) utilizzando il nuovo servizio cloud lamking. Video e dettagli sotto il taglio.


Installa l'app Blynk su smartphone

Registrati nell'appendice e crea un nuovo progetto.

Inserire il nome del progetto, per esempio ESP8266.. Nel campo Modello hardware. Scegliere ESP8266.. (Spero che noteresti l'imponente elenco delle apparecchiature supportate) generate automaticamente Auth Token. Invia alla tua casella di posta.

Dopo aver premuto il pulsante Creare. Sarai disponibile un campo vuoto per la progettazione dell'interfaccia utente del tuo pannello di controllo ESP8266.

Fare clic su Plus in alto a destra - verrà visualizzata la barra degli strumenti Scatola del widget. Per aggiungere widget al tuo pannello di controllo. Vale la pena notare che l'elenco dei widget sarà comunque reintegrato.

Per esempio, scegli il tipo di widget Pulsante. - Questo widget viene immediatamente aggiunto al pannello. Modificalo con un tocco. Il nome non può essere riempito, giusto è possibile scegliere il colore dell'indicatore, nel campo PIN di uscita. Scegli il giusto. Digitale.e ha lasciato un perno gratuito GPIO.. Sotto interruttore il tipo di pulsante su Interruttore.

Quindi, imposta la Blynk Library in Arduino IDE. Questo ti aiuterà le istruzioni ufficiali. Puoi anche prendere la biblioteca ultima versione Direttamente dal repository e impostato manualmente. Quindi, scegli un esempio Esp8266_standalone. e prescrivere in esso Auth Token.che abbiamo ricevuto per posta SSID e password voi Rete WiFi.. Completa e versare lo schizzo in ESP8266.

In precedenza, ero presente una bici per creare un dispositivo Arduino per il monitoraggio.

Era interessante.

/ * - Nuovo progetto: questo codice sorgente dell'interfaccia utente grafica è stato generato automaticamente da Remotexy Editor. Per compilare questo codice utilizzando la versione Remotexy Biblioteca 2.3.5 o versione successiva download da link http://remotexy.com/en/library/ per connettersi utilizzando Remotexy Mobile App da link http://remotexy.com/en/download/ - per Android 4.3.1 o versione successiva; - per iOS 1.3.5 o versione successiva; Questo codice sorgente è un software gratuito; È possibile ridistribuirlo e / o modificarlo ai sensi della Licenza pubblica GNU Lesser General come pubblicato dalla Free Software Foundation; O versione 2.1 della licenza o (a tua opzione) qualsiasi versione successiva. * //////////////////////////////////////////////////////////////////////- // // Remotexy Includi Biblioteca // ///// /////////////////////////////////////////////////////////////// /////// // // Definizione della connessione Modalità e connessione del remotexy #define remotexy_mode__sp8266_mode__sp8266_mode__sp8266_mode__sp8266_Mode__SP8266_HardServiale_cloud #include // impostazioni di connessione #Define remotexy_serial seriale #Define remotexy_serial_speed 9600 #Define remotoxy_wifi_sid "***********" #Define remotexy_wifi_password "*********" #Define remotexy_cloud_server "cloud. remotexy .com "#define remotexy_cloud_port 6376 #define remotexy_cloud_token" *************************** #include // Aggiungi la libreria DHT11 DHT11 DHT; // Annuncio della classe variabile DHT11 #Define DHT11_PIN 7 // Sensore DHT11 è collegato al numero di pino digitale 4 const int analogsignal \u003d A3; // Collegare un perno di segnalazione analogico Cost int Digitalsignal \u003d 8; // Collegamento di una segnalazione digitale Pina Boolean Nogas; // variabile per la conservazione del valore della presenza di gas int gas \u003d 0; // variabile per la memorizzazione della quantità di gas galleggiante hum \u003d 0; // variabile per la memorizzazione di umidità float Temp \u003d 0; // variabile per la memorizzazione della temperatura int chk; // variabile per la memorizzazione dell'errore di DHT Char MsGBuffer; // interfaccia di configurazione #pragma Pack (spinta, 1) UINT8_T remotexy_conf \u003d (255,1,024,044,04,13,24,07,07.44,224,11,7, 81,22,11, 2,26.31,31,70.78,79.70,70, 0,66,132,10,13,31,24,7,10,13,31,24,7,10,27, 21,2,24, 66.132,56, 13,31,24,4, 41,31,24.2,24.31,24,224,67,426,5,20, 5.38,23,20,52,26,11,67, 4, 63,6,20, 5,39,52,20,526, 11); // Struttura determina tutte le variabili dell'interfaccia di controllo della struttura (// variabile di ingresso UINT8_T switch_1; // \u003d 1 se l'interruttore è attivato e \u003d 0 se disabilitato // variabile di uscita INT8_T_1; // \u003d 0..100) INT8_T Livello_2 Posizione di livello; / / \u003d 0..100 posizione di livello char testo_1; // \u003d riga utf8 finale zero char text_2; // \u003d riga utf8 finale zero // Altro variabile UINT8_T Connect_FLAG; // \u003d 1 se Wire collegato, altro \u003d 0) remotexy; #PRAGMA Pack (POP) /////////////////////////////////////////////////////////////////////////////- End Remotexy include // ////////////////////////////////////////////////////////////////////////- ////// ////- # #define pin_switch_1 13 impostazione void () (remotexy_init (); Pinmode (Pin_Switch_1, output); // Todo Youtuup Code) Void Loop () (Remotexy_Handler (); DigitalWrite (Pin_Switch_1, (remotexy.switch_1 \u003d\u003d 0)? basso: alto); Nogas \u003d digitallead (digitalsignal); // Leggere la presenza di gas \u003d analogead (analogsignal); // e sul suo numero CHK \u003d DHT.READ (DHT11_PIN); hum \u003d dht.humidità; temp \u003d dht.temperature; remotexy.level_1 \u003d hum; remotexy.level_2 \u003d temp; dtostrf (hump, 6, 2, remotexy.text_1); DTOSTRF (TEMP, 6, 2, Remotexy.Text_2); // Todo Yoop Code / / Usa la struttura remotexy per il trasferimento dei dati )

Usiamo un sandwich dalle schede.

All'improvviso, tutto subito guadagnato:

Dal momento di scoprire il servizio cloud, remotexy alla foto sopra passata un'ora.

Caratteristiche di lavorare con remotexy.

1. Tutto è molto semplice. A modo suo è buono. Con Blynk e Cayenne, ad esempio, difficilmente da zero in un'ora risultano capire. Per usare, ad esempio, "Kascada Cloud" è necessario acquistare uno speciale.

2. Non vi è alcuna elaborazione e archiviazione di dati sul lato server: nessuna connessione con la scheda - L'applicazione è appesa "Nessuna connessione".

3. Libera solo 5 elementi di design, ma pro allegato Pro. Non è più costoso di mezzo giorno di tempo trascorso.

4. C'è un'opportunità da un'applicazione per comunicare con una tavola sia attraverso un server cloud e diretto. Vero, non allo stesso tempo. Certo. E interruttore prontamente impossibile - è necessario modificare lo schizzo nella scheda. C'è anche la possibilità di comunicare uno smartphone con un Bluetooth e una scheda USB.

Programmazione di una varietà di microcontrollori e microcomputer, come Arduino, Raspberry PI e simili, è una delle attività più interessanti e rilevanti. La costruzione di dispositivi su queste piattaforme è andata oltre gli hobby di Glicks e Programmatori professionali: Queste schede sono utilizzate per creare robot, macchine utensili, quadcopotteri, dispositivi IoT (smart home), server e anche interfacce audio hi-fi.

Sfortunatamente, il mercato del microcontrollore è molto segmentato. La loro programmazione viene effettuata attraverso vari ambienti e interfacce. La situazione è destinata a salvare il progetto chiamato Blink.

Blynk è un servizio cloud per creare pannelli di controllo grafico ed è adatto per una vasta gamma di microcomputer e microcontrollori. Dove prima per raccogliere informazioni dai sensori, è stato necessario scrivere un'interfaccia I / O a pieno titolo o acquisire moduli aggiuntivi, ora è possibile eseguire il lavoro di cinque minuti a Blynk.

Per creare il proprio progetto con il controllo Blynk, è necessario un bel po ': installare l'applicazione (disponibile per iOS e Android) o utilizzare il modulo Web. Ciò richiederà la registrazione in un unico passaggio - inserendo e-mail e password. La registrazione è necessaria per il fatto che Blynk è una soluzione cloud e qualsiasi utente può ricevere senza di esso.

Desiderare può installare il server localmente. In questo caso, l'accesso a Internet non è necessario.

L'applicazione richiederà determinate abilità. Devi prima associare un computer o uno smartphone con una scheda programmabile. Il programma supporta la connessione con i pagamenti tramite una varietà di interfacce:

  • USB (seriale),
  • ADAFRITUT CC3000 WiFi,
  • Scudo ufficiale di Arduino WiFi,
  • Scudo ufficiale Ethernet (W5100),
  • ENC28J60,
  • ESP8266 (modem WiFi),
  • SeeedStudio Ethernet Shield V2.0 (W5200),
  • Rn-xv wiftly,
  • ESP8266.

Oltre a configurare la connessione, è necessario collegare solo correttamente i moduli del dispositivo futuro. Successivamente, nel modulo di lavoro dell'applicazione è necessario aggiungere moduli disponibili (widget), configurare gli indirizzi di uscita necessari e specificare i parametri desiderati (se necessario, è possibile scrivere il codice). A proposito, Drag'n'drop viene utilizzato per creare un widget o un programma. Una varietà di simulatori del dispositivo di controllo sono disponibili per il controllo - interruttori, cursori, display, per ciascuno dei quali è possibile scrivere la logica. Esistono moduli separati per l'uscita e la sistematizzazione delle informazioni dai sensori richiesti sotto forma di grafici.

Pertanto, la piattaforma si adatta ai principianti e agli utenti più avanzati che non vogliono trascorrere del tempo a scrivere applicazioni per la gestione dei progetti: dalla lettura dei dati dalla stazione meteorologica e nella gestione della casa intelligente prima della gestione del robot.

Tutte le informazioni necessarie per avviare il lavoro sono pubblicate sul sito ufficiale. Blynk è, quindi tutti possono partecipare a creare nuove funzionalità. Sul questo momento L'uso del servizio è completamente gratuito, in futuro la situazione cambierà in qualche modo - principalmente a causa della monetizzazione delle nuove funzioni. Quindi, è già noto che l'accesso alle interfacce GPIO sarà acquistato come un acquisto incorporato.

Al momento, Blynk lavora con le seguenti schede:

  • Arduino: UNO, NANO, MINI, PRO MINI, PRO MICRO, MEGA, YúN (Ponte), Due;
  • Raspberry pi;
  • Particella (annetto ex spack);
  • ESP8266;
  • Tinyduino (CC3000);
  • Wicked Wildfire (CC3000).

Connessione tramite il server cloud remotexy consente di controllare il dispositivo da qualsiasi parte del mondo dove c'è un Internet.

Il modulo ESP8266 sarà configurato come client per connettersi al punto di accesso WiFi. Il punto di accesso deve avere accesso a Internet. La libreria Remotexy registrerà il dispositivo su un server cloud.

L'applicazione mobile si connetterà al server cloud e non direttamente al dispositivo. Pertanto, il dispositivo sarà disponibile da qualsiasi punto di internet.

Nota:Al momento, la connessione tramite il server cloud passa il passaggio di prova. Questa è possibile interruzioni nel server.

Passaggio 1. Creare un progetto di interfaccia grafica

Passaggio 5. Regolare l'ESP8266

Il modulo ESP8266 deve essere configurato. Forse il tuo modulo ha già impostazioni necessarie Per impostazione predefinita, ma è meglio controllarlo.

Cosa devi controllare:

  • Il modulo ha un firmware con il supporto dei comandi della versione non inferiore a V0.40;
  • Il modulo è configurato per la velocità del 115200.

Passaggio 6. Collegare l'ESP8266 a Arduino Uno

Collega l'ESP8266 ad Arduino Uno secondo lo schema qui sotto. Si noti che i contatti RX-TX sono collegati da Crosshair.

Poiché i livelli di segnali del modulo ESP8266 sono 3,3 V e ad Arduino, sono 5V, è necessario utilizzare un divisore di tensione resistivo per convertire il livello del segnale.


Passaggio 7. Caricare lo schizzo ad Arduino.

Lo schizzo è caricato in Arduino nel solito modo. Tuttavia, a causa del fatto che il modulo ESP8266 è collegato ai contatti 0 e 1, la programmazione diventa impossibile. Il compilatore mostrerà un errore.

Prima di programmare, scollegare i fili che vanno in ESP8266 da Contatti 0 e 1. Programmazione. Quindi restituire i contatti al posto. Fai clic sul pulsante Ripristina Arduino.

Nota:Il primo segno è che la programmazione è passata con successo, questo è lo sfarfallio del LED BLU sul modulo ESP8266 subito dopo il reset. Lo sfarfallio del LED blu significa scambio di dati tra Arduino ed ESP8266. In questi 8, Arduino è stato configurato per configurare ESP8266 per connettersi al punto di accesso. Dopo un po 'di tempo, il LED lampeggerà di nuovo, il che significa un tentativo di registrarsi sul server cloud remotexy.

Passaggio 8. Connetti dall'applicazione mobile.

Controllare Power ESP8266.

È anche possibile che il tuo ESP8266 manca il potere di alimentazione. Alcune schede Arduino hanno uno stabilizzatore di tensione debole 3.3 V, che non è in grado di emettere 200-300 mA nelle modalità di picco. In questo caso, nel monitor seriale, vedrai anche una pausa della sequenza di comando.

Vadim Kolesnik, Tiraspol

Sviluppo eccitante, semplice e rapido di dispositivi Internet completi su Arduino utilizzando un servizio cloud

Generale

myDevices si sta sviluppando software E applicazioni in Internet delle cose (IOT) ed è una divisione di Avanquest. MyDevices Cayenne: il primo servizio di applicazione e cloud drag-and-drop per progetti semplificati di sviluppo IOT su Raspberry PI.

Il portale RADIOTOTOZMAN è stato recentemente pubblicato in cui ho provato a rivelare i principali vantaggi e capacità del sistema quando si lavora sul computer a scheda singola PI Raspberry PI (RPI). Ma il progetto Cayenne è in costante sviluppo, sviluppatori, in base ai desideri degli utenti, aggiungi gradualmente nuove funzionalità, eliminare le carenze ed errori.

Lo sviluppo di dispositivi IOT su Arduino e Raspberry PI quando si lavora con Caienna differisce fondamentalmente. Per quanto riguarda il Raspberry PI, la piattaforma di Cayenne può essere considerata un ambiente di sviluppo visivo: collegiamo fisicamente le diverse periferiche alla scheda PI Raspberry PI e poi lavoriamo solo nell'ambiente online Cayenne (impostando widget, elaborazione dei dati, algoritmi di automazione scriva).

Per quanto riguarda Arduino, la Dashboard Cayenne è solo un set di widget e controlli che visualizzano i dati dai sensori e trasmettono i dati dell'utente per controllare i comandi o altri dispositivi esecutivi. Funzionamento diretto con sensori, dispositivi esecutivi, periferiche aggiuntive (ad esempio, display, seconda tastiera), il trattamento delle condizioni di automazione è assegnato al microcontrollore. In altre parole, tutto si riduce allo sviluppo standard del dispositivo su Arduino; L'utente stesso scrive il codice del programma, ma con l'integrazione nel progetto di funzioni di IoT flessibili di Caienna. In questo parere, a mio avviso, a mio avviso, il principale vantaggio di Cayenne è: è possibile collegare eventuali sensori e attuatori al sistema, senza limitare l'elenco delle periferiche supportate.

Interfaccia utente e preparazione del lavoro

Per quanto riguarda l'interfaccia utente del sistema, le sue impostazioni, i metodi di controllo e i widget sul dashboard, tutto ciò rimane un sistema simile sul Raspberry PI, ovviamente, ad eccezione di singoli elementi unici inerenti a quest'ultimo (ad esempio, a Desktop remoto, stato della memoria, caricamento del processore). Pertanto, per capire le basi del lavoro con il sistema, consiglio di conoscere gli articoli. Tutte le informazioni nell'articolo sono rilevanti per entrambe le interfacce Web del sistema e per l'interfaccia di applicazione mobile. Anche nell'articolo indica un elenco di periferia supportata.

Per sviluppare dispositivi o applicazioni IOT, abbiamo bisogno di:

  • Speranza account sul servizio di Cayenne (è possibile utilizzare l'esistente);
  • Installare un ambiente di sviluppo IDE Integrato IDE;
  • Aggiungi una libreria delle funzioni di Cayenne in IDE di Arduino;
  • Configurare Arduino IDE: selezionare una commissione e la porta COM a cui è collegato;
  • Connetti a Arduino Ethernet Shield o Scheda di estensione Scudo Wi-Fi (o utilizzare la scheda Arduino con un'interfaccia di rete integrata).

Penso che il processo di installazione dell'ambiente di sviluppo di Arduino IDE, nonché la scelta delle tasse e dei porti in spiegazioni non necessiti, e andremo al principale.

La Biblioteca Cayenne per Arduino è semplicemente installata e rapidamente installata utilizzando il gestore della libreria (Figura 2).

Dopo aver installato la libreria, saremo in grado di usarlo nelle tue applicazioni e una nuova cartella con il nome Cayenne apparirà nella sezione Esempi di schizzo. A mio parere, questi esempi non ti permettono di comprendere appieno come lavorare con il sistema, ma, tuttavia, dovrebbero essere esplorati, e anche, ti ricordiamo che vi è una sezione enorme della documentazione sul sistema Cayenne. Nel caso generale, questa libreria è una serie di schizzi che consentono di semplificare la connessione e lo scambio di dati tra sensori / attuatori e servizio cloud.

Eseguendo operazioni preparatorie, configurando l'ambiente di sviluppo e il collegamento della scheda di estensione SHIELD Ethernet, è possibile avviare lo sviluppo del dispositivo IOT.

Arduino Board Connetti a un computer tramite USB, in Ethernet Shield Connect cavo di rete rete locale. Nel browser Internet, accettiamo il conto Cayenne e aggiungiamo un nuovo dispositivo nel pannello di controllo - Arduino. Successivamente, selezionare il tipo di scheda, il metodo di connessione a Internet (molte opzioni), prestare attenzione alla chiave di autorizzazione unica per il nostro dispositivo e attendere la scheda Arduino a Cayenne (Figura 3).

Per ogni nuovo dispositivo, viene generata una nuova chiave unica, in futuro può essere trovato nelle impostazioni del dispositivo (commissioni).

Una volta scegli un modo per connettersi alla rete, verrà visualizzata una finestra con il codice sorgente del programma Microcontroller. Questo è il minimo richiesto per il collegamento del dispositivo a servizio cloud. Si noti che il testo del programma ha già specificato il tasto di autorizzazione e collegato la libreria corrispondente al metodo selezionato di connessione alla rete (Figura 4). Copia questo codice in Arduino IDE, compila e carica la tassa. Se tutto è stato configurato correttamente, un nuovo dispositivo attivo e un dashboard verranno visualizzati nel pannello di controllo Cayenne, dove ora è possibile aggiungere widget e controlli. Inoltre, già in questa fase, è possibile controllare a distanza le porte ARDUINO digitali e analogiche disponibili, senza scrivere una singola riga di codice - sul dashboard, aggiungere un widget, specificare il tipo di porta (digitale), il suo nome sulla scheda e Salva il widget. Ora, facendo clic sul pulsante nel browser, cambierai lo stato logico della porta. Inoltre, semplicemente aggiungendo i widget appropriati, è possibile gestire le uscite PWM, ricevere dati "RAW" dagli ingressi ARDUINO analogici, controlla lo stato degli ingressi digitali.

Sviluppo di un dispositivo su un esempio specifico

Ora parlerò caratteristiche aggiuntive e funzioni di sistema. Ad esempio, ho raccolto un semplice sistema, che includeva:

  • Scheda Arduino Uno;
  • Scheda di estensione SHIELD Ethernet sul controller Wiznet W5100;
  • Sensore di temperatura DS18B20;
  • Photoresistor;
  • Termistore;
  • Diversi LED;
  • Display OLED sul controller SSD1306.

Un diagramma schematico di sensori di collegamento e LED ad Arduino è mostrato nella figura 5.

Permettetemi di ricordarti che la maggior parte delle domande relative alla connessione di vari sensori e attuatori, puoi trovare le risposte nella sezione della documentazione.

Penso che sul collegamento dei LED, un sensore di temperatura digitale e un display OLED di domande non sorgano. Illuminazione analogica e sensori di temperatura sono collegati agli ingressi analogici in base allo schema di divisorio resistivo. Allo stesso tempo, per la catena del termistore, è necessario conoscere la resistenza esatta del resistore R6, questo valore verrà utilizzato nel codice sorgente durante i calcoli.

Dopo aver collegato gli articoli specificati sul diagramma, scrivi lo schizzo Arduino, quindi installare i widget richiesti sulla cruscotto di Cayenne. Al momento, il Consiglio di Arduino ha già caricato lo schizzo minimo e il tabellone è determinato nella cruscotto di Cayenne. Come ho detto sopra, in questa fase possiamo aggiungere widget per controllare i LED D1, D2, oltre a ottenere dati "RAW" dagli ingressi analogici a cui sono collegati il \u200b\u200btermistore e il Photoresistor (figure 6, 7).

Senza scrivere una singola riga di codice Arduino, abbiamo già ricevuto un semplice sistema telecomando e controllo (figura 8).

Per utilizzare sensori di temperatura digitale, termistore, PWM, ad esempio, per controllare il LED D2, sarà necessario aggiungere lo schizzo minimo. Per cominciare, definiamo le librerie necessarie.

#Includere.< CayenneEthernet.h> // Utilizzare la tassa di estensione Scudo Ethernet
#Includere.< CayenneTemperature.h> // Funzioni di conversione dei dati con termistore
#Includere.< OneWire.h> // funziona per lavorare con bus a 1 fili
#Includere.< DallasTemperature.h> // funziona per lavorare con sensori di temperatura digitale
#Includere.< Arduino.h> // costanti standard ed etichetta Arduino
#Includere.< U8x8lib.h> // Biblioteca per lavorare con display OLED in modalità testo
#Includere.< Wire.h> // Supporto per interfaccia hardware I 2 c

#Define virtual_pin_1 v0 // Channel virtuale per sensore DS18B20
#define virtual_pin_2 v1 // - per termistore
#define virtual_pin_3 v2 // - Per il LED D2, riceveremo dati sul valore di PWM
#Define led2_pwm 6 // reale porto di Arduino.a cui è collegato il LED D2

I canali virtuali non sono digitali e non porti di ingresso / uscita analogici. Quando si leggono ingressi analogici, l'utente riceve i dati da un microcontrollore a 10 bit ADC. I valori restituiti dall'ADC sono nell'intervallo di 0 ... 1023 e proporzionale alla tensione a questo ingresso. In altre parole, se si collega il sensore di temperatura all'ingresso ARDUINO analogico, non riceverai il valore della temperatura, avrai bisogno trasformazioni aggiuntive e calcoli matematici per la conversione di tensione - temperatura.

Per semplificare la conversione dei dati, la formattazione e l'elaborazione, i canali virtuali sono progettati. Questo è uno strumento piuttosto potente che viene utilizzato per lo scambio tra Arduino e Cayenne, nonché per una facile formattazione dei dati per lo scopo della loro visualizzazione comprensibile sul dashboard. Ricorda, i canali virtuali non hanno parametri fisici.

Cayenne.VirtualWrite (V1, 123) // Trasmissione del valore intero Virtual Channel V1
Cayenne.VirtualWrite (V2, 12.34) // Trasferimento di valori flottanti Valori Virtual Channel V2

Ad esempio, leggendo un sensore di temperatura analogico, saremo in grado di convertire un valore per gradi Celsius e trasferire questo valore su pannello di controllo. Inoltre, i canali virtuali consentono di implementare il controllo di qualsiasi periferia collegata alle porte analogiche o digitali di Arduino, senza la necessità di scrivere qualsiasi codice aggiuntivo. Al momento, due tipi di dati sono supportati con i quali i canali virtuali sono operativi: Integer (Integer) e Punto flottante (galleggiante). In futuro, è pianificato per supportare tipi e array simbolici. Nella dashboard nel canale virtuale è possibile connettersi e configurare il tipo di dati presi dal widget utente per la visualizzazione.

// porta digitale a cui saranno collegati i sensori DS18B20. Non utilizzare porte Arduino 0 e 1 (RX / TX).
CONST INT DS18B20_PIN \u003d 2;
// porta analogica a cui è collegato il termistore.
Cost int termistorpin \u003d 0;
// resistenza a un resistore permanente (9 com), incluso in serie con un termistore a terra.
Resistenza a galleggiante cost \u003d 9000;
// chiave di autorizzazione Cayenne. Puoi trovarlo nell'interfaccia Web Cayenne nella scheda Impostazioni dispositivo.
Char token \u003d "640c9odi4";
Onewire iceewire (DS18B20_PIN);
Dallastemperature Sensori (& iceewire);
Termistore termistore (termistorpina, resistenza);

A sua discrezione, quasi in qualsiasi momento, puoi aggiungere a fonte Disabilitazione delle informazioni sulla porta seriale.

Nella sezione di inizializzazione, indicheremo le seguenti funzioni:

setup void ()
{
Cayenne.Begin (token); // Connetti a Cayenne con la chiave di autorizzazione specificata
Sensori.Begin (); // inizializzazione dei sensori di temperatura digitale
u8x8.begin (); // Inizializzazione e visualizzazione delle informazioni di testo sul display OLED

u8x8.setpowersave (0);
u8x8.setfont (u8x8_font_torussansbold8_r);
u8x8.drawstring (2.0, "test di cayenne");
u8x8.drawstring (1,2, "sistema in esecuzione");
}

Nel ciclo principale del programma, avremo solo una funzione:

void Loop ()
{
Cayenne.run ();
}

Tutti gli scambi dati con il cruscotto di Cayenne vengono eseguiti utilizzando diverse funzioni:

Cayenne_in (virtual_pin) - Specifica la funzione che viene chiamata ricevimento da parte del dispositivo dei dati aggiornati tramite il canale virtuale dal server Cayenne.

Cayenne_out (virtual_pin) - Determina la funzione che viene chiamata quando si desidera inviare i dati aggiornati dal dispositivo al server Cayenne.

Cayenne_connected () - La funzione viene eseguita ogni volta quando il dispositivo è collegato al server Cayenne. In generale, questa funzione viene utilizzata per sincronizzare.

Cayenne.syncall () - Una funzione che genera una richiesta al server Cayenne per sincronizzare tutti i widget. Lo stato delle porte ARDUINO analogico e digitale verrà ripristinata e ogni canale virtuale genererà l'evento Caienne_in.

Cayenne.syncvirtual (virtual_pin) - Sincronizzazione tramite il canale virtuale specificato. Come risultato dell'esecuzione, viene chiamato il cornice Cayenne_in corrispondente.

Nel mio diagramma, il LED D2 è collegato alla porta D6 Arduino Digital. Questa porta ha una funzione alternativa - Uscita PWM. Per implementare il telecomando di questi LED in modalità PWM, sarà necessario ricevere dati dal dashboard. Per fare ciò, scrivi una funzione che verrà eseguita durante l'aggiornamento dei dati tramite il canale virtuale V2:

Cayenne_in (v2)
{
// Ottieni i dati sul valore del PWM dal cruscotto (cursore)
int pwmvalue \u003d getValue.asint (); // Valore nell'intervallo 0 - 1023
Analogrite (LED2_PWM, PWMValue / 4); // per PWM, il valore deve essere nell'intervallo di 0 - 255
}

Ora aggiungeremo il widget "Slider" sulla dashboard con il nome LED_2 PWM (PWM) e nelle sue impostazioni, specifichiamo che funziona attraverso un canale virtuale 2 (Figura 9).

Dopo aver scaricato lo schizzo nella scheda, è possibile utilizzare il cursore sul cruscotto di Cayenne controlla la luminosità del LED D2. Tutto è molto veloce e facile ...

Cayenne_out (v0)
{
Sensori.requesttemperatures (); // Ricevi i dati dai sensori di temperatura digitale.
// Converti i dati dal termistore, formattali e inviarli al server tramite il canale virtuale V1
Cayenne.celsiuswrite (V1, termistor.getcelsius ());
// Formattare i dati da un sensore di temperatura digitale e inviarli al canale virtuale del server V0
Cayenne.celsiuswrite (v0, sensori.gettempcbyindex (0));
}

Attraverso l'uso dei canali virtuali, l'intero codice funzione per trasmettere dati assolutamente diversi è composto da due linee. Sul cruscotto, aggiungi widget per il sensore di temperatura DS18B20 e il termistore (sono pronti nel pannello di controllo). Personalizza i widget, caricare lo schizzo nella tassa e ... pronto (figure 10a, 10b)!


Figura 10. Vista della cruscotto di Cayenne per controllare Arduino (sensori di temperatura,
Light, LED Control D1, PWM LED Control D2):

Non dimenticare che le stesse funzioni di controllo e controllo sono disponibili in applicazione mobile. Tutti i widget installati nell'interfaccia Web verranno visualizzati in un'applicazione mobile (Figura 10b).

Aspetto I dispositivi con periferiche collegate sono mostrati nella figura 11.

Possibilità di sviluppare dispositivi IOT wireless

Potresti notare che su alcuni screenshot, il mio pannello di controllo è visibile, dove oltre ad Arduino Uno e Raspberry PI, c'è un dispositivo denominato ESP8266-1. È tutto vero, è un dispositivo aggiuntivo sul noto modulo ESP-12 (ESP82666), che è collegato al server Cayenne tramite Wi-Fi e ha il proprio dashboard separato (figure 12A, 12b). Tale dispositivo è un nodo di controllo e controllo wireless. Due LED sono collegati al modulo (uno è collegato all'uscita ESP8266 PWM) e al sensore di temperatura digitale DS18B20.


Figura 12. Dashboard for. dispositivo wireless Sul modulo ESP-12:
a) Interfaccia Web, B) Applicazione mobile.

Grazie al supporto del kernel ESP8266, l'ambiente IDE Arduino, l'implementazione dei dispositivi IoT wireless con Caienna non differisce dallo sviluppo su Arduino. In altre parole, qualsiasi modulo sul chip ESP8266 è una scheda Arduino con un'interfaccia Wi-Fi. Per questo modulo Wi-Fi, scriviamo uno schizzo simile, utilizziamo le stesse librerie per lavorare con i sensori, i porti di ingresso / uscita digitale e analogica sono disponibili per noi. Questo modulo ha accumulato un'enorme quantità di informazioni, varie documenti e sviluppi.

Il diagramma di connessione periferico al modulo ESP8266 è mostrato in figura 13. Ho utilizzato un modulo ESP-12 separato senza una scheda di transizione con un circuito di alimentazione integrato e l'interfaccia di programmazione, che ha notevolmente complicato il lavoro nella fase di download dello schizzo. L'opzione ottimale sarà l'uso di un modulo di tipo NODEMCU V3 già pronto, realizzato nel fattore di forma Arduino e ha uno schema di corrispondenza dell'interfaccia. (Altamente momento importante Quando si programma il modulo). L'aspetto del modulo con i LED collegati e il sensore di temperatura è mostrato nella figura 14.

Per quanto riguarda il collegamento al server Cayenne e allo scambio di dati, tutto è qui per Arduino. Tutti i concetti sui canali virtuali vengono salvati, vengono utilizzate le stesse funzioni, viene utilizzata anche la chiave di autorizzazione univoca. Differenza solo nella fase di connessione del modulo su Internet.

Per collegare il dispositivo sul modulo ESP8266, agiamo in analogo all'aggiunta di qualsiasi scheda Arduino e reagiamo alla modalità standby per il collegamento del dispositivo a Cayenne, dove verrà generato lo schizzo minimo.

Dobbiamo cambiare questo schizzo. Colleghiamo le seguenti biblioteche:

#Include "cayennedefines.h" // costanti e variabili Cayenne
#include "Bllynksimplep8266.h" // funziona per lavorare con ESP8266
#include "CayenNewIfylient.h" // funziona per l'implementazione del client Wi-Fi

char token \u003d "3yj62u9ogi";
Char ssid \u003d "network_sidsid"; // SSID e password per la rete Wi-Fi.
Password char \u003d "network_password";

Nella sezione di inizializzazione, aggiungere una stringa:

Cayenne.Begin (token, SSID, password);

Compila il caricamento del modulo (richiede più tempo del download sulla scheda Arduino), non vediamo l'ora di connettersi e attivare il nuovo dispositivo nella cruscotto di Cayenne. Successivamente, tutto come per Arduino: aggiungi funzioni per lavorare con sensori e porte I / O, aggiungere widget al cruscotto. Sto solo delizioso, non è vero?!

Conclusione

Secondo i risultati del lavoro con Cayenne su Raspberry Pi e Arduino, posso sicuramente dire che il Raspberry PI non dovrebbe essere usato per sviluppare dispositivi Internet di cose, anche con Caienna. Ciò che non è raccontare di Arduino - nonostante le risorse limitate, la mancanza di potenza multitasking, basso computing (anche se, questo è un momento conteso, data le caratteristiche delle nuove schede Arduino sui processori del braccio), è ideale per lo sviluppo di semplici IoT Dispositivi e sistemi di automazione domestica.

Inoltre, in questo contesto, il principale vantaggio di Arduino, come ho notato sopra è la capacità di sviluppare indipendentemente un dispositivo, studiando circuiti, codice di scrittura, sviluppando competenze di programmazione, nonostante gli argomenti dei programmatori professionisti, che non possono essere imparati da Arduino. Forse, ma ... in relazione ad Arduino, la piattaforma Cayenne fornisce solo grafica interfaccia utente E qualche elaborazione dei dati semplificata. Tutto il resto è necessario svilupparsi, inclusa l'elaborazione dei dati primari da sensori, sottosistema di elaborazione degli eventi, nonché algoritmi di automazione. Ora aggiungi a Arduino Facilità di sviluppo di dispositivi IoT wireless al modulo Wi-Fi ESP8266 e supporto già ufficiale (anche se non completo) L'ultimo chip ESP32, che ha una ricca periferia a bordo, e hai opportunità enormi per sviluppare dispositivi fondamentalmente nuovi e Attrarre questo processo non sono solo amanti, ma anche professionisti.

Al momento della preparazione, Cayenne non è stato riportato sul supporto ufficiale dei moduli sul chip ESP8266. Inizialmente, questo è il merito della Comunità - Amatori e ingegneri che lavorano o usano ORDUINO IDE e conoscono il supporto di ESP8266, utilizzando le librerie Cayenne sono state in grado di connettersi e utilizzare ESP8266. Ma anche in quel momento, i forum della Comunità Cayenne potrebbero già familiarizzare con un gran numero di vari progetti wireless IOT.

Dopo un lungo test dei suoi dispositivi su Arduino ed ESP8266, posso dire che quest'ultimo funziona molto stabile. Diverse basse affidabilità di Arduino con Shield Ethernet è dovuta al problema noto del controller W5100, tuttavia, ci sono diversi modi per risolverlo, sia hardware che software. Posso supporre che ciò non riguarda le tavole Arduino con Ethernet integrata o Wi-Fi.

Dal momento della preparazione dell'articolo su Raspberry Pi e Cayenne, non c'era molto tempo, ma nuove funzionalità e periferia supportata divennero molto più grandi. Oltre ad avere un'enorme selezione di varie schede di estensione, sensori e dispositivi esecutivi, librerie, progetti ed esempi pertinenti per Arduino, ora negli utenti di Caienne sono dispositivi disponibili, reti e servizi Lora, Biblioteche di supporto protocollo di rete MQTT per Arduino, C, C ++, MBED, Biblioteche per lavorare con MQTT Broker Mosquito. Sicuramente, per sviluppare dispositivi Internet e sistemi di automazione domestica su Arduino, consiglierei Cayenne Services.

La campana.

Ci sono quelli che hanno letto questa notizia prima di te.
Iscriviti per ricevere articoli freschi.
E-mail
Nome
Cognome
Come vuoi leggere la campana
Senza spam