Inhoudsopgave:
- Stap 1: Dingen die in dit project worden gebruikt
- Stap 2: Verhaal
- Stap 3: Voorbereiding
- Stap 4: Configuratie
- Stap 5: Installeren
- Stap 6: Programmeren
- Stap 7: Testen
- Stap 8: Volgende stap
- Stap 9: Schema's
- Stap 10: Coderen
Video: Virtuele deurknop met Mongoose OS en XinaBox - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:17
Met Mongoose en wat xChips hebben we een virtuele deurknop gemaakt. In plaats van een fysieke knop om personeel in te zoemen, kunnen ze het nu zelf doen.
Stap 1: Dingen die in dit project worden gebruikt
Hardware onderdelen
- XinaBox CW02 x 1 Je zou in plaats daarvan de CW01 kunnen gebruiken
- XinaBox IP01 x 1
- XinaBox PU01 x 1 U kunt de IP01 gewoon gebruiken voor stroom, als u niet van plan bent meer modules te programmeren.
- XinaBox OC03 x 1
- XinaBox XC10 x 1 De "lijm" die het allemaal laat werken!
Software-apps en online services
Mongoose OS Echt een geweldige en gemakkelijke IoT-ontwikkeltool … en gratis
Stap 2: Verhaal
Bij onze receptie moest ons personeel worden ingezoemd, dus besloten we om ons eigen medicijn te nemen en een virtuele knop te maken. Met deze code kun je een RPC (Remote Procedure Call) verzenden, die eruitziet als een normale HTTP-oproep vanuit elke browser. We gebruikten Mongoose, omdat het heel gemakkelijk en snel is om mee te werken en het is een ingebouwde OTA (Over The Air)-update van de code, wat betekent dat we onze technologie konden installeren en toch na verloop van tijd de firmware konden upgraden, zonder deze te demonteren voor herprogrammering.
Stap 3: Voorbereiding
- Installeer Mongoose-OS: rechttoe rechtaan, volg gewoon deze zeer eenvoudige stappen voor uw besturingssysteem hier:
- Klik de IP01 en de CW02 aan elkaar met behulp van een XC10 connector. Zie afbeelding hieronder:
- Steek de IP01 in uw USB-poort
- Zorg ervoor dat de IP01-schakelaars in positie B en DCE staan.
- Flash de Mongoose-OS naar CW02 vanaf je opdrachtregel. Zoals dit:
CD
export MOS_PORT= bin/mos flash esp32
Je kunt ook gewoon naar de console gaan en het meeste vanaf daar doen, maar hier doen we het vanaf de opdrachtregel, dus het werk is snel gedaan. Om naar de console te gaan:
CD
bin/mos
Stap 4: Configuratie
Hoewel deze stappen in één lange verklaring kunnen worden gedaan, hebben we besloten ze op te splitsen, en aangezien je ze toch zou kopiëren en plakken, laten we het gemakkelijk maken:
Stel de I2C-pinnen in op de xChips-standaard:
bin/mos configuratieset i2c.scl_gpio=14 i2c.sda_gpio=2
Verbind je CW02 met je wifi:
bin/mos wifi
Ontkoppel wifi in AP-modus en stel een domeinnaam in, zodat je op hostnaam verbinding kunt maken met de CW01 in plaats van het juiste IP-adres te zoeken. Dit werkt alleen als:
- Je ontkoppelt wifi in AP-modus zoals we hieronder doen.
- Gebruik een Mac of installeer Bonjour op uw Windows-computer.
bin/mos roept Config. Set '{"config": {"wifi": {"ap": {"enable": false}}}}' aan
bin/mos roept Config. Set '{"config": {"dns_sd": {"enable": true}}}' bin/mos roept Config. Set '{"config": {"dns_sd": {"host- naam": "xinabox_switch"}}}
En tot slot moet je de CW02 opnieuw opstarten om de configuratie te laten werken
bin/mos roept Config. Save '{"reboot": true}' aan
Heel snel hierna zou je xinabox_switch.local moeten kunnen pingen
Stap 5: Installeren
Koppel de IP01 los van uw computer en monteer een circuit volgens de bovenste afbeelding.
Sluit de PU01 (of als je besloten hebt om bij de IP01 te blijven) aan op een USB-stroombron. Verbind de draden parallel van je bestaande schakelaar (laat dat, voor het geval dat) met de OC03 (polariteit maakt niet uit). Zie Fritzing-tekening.
Eenmaal ingeschakeld en om te zien dat u daadwerkelijk met uw xCW02 praat, hoe zit het met het scannen van de BUS, ook wel de I2C-bus genoemd:
bin/mos --port ws://xinabox_switch.local/rpc bel I2C. Scan
Als het allemaal werkt en je xOC03 correct is geïnstalleerd, zou je een nummer '56' moeten zien worden geretourneerd. Dat is het I2C-adres van de OC03 in decimaal (in hex is het 0x38).
Stap 6: Programmeren
- Open nu de Mongoose in console-modus, zie hierboven. Het zou moeten openen met een venster waarin het om een poortnummer vraagt, voer in: ws://xinabox_switch.local/rpc
- Het communiceert met de CW02 en realiseert zich dat het apparaat al is geflitst en is verbonden met wifi, dus het geeft slechts 3 vinkjes. Sluit het venster en vernieuw de bestandslijst
- Kopieer en plak de onderstaande code in init.js en klik op opslaan+opnieuw opstarten
- Je circuit is nu geprogrammeerd.
Stap 7: Testen
U heeft nu een andere RPC-oproep geïmplementeerd, dus vanaf uw terminal kunt u het volgende invoeren:
bin/mos --port ws://xinabox_switch.local/rpc call Switch
… en je zoemer moet 2 sec. Je zou het ook gewoon vanuit - bijna - elke browser kunnen doen:
xinabox_switch.local/rpc/Switch
… met hetzelfde effect.
Stap 8: Volgende stap
U kunt elke tool gebruiken die een URL kan activeren. Ik doe het vanuit een Apple-app genaamd Workflow, waarmee ik het vanaf mijn telefoon kan doen of als een complicatie vanaf mijn Apple Watch, maar er zijn veel andere opties. Hier is mijn Workflow-script, maar met een hardgecodeerd IP-adres: Veel plezier!
Apple App: Workflow - hier met hardgecodeerd IP-adres
Stap 9: Schema's
Zoemerschakeling Installeer de OC03 parallel aan de bestaande drukknop.
Download het hier.
OC03 Circuit Installeer de OC03 parallel aan de bestaande drukknop.
Download het hier.
Stap 10: Coderen
init.js JavaScript Uw belangrijkste en enige code voor dit project.
laden('api_config.js');
laden('api_gpio.js'); laden('api_i2c.js'); laden('api_net.js'); laden('api_sys.js'); laden('api_timer.js'); laden ("api_rpc.js"); laat led = Cfg.get('pins.led'); laat adr = 0x38; laat bus = I2C.get(); I2C.writeRegB(bus, adr, 3, 0); I2C.writeRegB(bus, adr, 1, 0); /* zet voor de zekerheid uit */ let delay = 2000; GPIO.set_mode (led, GPIO. MODE_OUTPUT); RPC.addHandler('Switch', function(args) {GPIO.toggle(led); I2C.writeRegB(bus, adr, 3, 0); /* in het geval dat de OC03 opnieuw wordt aangesloten */ I2C.writeRegB(bus, adr, 1, 1); Timer.set(vertraging, false, function() {GPIO.toggle(led); I2C.writeRegB(bus, adr, 1, 0); }, null); return true; });
Aanbevolen:
Virtuele aanwezigheidsrobot: 15 stappen
Virtual Presence Robot: Deze mobiele robot interageert met zijn fysieke omgeving door de "virtuele aanwezigheid" weer te geven. van de persoon die het op afstand bestuurt. Het is voor iedereen, waar ook ter wereld, toegankelijk om lekkernijen uit te delen en met je te spelen. Het werk dat hij
Virtuele manometer deel 1.: 4 stappen
Virtuele manometer deel 1.: Manometers worden gebruikt in industrieën zoals olievelden. Ik heb tijdens mijn dagelijkse werk vaak manometers gebruikt, vooral bij hydraulische machines. En ik vroeg me af hoe ik een virtuele manometer kan maken. Dit project is een 2-par
IoT Basics: uw IoT verbinden met de cloud met behulp van Mongoose OS: 5 stappen
IoT Basics: uw IoT verbinden met de cloud met behulp van Mongoose OS: als u een persoon bent die van knutselen en elektronica houdt, komt u vaker wel dan niet de term Internet of Things tegen, meestal afgekort als IoT, en dat het verwijst naar een reeks apparaten die verbinding kunnen maken met internet! Zo iemand zijn
RGB-temperatuurindicator (met XinaBox): 5 stappen (met afbeeldingen)
RGB-temperatuurindicator (met XinaBox): dit is officieel mijn eerste Instructables-artikel, dus ik ga toegeven dat ik deze gelegenheid nu gebruik om het uit te proberen. Krijg een idee van hoe het platform werkt, de hele gebruikerservaring ervan. Maar terwijl ik dat deed, dacht ik dat ik
EKitty: uw virtuele kat: 11 stappen (met afbeeldingen)
EKitty: Your Virtual Cat: eKitty is een kattenkussen met een LCD-fotolijst ingebouwd in de kop. Het LCD-scherm doorloopt zes verschillende gezichten met intervallen van 15 seconden. We hebben eKitty oorspronkelijk gebouwd om de reactie van mensen te zien wanneer ze een eenvoudig schattig speeltje met veranderende emotio