ESP8266

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 28 december 2018; kontroller kräver 47 redigeringar .

ESP8266  är en mikrokontroller från den kinesiska tillverkaren Espressif Systems med ett Wi-Fi- gränssnitt . Förutom Wi-Fi kännetecknas mikrokontrollern av frånvaron [1] av flashminne i SoC, användarprogram exekveras från ett externt flashminne med ett SPI -gränssnitt .

Mikrokontrollern väckte uppmärksamhet 2014 på grund av lanseringen av de första produkterna baserade på den till ett ovanligt lågt pris.

Under våren 2016 började produktionen av ESP8285, som kombinerar ESP8266 och 1 MB flashminne. Hösten 2015 introducerade Espressif utvecklingen av linjen - ESP32- chippet och moduler baserade på det [2] .

Mikrokontroller


Mikrokontrollern har inte on-chip användarminne som inte är flyktigt. Programmet exekveras från ett externt SPI-ROM genom att dynamiskt ladda de erforderliga delarna av programmet i instruktionscachen. Inläsningen är hårdvarubaserad, transparent för programmeraren. Upp till 16 MB externt programminne stöds. Standard, Dual eller Quad SPI-gränssnitt tillgängligt.

Tillverkaren tillhandahåller ingen dokumentation för mikrokontrollerns interna kringutrustning. Istället tillhandahåller den en uppsättning bibliotek genom vars API programmeraren får tillgång till kringutrustning. Eftersom dessa bibliotek intensivt använder kontrollerns RAM, anger tillverkaren inte i dokumenten den exakta mängden RAM på chippet, utan bara en grov uppskattning av mängden RAM som kommer att finnas kvar för användaren efter att ha monterat alla biblioteken - cirka 50 kB. Entusiaster som har undersökt ESP8266-biblioteken föreslår att det innehåller 32 KB instruktionscache och 80 KB data-RAM.

Elektriska parametrar, stift, kopplingsscheman finns i dokumenten "0A-ESP8266EX_Datasheet" och "0B-ESP8266__System_Description" från Espressif SDK [4] .

Källan för det körbara programmet ESP8266 ställs in av tillståndet för GPIO0-, GPIO2- och GPIO15-portarna i slutet av återställningssignalen (det vill säga strömmen på). Två lägen är mest intressanta: kodexekvering från UART (GPIO0 = 0, GPIO2 = 1 och GPIO15 = 0) och från extern ROM (GPIO0 = 1, GPIO2 = 1 och GPIO15 = 0). Kodexekveringsläget från UART används för att flasha det anslutna flashminnet, och det andra läget är en vanlig arbetare.

ESP8285

Under våren 2016 lanserade Espressif massproduktionen av ESP8285-chippet. Nu innehåller samma chip både ESP8266 SoC och 1 MB flashminne [5] . Dokumentation för chipet finns i dokumentet "0A-ESP8285__Datasheet".

ESP32

Huvudartikel ESP32

Hösten 2015 introducerade Espressif utvecklingen av linjen - ESP32-chippet. I början av 2016 blev tekniska prover av det nya chippet tillgängliga för företagets partners för testning, i september 2016 blev ESP32 tillgänglig som en fullfjädrad produkt [6] [7] .

Utvecklingsverktyg

Mjukvaruutvecklingsverktyg (programvaruutvecklingskit, SDK) består av:

Espressif distribuerar fritt sitt utvecklarpaket. Detta paket inkluderar GCC-kompilatorn, Espressif-biblioteken och XTCOM-startverktyget. Bibliotek levereras som kompilerade bibliotek, utan källkod. Espressif stöder två versioner av SDK, en baserad på RTOS och en baserad på callbacks [4] .

Utöver det officiella SDK finns det ett antal alternativa SDK-projekt [8] . Dessa SDK:er använder Espressif-biblioteken eller erbjuder sina egna omvända motsvarigheter till Espressif-biblioteken.

Firmware

För att förenkla användningen av mikrokontrollern i typiska projekt är det möjligt att använda färdiga binära filer som är lämpliga för direkt uppladdning till ROM av moduler (den så kallade firmware ). Färdig fast programvara kan delas in i flera grupper enligt konceptet för deras användning:

Bootstrap och Firmware-uppgradering

