Stap 1: Project overzicht van en vereisten
Voor dit project, ik ben met behulp van de kleine ESP-01, maar één van de modules met toegang tot GPIO0 en GPIO2 zal werken. De module is geladen met aangepaste firmware, geschreven in C en gecompileerd met behulp van de officiële SDK uit Espressif op een Debian Linux machine. Om te beginnen, zijn hier een paar dingen die je wilt ophalen:
- ESP8266 Module - dit zijn gemakkelijk verworven online voor een paar dollar per stuk.
- USB naar seriële Module - voor programmeren en debuggen - het moet gebruiken 3.3V signalen! Dit is een fantastisch van Sparkfun.
- Development Environment - dit is het meest ingewikkelde deel, dus ik u naar de officiële documentatie leiden zal.
- PubNub - aanmelden voor een gratis account hier, en dan krijg je eigen sleutels hier.
- Broncode - gehost in deze GitHub Repository
Met die uit de weg, kunnen we naar beneden voor het bedrijfsleven. Zoals ik al eerder zei, zal we schrijven douaneingebouwde programmatuur te laden op de ESP8266 die kunt verzenden en ontvangen van gegevens van en naar een ander apparaat van PubNub ingeschakeld. Met meer dan 70 officiële SDKsmag dat geen probleem! Helaas, de ESP8266 is momenteel niet een officieel ondersteund apparaat, maar nooit angst - ik heb gemaakt een eenvoudige bibliotheek voor gebruik met deze module die moet krijg je in no-time gaan! De bibliotheek bouwt off van de PubNub REST API, maar meer daarover later...
Er is een kleine waarschuwing; de werkelijke netwerk code die wordt gebruikt in dit project is echter niet de meest robuuste. Het zal u verbinding te maken met een WiFi-netwerk, maar het niet zou kunnen houden u verbonden door onvoorziene gebeurtenissen. Dit zal uiteraard gevolgen hebben voor de verbinding met PubNub, en ziet u de problemen van de prestaties van de intermentent na een bepaalde periode van tijd. De snelle en vuile oplossing is een timer gebaseerde soft-reset, maar toe te voegen meer robuuste en prestaties bewezen verbinding maken/verbreken routines zou een meer juiste weg te gaan. Zoals met enig aspect van een embedded systeem, is de oplossing afhankelijk van uw specifieke use-case.