Creëren van IoT apparaten met de ESP8266 en PubNub (8 / 12 stap)

Stap 8: Firmware: Main

PP {} kw {} pps {} lc {tekenstijl: cursief;} bc {kleur: Green; font-style: cursief;} jc {kleur: Blue; font-style: cursief;} fn {kleur: rood;} {num} var}

Bij het rechtstreeks programmeren van gangbare microcontrollers als de Atmel AVR-lijn, kunt u een hoofdfunctie met een interne "forever loop." Dit is niet het geval met de ESP8266. Deze module maakt gebruik van haken, vergelijkbaar met de Arduino, zodat de compiler een paar gedefinieerde functies zullen verwachten. Na dat, kunt u een timer om herhaalde taken plannen.

De meest voorkomende haken in gebruik zijn:

 // Required for SDK v1.1.0 - Can be used to disable RFvoid user_rf_pre_init(void) { } // Loop function - Can/will continuously reschedule itself to runstatic void IFA user_procTask(os_event_t *events) { os_delay_us(10); // system_os_post(user_procTaskPrio, 0, 0 ); } // User Initialization void IFA user_init() { // Initialize the device here } 

Othwerwise, u bent vrij om te schrijven van uw eigen functies en noemen als een normale C programma. Het kenmerk "IFA" is eigenlijk een macro die ik heb gedefinieerd in include/esp8266.h als:

 #define IFA ICACHE_FLASH_ATTR 

Als een functie wordt voorafgegaan door de IFA, is het geschreven naar flash die is toegewezen aan de ROM. Zonder dit kenmerk zal de functie uiteindelijk in de instructie RAM segment, die sneller is, maar zal snel vullen. Indien mogelijk, gebruik altijd het kenmerk van de IFA. Deze headerbestand bevat ook bijna alle van de bibliotheken van de SDK gebruikte evenals het opnieuw toewijzen van een paar gemeenschappelijke C-functies (zoals printf) naar de versie die is vereist door de Espressif SDK (os_printf). Tot slot, het definieert een eenvoudige foutopsporing afdrukken macro die kan worden gebruikt als selectief afdrukbereik verklaringen als een bepaalde waarde is gedefinieerd, wordt er in het *include/user_config.h* bestand. Ik gebruik deze macro uitgebreid in de bibliotheek, maar wees voorzichtig met het als het gemakkelijk gebroken worden kan.

 // Define to print debug statements over UART using DEBUG_PRINT()#define DEBUG_PRINT_ 1 // Only prints lines for debugging purposes#ifdef DEBUG_PRINT_ # define DEBUG_PRINT(S) printf S #else# define DEBUG_PRINT(S) #endif 

Binnenkant van de user_init() functie, zullen we de UART-verbinding initialiseren, opstelling de GPIO pinnen, en verbinden met WiFi. De waarden van SSID en SSID_PW zijn in include/user_config.hdefiniëren. U moet deze waarden ingesteld op de bijbehorende SSID en het wachtwoord voor uw huis WiFi-verbinding! De algehele stroom van de code gaat iets als dit:

  1. Initialiseren van de UART
  2. GPIO initialiseren
  3. Initialiseren van de PubNub
  4. Verbinding maken met netwerk (pauze hier tot stand gebrachte verbinding)
  5. Verbinden met Pubnub
  6. Bewaking van de knop (SW2) en beheersing van LED1 op basis van berichten die worden ontvangen.

Gerelateerde Artikelen

Het creëren van een heks met 123D schepsel

Het creëren van een heks met 123D schepsel

een 3D heks maken voor Halloween.Dit Instructable zullen In twee segmenten. De eerst beeldhouwen het hoofd van de heks, en de tweede beeldhouwen de arm en apple.U zult 123D schepsel beschikbaar in de Apple App Store.Het uiteindelijke model van de hek
Creëren van een chatserver met behulp van java

Creëren van een chatserver met behulp van java

IntroductieNetwerken is een belangrijke tak van de programmering die is essentieel voor het verbinden van gebruikers via apparaten. Zo hebben vele programmeertalen meerdere manieren aan formuliergebruikers verbindingen en servers of tussen peers. Voo
Bouwen van uw Android Apps voor de controle van IoT-apparaten met behulp van REST API

Bouwen van uw Android Apps voor de controle van IoT-apparaten met behulp van REST API

Een paar weken geleden, heb ik uitgevoerd REST web service bibliotheek voor WIZwiki-W7500ECO board. Ik heb gepost op Instructables, (Featured content!)Heb ik besloten om mijn eigen Apps voor de controle op mijn bord met REST API's. Mijn Apps gemaakt
SketchUp tutorial #11---creëren van complexe vormen met snijden gezichten gereedschap