Källan för det körbara programmet ESP8266 ställs in av tillståndet för GPIO0-, GPIO2- och GPIO15-portarna i slutet av återställningssignalen (det vill säga strömmen på). Två lägen är mest intressanta: kodexekvering från UART (GPIO0 = 0, GPIO2 = 1, GPIO15 = 0) och från extern ROM (GPIO0 = 1, GPIO2 = 1, GPIO15 = 0). Kodexekveringsläget från UART används för att flasha flashminnet, och det andra läget är en vanlig arbetare.

Det finns många verktyg för att hantera firmwareuppdateringsprocessen:

En extern SPI-blixt måste ha en specifik rubrik för korrekt kodexekvering. Rubrikstrukturen anges i dokumentationen för XTCOM-verktyget. På ryska är här . Startverktyg vet vanligtvis hur man lägger till det i firmware.

Uppdatera via Wi-Fi

Det är möjligt att uppdatera den fasta programvaran för en fungerande enhet via Wi-Fi. För att göra detta är flashminnet för program uppdelat i flera delar. En är tilldelad firmware-hanteraren, de andra två är för användarprogrammet. När de vill uppdatera firmwaren laddas den nya bilden in i en ledig del av flashminnet. Efter en noggrann kontroll av integriteten hos den nyligen nedladdade bilden byter firmwarehanteraren flaggan, varefter minnesområdet med den gamla firmwaren frigörs och koden exekveras från det nya området. Följaktligen kommer nästa gång uppdateringen att laddas till ett ledigt minnesområde. Se dokumentet "99C-ESP8266__OTA_Upgrade" från Espressif SDK [4] för detaljer .

Utilities

  • ESPlorer  - IDE för ESP8266. Innehåller editorn och kommunikationsmedel med modulen. Låter dig ladda skript i NodeMCU-projektet.

Nätverksinfrastruktur

En typisk tillämpning av ESP8266 som hårdvarubas för Internet of Things involverar oftast installation i hem eller kontor. I det här fallet görs nätverksanslutningen till ett lokalt hem-/kontorsnätverk med Internetåtkomst via en router . Användaren av enheten kan styra den med en surfplatta eller dator via sitt lokala nätverk eller på distans via Internet.

WiFi

ESP8266 kan fungera som både accesspunkt och slutstation. Under normal LAN-drift är ESP8266 konfigurerad som en slutstation. För att göra detta måste enheten ställa in SSID för Wi-Fi-nätverket och, i slutna nätverk, åtkomstlösenordet. För initial konfiguration av dessa parametrar är åtkomstpunktsläget bekvämt. I åtkomstpunktsläge är enheten synlig under en vanlig nätverkssökning på surfplattor och datorer. Det återstår att ansluta till enheten, öppna HTML-konfigurationssidan och ställa in nätverksparametrarna, varefter enheten normalt kommer att ansluta till det lokala nätverket i slutstationsläget.

Vid rent lokal användning är det möjligt att alltid lämna enheten i åtkomstpunktläge, vilket minskar användarens ansträngning att konfigurera den.

Lokalt nätverk

Efter anslutning till ett Wi-Fi-nätverk bör enheten ta emot IP-parametrarna för det lokala nätverket. Dessa parametrar kan ställas in manuellt tillsammans med Wi-Fi-inställningarna, eller så kan du aktivera alla tjänster för automatisk konfigurering av IP-parametrar (till exempel DHCP ).

Efter att ha konfigurerat IP-parametrarna nås enhetsservern i det lokala nätverket vanligtvis via dess IP-adress, nätverksnamn (om namnen stöds av någon teknik, till exempel NBNS ) eller tjänst (om automatisk tjänstsökning stöds , till exempel , via SSDP- protokollet ).

Internet

Ofta krävs åtkomst till enheten från Internet. Till exempel kan en användare fjärrkontrollera statusen för sitt " smarta hem " från en mobiltelefon genom att komma åt enheten direkt. I det här fallet fungerar enheten i serverläge, som nås av en extern klient.

Som regel är en ESP8266-baserad enhet placerad på det lokala nätverket på ett kontor eller ett hem. Internetåtkomst tillhandahålls av en router ansluten på ena sidan till det lokala nätverket och på den andra - till internetleverantörens nätverk. Leverantören tilldelar sin statiska eller dynamiska IP-adress till routern, och routern översätter de lokala nätverksadresserna till leverantörens nätverk. Som standard ger reglerna för denna översättning fri synlighet av Internetadresser från det lokala nätverket, men tillåter inte åtkomst till lokala adresser från Internet. Det finns flera sätt att komma runt denna begränsning.

Konfigurerar NAT

De flesta moderna routrar låter dig ställa in ytterligare regler för översättning av nätverksadresser mellan lokala och globala nätverk. Som regel används virtuell server eller DMZ -teknik för detta . Båda teknikerna gör att du kan komma åt en server på det lokala nätverket från det globala nätverket, genom att bara känna till den IP-adress som tilldelats routern av leverantören. När det gäller en statisk router-IP-adress kan detta ofta vara en tillfredsställande lösning för en begränsad krets av systemanvändare. Detta tillvägagångssätt är dock inte alltid bekvämt: du måste manuellt konfigurera routern och ta reda på IP-adressen för routern, som kan ändras regelbundet. Det är relativt enkelt att lösa problemet med en okänd IP-adress med hjälp av DDNS- mekanismen .

DDNS

För att komma åt enhetsservern måste slutanvändaren känna till IP-adressen där enheten finns. Det är dock inte alltid möjligt att få en statisk IP-adress för en enhet från en internetleverantör, och det är obekvämt att använda en sådan adress. För att lösa detta problem skapades speciella internettjänster under det allmänna namnet dynamisk DNS . Dessa tjänster fungerar som specialservrar med fasta namn på Internet. Utvecklaren sätter upp sitt eget konto med ett unikt namn på en sådan tjänst. Han föreskriver parametrarna för detta konto i enheten. En enhet i klientläge kontaktar regelbundet tjänsteservern och berättar namnet på sitt konto och dess nuvarande IP-adress. Slutanvändaren på Internet får åtkomst till samma tjänst och får enhetens aktuella IP-parametrar från den. I det här fallet är enheten synlig i nätverket med ett domännamn på tredje nivå, till exempel esp8266.ddns.org.

Det största problemet med DDNS-tjänster är att garantera existensen av en viss tjänst. I allmänhet garanteras endast en kommersiell tjänst när en avgift tas ut för dess användning.

Externa IoT-tjänster

För att lindra problemet med att göra enheten tillgänglig på Internet och för att göra installationen av enheten enkel för användaren har ett antal lösningar tagits fram. Mekanismen för dessa lösningar bygger på att det finns en speciell server på Internet, som både en IoT-enhet och en användares surfplatta/dator kan ansluta till. Samtidigt fungerar enheten i klientläge, inga speciella routerinställningar eller speciella färdigheter krävs av installatören och enhetsanvändaren. Datautbyte med enheten utförs genom denna speciella tjänst, vars parametrar måste anges i enheten av utvecklaren. Spridningen av användningen av sådana tjänster begränsas av behovet av att behålla din tjänst på Internet under lång tid eller använda andras tjänster med oklara utsikter för fortsatt existens av gratisfunktioner eller regelbunden betalning för kommersiella alternativ.

Internet of Things

Huvudapplikationen för ESP8266 är att styra en mängd olika hushållsapparater via trådlösa nätverk. Konceptet med sådan kontroll hänvisas ofta till som " Internet of Things " (IoT, "Internet of Things"). Den översta nivån av IoT representeras av en mängd olika applikationer för populära plattformar (Android, iOS, Windows, ...). Dessa applikationer tillåter instrumentutvecklaren att skräddarsy applikationen för att styra sitt instrument och förse användaren med en komplett lösning. Det finns flera populära implementeringar av IoT-konceptet när det gäller nätverkskommunikation:

  • HTTP-server på ESP8266. Kontroll och hantering av enheten utförs via webbläsaren. Tungviktslösning, lämplig för autonoma automationsenheter.
  • AllJoyn[15]  är det allt populärare öppna IoT-protokollet från den stora alliansen av digitaltekniktillverkarna Allseen. Support är inbyggt i Windows 10 . Du kan läsa den på ryska här .
  • HTTP-förfrågningar med protokoll som REST , XML-RPC ( SOAP ). För att göra detta lanseras en förenklad HTTP-server på ESP8266, utan HTML. Fördelen med metoden är frånvaron av problem med att sätta upp brandväggar, HTTP är oftast alltid öppet.
  • MQTT . Det är ett enkelt protokoll över TCP/IP. En mycket populär lösning. Det finns ett stort antal IoT-applikationer på toppnivå för Android, iOS och andra plattformar som stöder detta protokoll.
  • SNMP . Ett utbyggbart protokoll för hantering av nätverksenheter. Den största nackdelen är att i de flesta nätverk blockerar brandväggar SNMP-traversering.
  • ModBus och andra industriella automationsprotokoll.