SketchUp tutorial #11---creëren van complexe vormen met snijden gezichten gereedschap

zorg ervoor dat u check out onze serie van Sketchup Tutorials op http://www.workshopaddict.com/forum/sketchup-cad-talk/3484-sketchup-class-workshopaddict-members-sign-up-here.html.In deze les tonen Rich u hoe te maken van complexe vormen met snijden
Bent u een LaTeX fetisjist? Het creëren van een shirt met LaTeX en Lumi Inkodye

Bent u een LaTeX fetisjist? Het creëren van een shirt met LaTeX en Lumi Inkodye

de tweede Lumi instructable van dingfabrik is gemaakt met de verbazingwekkende gratis typesetting software LaTeX (zie www.tug.org voor meer informatie)Ik gebruikte de volgende broncode om te maken het PDF-bestand met het teken "LaTeX fetisjist":
Het creëren van een stripfiguur met Adobe Illustrator CS5

Het creëren van een stripfiguur met Adobe Illustrator CS5

Adobe Illustrator CS5 wordt gebruikt voor het maken van graphics en type in vector-formaat. Vectorafbeeldingen bestaan uit punten, lijnen en krommen die zijn gedefinieerd door de wiskundige vergelijkingen. Vectorafbeeldingen zijn handig omdat ze zond
Recycling en creëren van grote spullen met LED's

Recycling en creëren van grote spullen met LED's

In dit Instructable vindt u ideeën voor de recycling van oude materialen en LED's maken grote spullen...Ik heb mijn eigen idee gebruikt, maar u kunt jouwe van grof.Stap 1: Onderdelen en tools... Hieronder vindt u de onderdelen die ik heb gebruikt.-Hi
Het creëren van een basisdeel model voor Autodesk Inventor Professional 2011

Het creëren van een basisdeel model voor Autodesk Inventor Professional 2011

 Het doel van dit instructable is om te onderwijzen nieuwe gebruikers van Autodesk Inventor Professional 2011 op basisdeel modellering van functies. Onderwerpen die wij zullen behandelen zijn: lijn- en cirkel functies, dimensionering, extrusie en fil
Het creëren van een bush mes met gelaagde houten handvat

Het creëren van een bush mes met gelaagde houten handvat

dit documenten het proces van het creëren van een 'bush mes' van schroot staal en hout, tot het eindproduct. Het doel was om te produceren een nuttig hulpmiddel voor een van mijn favoriete pass-tijden, wild kamperen. Het werd ontworpen om te voldoen
Het creëren van een aangepaste Chinese knoop Strand met Hand gemaakt glaskralen

Het creëren van een aangepaste Chinese knoop Strand met Hand gemaakt glaskralen

dit instructable beschrijft het proces om te maken van aangepaste glazen bolletjes met een propaan-fakkel gevolgd door het creëren van een aangepaste Chinese knoop-onderdeel dat houdt de kralen en voltooit het stuk van juwelen.  Het wordt veronderste
Het creëren van een Home Media Streaming Center met Ubuntu

Het creëren van een Home Media Streaming Center met Ubuntu

laten we eerlijk zijn. Schijven zijn een ding van het verleden, en externe harde schijven zijn omvangrijk en lastig. Met deze gids, zal ik u tonen hoe maak je een Home Media Center, geschikt voor streaming films en muziek rechtstreeks naar je PC. Het
Het creëren van Armor met Worbla

Het creëren van Armor met Worbla

Worbla de Finest is een materiaal dat is het raken van de wereld door onweer! Gemakkelijk gemanipuleerd, warmte geactiveerd en zo hard als plastic wanneer cool - er is weinig anders in deze wereld die voldoet aan de bruikbaarheid. Voor dit project, z
Het creëren van een tegenhanger van de 3D printbare Torus met Cinema4D en Zbrush

Het creëren van een tegenhanger van de 3D printbare Torus met Cinema4D en Zbrush

Hallo iedereen! Dit is mijn 1e ooit Instructable en ik ben opgewonden om te laten zien hoe je gemakkelijk een complexe geometrische shape genereren in Cinema4D, bewerken en op het beeldhouwen met Zbrush en hebben het klaar om af te drukken in een vor
Het creëren van een digitale thermometer met Arduino

Het creëren van een digitale thermometer met Arduino

heb je ooit voorstellen maken hun eigen digitale thermometer? Met de ontwikkeling van steeds geavanceerdere technologie is wat niets onmogelijk.Ditmaal het project is het creëren van uw eigen digitale thermometer met Arduino. Dat moet worden geleerd