Intressanta mjukvaruprojekt på toppnivå med lösningar baserade på ESP8266:

  • Majordomo är ett ryskspråkigt hemautomationsprojekt med öppen källkod [16] .
  • Blynk är en molnbaserad IoT-plattform som har appar för iOS och Android och stöder kontroll av ESP8266, Arduino , Raspberry Pi , SparkFun och fler mikrokontroller. via Internet [17] [18] .
  • SUPLA är ett byggnadsautomationsprojekt med öppen källkod som använder ESP8266 [19] .
  • BortX är en IOT-plattform med öppen källkod för ESP8266 [20] .

Moduler och utvecklingstavlor

De första och mest populära inbäddade modulerna [21] baserade på ESP8266 var produkter från det kinesiska företaget AI-Thinker [22] . Som regel säljs dessa moduler med firmware som stöder AT-kommandon . Däremot har företaget en egen firmware för IoT-applikationen, vissa moduler kan följa med. Tyvärr stöder företaget bara kinesiska, vilket gör det svårt att använda sin IoT-firmware och Android-appar för amatörautomatisering.

Initialt levererades modulerna med 512 kB Flash-minne. Senare växte officiell firmware upp och fick inte längre plats i en halv megabyte. Därför kommer de flesta moduler idag med 4 MB Flash-minne.

AI-Thinker-moduler
namn Tillgängliga portar Stiftdelning, mm Anslutning Indikation Antenn Skärm Mått, mm Anteckningar
ESP-01 6 2,54 2×4 DIL Ja PCB-spår Inte 14,3×24,8 GPIO15 (RTS) kortsluten till gemensam, kan inte konfigureras för utgång eller flödeskontroll.
ESP-02 6 2,54 2×4 castellated Inte U-FL-kontakt Inte 14,2×14,2
ESP-03 tio 2.0 2×7 castellated Inte Keramisk Inte 17,3×12,1
ESP-04 tio 2.0 2×4 castellated Inte Ingen Inte 14,7×12,1
ESP-05 3 2,54 1×5 SIL Inte U-FL-kontakt Inte 14,2×14,2
ESP-06 elva - 4×3 tärningar Inte Ingen Ja 14,2×14,7 Ej FCC-godkänd
ESP-07 fjorton 2.0 2×8 castellated Ja Keramik + U-FL-kontakt Ja 20,0×16,0 Ej FCC-godkänd
ESP-08 tio 2.0 2×7 castellated Inte Ingen Ja 17,0×16,0 Ej FCC-godkänd
ESP-09 tio - 4×3 tärningar Inte Ingen Inte 10,0 × 10,0
ESP-10 3 2,54 1×5 castellated Inte Ingen Inte 14,2×10,0
ESP-11 6 1,27 1×8 castellated Inte Keramisk Inte 17,3×12,1
ESP-12 fjorton 2.0 2×8 castellated Ja PCB-spår Ja 24,0×16,0 FCC och CE godkända [23]
ESP-12-E tjugo 2.0 2×8 castellated Ja PCB-spår Ja 24,0×16,0
ESP-12-F tjugo 2.0 2×8 castellated Ja PCB-spår Ja 24,0×16,0 FCC och CE godkända. Förbättrad antennprestanda. 4MB Flash
ESP-13 16 0,8 2×9 castellated Inte PCB-spår Ja B18,0 x L20,0 Markerad som ″FCC″. Den skärmade modulen är placerad i sidled, jämfört med ESP-12-modulerna.

I tabellen betecknar SIL och DIL monterade stiftlister. Castellated - metallisering längs kanten av brädet för ytmontering av modulen. Tärningar - kuddar under modulen, montering i stil med BGA-fodral.

Moduler från andra tillverkare
namn Tillgängliga portar Stiftdelning, mm Anslutning Indikation Antenn Skärm Mått, mm Anteckningar
Olimex MOD-WIFI-ESP8266 [24] 2 2,54 UEXT-modul Ja PCB-spår Inte okänd
Olimex MOD-WIFI-ESP8266-DEV [25] tjugo 2,54 2×11 DIL + castellated Ja PCB-spår Inte okänd
Espressif Espressif WROOM-02 [26] arton 2,54 2×9 DIL Inte PCB-spår Ja 18×29 FCC-godkänd
SparkFun ESP8266 Thing [27] WRL-13231 12 2,54 2×10 DIL Ja PCB-spår + U.FL- sockel Inte 58x26 USB Li-ion batteriladdare
In-Circuit ESP-ADC [28] arton 2,54 2x9 DIL Inte U.FL-uttag Inte 22,9 x 14,9 ESP8266EX

Liknande lösningar

Nästan samtidigt med ESP8266 dök en hel rad liknande lösningar från andra tillverkare upp. De använder alla en dubbelchipsarkitektur med programminne i SPI Flash.

  • Kinesiska företaget Nufrontbemästrade produktionen av NL6621 mikrokontroller [29] [30] . Huvudskillnaderna är Cortex-M3-processorn, 448kB data och cache-RAM, fler I/O-portar, RF-vägen kräver fler externa komponenter. Fodral QFN64. En SDK tillhandahålls baserad på Keil-kompilatorn, stängda WiFi-bibliotek och öppen RTOS uC/OS och TCP/IP - stack LwIP [31] . Verktyg och bibliotek kan hämtas från det officiella arkivet . Det finns ett ryskspråkigt forum .
  • Taiwanesiska MediaTek :
    • MT7681 [32] . QFN40-väskan kräver en relativt stor mängd passivt rör.
    • MT7687 [33] . Huvudprocessor Cortex M4 @ 192 MHz, 256 kB RAM + 96 kB cache. En separat processor betjänar kringutrustning för WiFi.
  • Texas Instruments CC3200. Core Cortex-M4 @ 80 MHz. Fodral QFN64. RAM 256kB [34] .
  • Under 2016 introducerade Realtek också sin linje med liknande lösningar: RTL8195 [35] , RTL8711, RTL8710 [36] . Företaget kompenserade för förseningen med att komma in på marknaden med mycket låga priser med en rik uppsättning resurser på kristaller. Det finns engelska och ryska  (otillgängliga länkar) forum.
  • Andra lösningar: AI6060H [37] .

Roliga fakta

Entusiaster skapade en tv-sändare med en modulator för den tredje tv-kanalen på I2S-gränssnittet på ESP8266-chipet . Detta krävde ingen ytterligare hårdvaruledning förutom sändningsantennen. Samtidigt är Wi-Fi-funktionaliteten helt bevarad.

Se även

  • Arduino
  • OpenWrt  är en kompakt inbäddningsbar Linux-port för WiFi-produkter.
  • NodeMCU — IoT-projekt med öppen källkod baserat på ESP8266.
  • MCU med inbyggd WiFi

Anteckningar

  1. Arkiverad kopia . Hämtad 28 augusti 2018. Arkiverad från originalet 29 augusti 2018.
  2. ESP32 . Hämtad 15 februari 2016. Arkiverad från originalet 24 februari 2018.
  3. Espressif Systems. ESP8266 Low Power Solutions (inte tillgänglig länk) . Espressif (1 augusti 2016). Tillträdesdatum: 19 januari 2018. Arkiverad från originalet den 9 december 2017. 
  4. 1 2 3 4 5 Espressif Systems. Officiell SDK-release från Espressif för ESP8266 . Espressif (29 juli 2015). Hämtad 8 augusti 2015. Arkiverad från originalet 8 december 2015.
  5. Espressif tillkännager ESP8285 Wi-Fi-chip för bärbara enheter (nedlänk) . Hämtad 25 januari 2021. Arkiverad från originalet 25 juli 2016. 
  6. Espressif ESP32 . Hämtad 26 september 2016. Arkiverad från originalet 16 september 2016.
  7. ESP32 översikt - Espressif . Datum för åtkomst: 29 juli 2016. Arkiverad från originalet 29 juli 2016.
  8. Tredjepartsplattformar som stöder Espressif-  hårdvara . www.espressif.com. Hämtad 5 april 2018. Arkiverad från originalet 6 april 2018.
  9. Sming . Hämtad 2 mars 2016. Arkiverad från originalet 10 juni 2016.
  10. NodeMCU (nedlänk) . Datum för åtkomst: 15 februari 2016. Arkiverad från originalet 17 februari 2016. 
  11. ESP Lätt . Hämtad 11 mars 2016. Arkiverad från originalet 14 mars 2016.
  12. BOLT IoT . Hämtad 20 maj 2016. Arkiverad från originalet 17 mars 2016.
  13. HTTP-server . Tillträdesdatum: 15 februari 2016. Arkiverad från originalet 19 januari 2016.
  14. TCP2UART . Tillträdesdatum: 15 februari 2016. Arkiverad från originalet 16 april 2016.
  15. AllSeen Alliance (nedlänk) . Hämtad 2 mars 2016. Arkiverad från originalet 10 december 2013. 
  16. majordomo . Hämtad 15 februari 2016. Arkiverad från originalet 10 februari 2016.
  17. Blynk-projektets webbplats . Hämtad 9 februari 2016. Arkiverad från originalet 4 februari 2016.
  18. ESP8266 och Blynk . Tillträdesdatum: 9 februari 2016. Arkiverad från originalet 19 januari 2016.
  19. SUPLA-projektets webbplats . Hämtad 11 februari 2016. Arkiverad från originalet 11 februari 2016.
  20. IOT-plattform, öppen källkod med firmware . bortx.ru . Hämtad 25 januari 2021. Arkiverad från originalet 24 november 2020.
  21. ESP8266 modulfamilj . esp8266.com wiki. Hämtad 24 juni 2015. Arkiverad från originalet 24 juni 2015.
  22. AI-Thinkers webbplats (inte tillgänglig länk) . Hämtad 9 februari 2016. Arkiverad från originalet 3 februari 2016. 
  23. 2ADUIESP-12 av Shenzhen Anxinke technology co., LTD för WIFI-modul . FCC (30 december 2014). Hämtad 24 juni 2015. Arkiverad från originalet 25 juni 2015.
  24. MOD-WIFI-ESP8266 . Olimex. Hämtad 25 juni 2015. Arkiverad från originalet 24 juni 2015.
  25. MOD-WIFI-ESP8266-DEV . Olimex. Hämtad 25 juni 2015. Arkiverad från originalet 24 juni 2015.
  26. Espressif WROOM-02 (nedlänk) . Espressif . Hämtad 29 juli 2015. Arkiverad från originalet 24 juli 2015. 
  27. SparkFun ESP8266 Thing . SparkFun . Hämtad 27 juni 2015. Arkiverad från originalet 27 juni 2015.
  28. ESP-ADC DIL18 utvecklingskort . In-Circuit Wiki . Datum för åtkomst: 3 februari 2016. Arkiverad från originalet 4 februari 2016.
  29. Nufront NL6621 . Hämtad 11 februari 2016. Arkiverad från originalet 11 mars 2016.
  30. NL6621 (inte tillgänglig länk) . Hämtad 11 februari 2016. Arkiverad från originalet 16 februari 2016. 
  31. NL6621M Uart Serial & SPI till WiFi-modul för Arduino . Datum för åtkomst: 13 februari 2016. Arkiverad från originalet 14 april 2016.
  32. MT7681 . Hämtad 11 februari 2016. Arkiverad från originalet 14 februari 2016.
  33. MT7687 . Hämtad 24 augusti 2016. Arkiverad från originalet 26 augusti 2016.
  34. CC3200 . Hämtad 11 februari 2016. Arkiverad från originalet 13 februari 2016.
  35. $25 Ameba Arduino IoT-kort Drivs av Realtek RTL8195AM MCU Stöder WiFi och NFC . Hämtad 29 juli 2016. Arkiverad från originalet 2 augusti 2016.
  36. Realtek RTL8710 ARM Cortex-M3 WiFi IoT-moduler säljs för $2 . Hämtad 29 juli 2016. Arkiverad från originalet 30 juli 2016.
  37. Några dokument om Ai6060H . Hämtad 29 juli 2016. Arkiverad från originalet 19 augusti 2016.

Litteratur

  • Schwartz M. Internet of Things med ESP8266. — Packt Publishing, 2016. — ISBN 9781786468024 .

Länkar