tag:blogger.com,1999:blog-1850646070241058032024-03-13T17:56:27.317+01:00Olav Alexander MjeldeOlav Alexander Mjeldehttp://www.blogger.com/profile/03340652303841762228noreply@blogger.comBlogger77125tag:blogger.com,1999:blog-185064607024105803.post-62464950492079055842020-05-08T22:50:00.000+02:002020-05-08T22:50:09.095+02:00Fixing corrupt SQLITE database in home-assistant<span style="background-color: #eeeeee; font-family: "courier"; font-size: 12px;"><br /><br />sudo apt-get install sqlite3</span><br />
<span style="background-color: #eeeeee; font-family: "courier"; font-size: 12px;"><br /></span>
<span style="background-color: #eeeeee; font-family: "courier"; font-size: 12px;">Enter config dir of home-assistant</span><br />
<span style="background-color: #eeeeee; font-family: "courier"; font-size: 12px;"></span><br />
<span style="font-family: "courier";"><span style="font-size: 12px;">cd/home/homeassistant/.homeassistant</span></span><br />
<span style="font-family: "courier";"><span style="font-size: 12px;"> sudo systemctl stop home-assistant@homeassistant.service</span></span><br />
<div>
<br /></div>
<div>
<br /></div>
<span style="font-family: "courier";"><span style="font-size: 12px;">sqlite3 home-assistant_v2.db</span></span><br />
<span style="font-family: "courier";"><span style="font-size: 12px;"><br /></span></span>
<br />
<div>
<br /></div>
Olav Alexander Mjeldehttp://www.blogger.com/profile/03340652303841762228noreply@blogger.com0tag:blogger.com,1999:blog-185064607024105803.post-68887910953524840332020-05-08T22:48:00.000+02:002020-05-08T22:48:02.871+02:00Windows 10 / Cortana search not workingMany people are having issues with Windows 10 search not working.<br />After having tried "everything", I found an sollution.<br /><br />So I will start with what worked for me:<br />
<div>
<div>
<h3>
Scanning for messed up stuff pt. 1 </h3>
</div>
<div>
<span style="background-color: white; font-family: "segoe ui" , "segoeui" , "helvetica neue" , "helvetica" , "arial" , sans-serif; font-size: 15px;">1. Press </span><span style="background-color: white; border: 0px; box-sizing: inherit; font-family: "segoe ui" , "segoeui" , "helvetica neue" , "helvetica" , "arial" , sans-serif; font-size: 15px; font-weight: 600; margin: 0px; padding: 0px; vertical-align: top;">Windows </span><span style="background-color: white; font-family: "segoe ui" , "segoeui" , "helvetica neue" , "helvetica" , "arial" , sans-serif; font-size: 15px;">+ </span><span style="background-color: white; border: 0px; box-sizing: inherit; font-family: "segoe ui" , "segoeui" , "helvetica neue" , "helvetica" , "arial" , sans-serif; font-size: 15px; font-weight: 600; margin: 0px; padding: 0px; vertical-align: top;">X </span><span style="background-color: white; font-family: "segoe ui" , "segoeui" , "helvetica neue" , "helvetica" , "arial" , sans-serif; font-size: 15px;">from desktop.</span><br />
<span style="background-color: white; font-family: "segoe ui" , "segoeui" , "helvetica neue" , "helvetica" , "arial" , sans-serif; font-size: 15px;">2. Then click on Windows Powershell (Admin)</span><br />
<span style="background-color: white; font-family: "segoe ui" , "segoeui" , "helvetica neue" , "helvetica" , "arial" , sans-serif; font-size: 15px;">3. Then type in</span><span style="background-color: white; border: 0px; box-sizing: inherit; font-family: "segoe ui" , "segoeui" , "helvetica neue" , "helvetica" , "arial" , sans-serif; font-size: 15px; font-weight: 600; margin: 0px; padding: 0px; vertical-align: top;"> sfc /scannow </span><span style="background-color: white; font-family: "segoe ui" , "segoeui" , "helvetica neue" , "helvetica" , "arial" , sans-serif; font-size: 15px;">and press Enter<br /><br />Wait...</span><br />
<span style="background-color: white; font-family: "segoe ui" , "segoeui" , "helvetica neue" , "helvetica" , "arial" , sans-serif; font-size: 15px;">If it works, you're done! If not, continue below!</span><br />
<span style="background-color: white; font-family: "segoe ui" , "segoeui" , "helvetica neue" , "helvetica" , "arial" , sans-serif; font-size: 15px;"><br /></span>
<h3>
<span style="background-color: white; font-family: "segoe ui" , "segoeui" , "helvetica neue" , "helvetica" , "arial" , sans-serif; font-size: 15px;">Index rebuild</span></h3>
<br />
<span style="background-color: white; font-family: "segoe ui" , "segoeui" , "helvetica neue" , "helvetica" , "arial" , sans-serif; font-size: 15px;">1) Run file explorer<br />2) click adress bar of file explorer, type in control p, click on "control panel"</span><br />
<span style="background-color: white; font-family: "segoe ui" , "segoeui" , "helvetica neue" , "helvetica" , "arial" , sans-serif; font-size: 15px;">3) choose view as large icons</span><br />
<span style="background-color: white; font-family: "segoe ui" , "segoeui" , "helvetica neue" , "helvetica" , "arial" , sans-serif; font-size: 15px;">4) choose indexing options</span><br />
<span style="background-color: white; font-family: "segoe ui" , "segoeui" , "helvetica neue" , "helvetica" , "arial" , sans-serif; font-size: 15px;">5) choose advanced</span><br />
<span style="background-color: white; font-family: "segoe ui" , "segoeui" , "helvetica neue" , "helvetica" , "arial" , sans-serif; font-size: 15px;">6) choose rebuild</span><br />
<span style="background-color: white; font-family: "segoe ui" , "segoeui" , "helvetica neue" , "helvetica" , "arial" , sans-serif; font-size: 15px;"><br /></span>
<span style="background-color: white; font-family: "segoe ui" , "segoeui" , "helvetica neue" , "helvetica" , "arial" , sans-serif; font-size: 15px;">If this also doesent work, in the same indexing options window you have a "Troubleshoot search and indexing", choose what your problem is, say yes to run as administrator and choose problem again.<br /><br />If still it doesent work, continue reading...</span><br />
<span style="background-color: white; font-family: "segoe ui" , "segoeui" , "helvetica neue" , "helvetica" , "arial" , sans-serif; font-size: 15px;"><br /></span>
<h3>
<span style="background-color: white; font-family: "segoe ui" , "segoeui" , "helvetica neue" , "helvetica" , "arial" , sans-serif; font-size: 15px;">Regedit</span></h3>
<span style="background-color: white; font-family: "segoe ui" , "segoeui" , "helvetica neue" , "helvetica" , "arial" , sans-serif; font-size: 15px;">1. inside the powershell admin you started earlier, type regedit</span><br />
<span style="background-color: white; font-family: "segoe ui" , "segoeui" , "helvetica neue" , "helvetica" , "arial" , sans-serif; font-size: 15px;">2. go to Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run</span><br />
<span style="background-color: white; font-family: "segoe ui" , "segoeui" , "helvetica neue" , "helvetica" , "arial" , sans-serif; font-size: 15px;">3. add new String with value C:\Windows\System32\ctfmon.exe</span><br />
<span style="background-color: white; font-family: "segoe ui" , "segoeui" , "helvetica neue" , "helvetica" , "arial" , sans-serif; font-size: 15px;">4. go to Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Search</span><br />
<span style="font-family: segoe ui, segoeui, helvetica neue, helvetica, arial, sans-serif;"><span style="background-color: white; font-size: 15px;">5. add if missing REG_DWORD </span><span style="font-size: 15px;">BingSearchEnabled, set value to 1</span></span><br />
<span style="font-family: segoe ui, segoeui, helvetica neue, helvetica, arial, sans-serif;"><span style="font-size: 15px;">6. add if missing REG_DWORD CortanaConsent, set value to 1</span></span><br />
<span style="font-family: segoe ui, segoeui, helvetica neue, helvetica, arial, sans-serif;"><span style="font-size: 15px;"><br /></span></span>
<h3>
<span style="font-family: segoe ui, segoeui, helvetica neue, helvetica, arial, sans-serif;"><span style="font-size: 15px;">If everything is still broken, try scanning for messed up stuff pt. 2</span></span></h3>
<span style="-webkit-font-smoothing: antialiased; background-color: white; border: 0px; box-sizing: inherit; font-family: "Segoe UI", SegoeUI, "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 15px; margin: 0px; padding: 0px; text-size-adjust: none; vertical-align: top;">1. Go back to the powershell admin started earlier</span><br />
<span style="-webkit-font-smoothing: antialiased; background-color: white; border: 0px; box-sizing: inherit; font-family: "Segoe UI", SegoeUI, "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 15px; margin: 0px; padding: 0px; text-size-adjust: none; vertical-align: top;">2. DISM.exe /Online /Cleanup-image /Scanhealth</span><br style="background-color: white; box-sizing: inherit; font-family: "Segoe UI", SegoeUI, "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 15px;" /><span style="-webkit-font-smoothing: antialiased; background-color: white; border: 0px; box-sizing: inherit; font-family: "Segoe UI", SegoeUI, "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 15px; margin: 0px; padding: 0px; text-size-adjust: none; vertical-align: top;">3. DISM.exe /Online /Cleanup-image /Restorehealth</span></div>
</div>
Olav Alexander Mjeldehttp://www.blogger.com/profile/03340652303841762228noreply@blogger.com0tag:blogger.com,1999:blog-185064607024105803.post-82841809875355231382019-11-25T23:19:00.001+01:002019-11-25T23:19:48.930+01:00What's the fastest core on AMD Ryzen?Stubmled across an important tip about figuring out what is the fastest cores in your AMD Ryzen computer, this is important if you wish to do single core overclocking for improving performance in applications that wont utilize a lot of cores.<br />
<br />For instance you can boost all cores to 4,3 Ghz and two to 4,5 Ghz.<br /><br />Read more about it here:<br /><a href="https://www.reddit.com/r/Amd/comments/dzjs7i/fastest_cores_is_windows_right_or_ryzen_master/">https://www.reddit.com/r/Amd/comments/dzjs7i/fastest_cores_is_windows_right_or_ryzen_master/</a>Olav Alexander Mjeldehttp://www.blogger.com/profile/03340652303841762228noreply@blogger.com0tag:blogger.com,1999:blog-185064607024105803.post-65724102983988760782018-11-23T00:09:00.002+01:002018-11-23T00:09:40.223+01:00Huawei Mate 20X - den beste phableten?Huawei Mate 20X er kanskje den beste phableten man kan kjøpe i dag, dessverre er den ikke til salgs gjennom offisielle kanaler i Europa. Telefonen deler DNA med Huawei Mate 20 Pro, men det er et par vesentlige forskjeller.<br />
<br />
Mate 20 X har en gignatisk 7.2" OLED-skjerm, den støtter aktiv penn og leveres med hele 5000 mAh batteri. Telefonen har mindre "busslomme" og generelt sett mindre rammer rundt skjermen. Telefonen er ikke minst større enn naboens største iPhone og det til halve prisen!<br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiA_p7T_9uB_dWT5Z9kQsOSr4VVO146RMS9QabbY6N4td-FVbNZFYNP9z2JyT-BP3WPmwMVPralqa-5-Iw-bP4l2XCt1zEEcUJGQazj8bJm-9wNEB5EDd6pli4GTyHQFKTGGYoMPw4rJ9M/s1600/IMG_20181121_065354.jpg" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" data-original-height="1600" data-original-width="1200" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiA_p7T_9uB_dWT5Z9kQsOSr4VVO146RMS9QabbY6N4td-FVbNZFYNP9z2JyT-BP3WPmwMVPralqa-5-Iw-bP4l2XCt1zEEcUJGQazj8bJm-9wNEB5EDd6pli4GTyHQFKTGGYoMPw4rJ9M/s200/IMG_20181121_065354.jpg" width="150" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Mørkeste natten<br />Tatt med mate 20x</td></tr>
</tbody></table>
<br />
Hvis du er en av de som savner er sted å plugge inn ditt gamle headsett, blir du henrykt ovre å vite at 3.5mm hodetelefonkontakt er på plass<br />
<br />
Nå vil det være en del ting du går glipp av med Mate 20 X, som du kan få med Mate 20 Pro, blant annet trådløs lading, 3D ansikts-skanner, fingeravtrykkskanner er på Mate 20 X også bygd inn i kroppen hvor den på Mate 20 Pro er usynlig innebygd i skjermen.<br />
<br />
<div>
<div>
Likhetstrekk mellom Huawei Mate 20 Pro og Huawei Mate 20 X kan summeres opp slik:<br />
<ul>
<li>Trippel kamera opplegg med Leica linser.</li>
<li>Samme estetikk/look and feel</li>
<li>Dual sim eller enkel sim + minnekortstøtte</li>
<li>Bygger på Huawei sin fantastiske 980 prosessor</li>
<li>Værbestandige, men 20 Pro har litt bedre rating</li>
<li>Begge støtter også offisiell gamepad-addon</li>
</ul>
<div>
Hvordan får man tak i en Mate 20 X?</div>
</div>
</div>
<div>
Telefonen må importeres gjennom tredjeparts kanaler og koster i dag fra 6000kr i Kina ved egenimport. I tillegg tilløper det alt fra 0 til 300 kroner i frakt, samt moms og evnetuelt tollgebyr. Totalpris for 6 Gb RAM/128 Gb lagring blir derfor rundt 7000 kr, dette er ca 3000 kr lavere enn Mate 20 Pro med 128 Gb lagring.<br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxZaITaSBNZSWgzkzpNphHB5MkbbZ40zk0qOFs-VqFWkukuG6UEHFFvN7ANsmNyiVp1DmfFWvZu96dnDpc0lvjz1IqIcNsn77Wvi8gs4EkIi8VXBUvEbumj5_-HDfCKXTeB3vt86x8gg0/s1600/IMG_20181119_163620.jpg" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" data-original-height="1600" data-original-width="1200" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxZaITaSBNZSWgzkzpNphHB5MkbbZ40zk0qOFs-VqFWkukuG6UEHFFvN7ANsmNyiVp1DmfFWvZu96dnDpc0lvjz1IqIcNsn77Wvi8gs4EkIi8VXBUvEbumj5_-HDfCKXTeB3vt86x8gg0/s320/IMG_20181119_163620.jpg" width="240" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Solnedgang</td></tr>
</tbody></table>
</div>
<div>
<br /></div>
<div>
Inntrykk ved bruk</div>
<div>
Telefonen er lynkjapp, som kan forventes av Kirin 980 prosessoren. Det er få apper installert ved leveranse, ikke en gang Google play store var lagt inn (mer om det nedenfor). På generelt basis kan man si at dette er et røverkjøp, hvis man ser på pris/ytelse, men man kommer ikke rundt at en phablet er for spesielt interesserte.</div>
<div>
<br /></div>
<div>
Ta telefonen i bruk</div>
<div>
For å ta telefonen i bruk trenger man strengt tatt å først sette inn nano-sim og starte den opp, Google srevices ligger på telefonen men ikke play store. Den enkleste måten å få denne inn på telefonen er å ta en annen Android telefon av nyere dato, gjerne med Android 8 eller Android 9, installer APK Extractor appen på den. Fra den gamle telefonen tar man så å kobler seg sammen med Mate 20 X via Blåtann, deretter tar man å starter APK Extractor fra den gamle telefonen.<br />
<br />
Følgende app bør man sende via blåtann fra APK Extractor:<br />
<ul>
<li>Google Play Store</li>
<li>Sykronisering av Google Kontakter</li>
<li>Synkronisering av Google Kalender</li>
</ul>
<div>
Når de tre appene er overført og "klikket på" på Mate 20X, må de installeres og gis tilgangene de ber om. Dette er da synkroniseringstjenestene man vanligvis har på en Android telefon man kjøper i butikken. Deretter supplerer man gjerne ved å laste ned apper gjennom Play Store:</div>
</div>
<div>
<ul>
<li>Google Kalender</li>
<li>Google Gmail</li>
<li>Google Kontakter</li>
<li>Google Maps</li>
<li>Google Disk</li>
<li>Google Home</li>
<li>Google keyboard (GBoard)</li>
<li>Google Autentisering</li>
<li>Google Photos</li>
<li>Google Finn din enhet</li>
<li>Google Hangouts (hvis man er dypt i Google universet)</li>
</ul>
</div>
<div>
<br />
Hvis man ønsker jobbprofil (BYOD), er dette løst ved å laste ned Google Device Policy.</div>
<div>
<br /></div>
Olav Alexander Mjeldehttp://www.blogger.com/profile/03340652303841762228noreply@blogger.com0tag:blogger.com,1999:blog-185064607024105803.post-69466413854263855612017-06-01T00:21:00.000+02:002017-06-01T00:31:25.382+02:00Sonoff wifi switches for home-assistantToday I loaded the sonoff switch <a href="https://github.com/arendst/Sonoff-Tasmota/wiki/Home-Assistant" target="_blank">Sonoff Tasmota</a>.<br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQZFQbwNMXAJMC_WM9Thc9X0kcQBLl2MmdDeqoAkHksO9OQRxYMFkteXvXEGrIqqaM9TTVfj5X9tfEeSt02B8nwFGzsCkMZ2YBdrAiyCAtmRoXiV806tmEXyxj9jDgZzbfiGnsstl_v3s/s1600/20170531_172959.jpg" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" data-original-height="1600" data-original-width="1200" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQZFQbwNMXAJMC_WM9Thc9X0kcQBLl2MmdDeqoAkHksO9OQRxYMFkteXvXEGrIqqaM9TTVfj5X9tfEeSt02B8nwFGzsCkMZ2YBdrAiyCAtmRoXiV806tmEXyxj9jDgZzbfiGnsstl_v3s/s320/20170531_172959.jpg" width="240" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Programming the<br />
Sonoff with custom<br />
Mqtt firmware.</td></tr>
</tbody></table>
Sonoff is based off esp8266 with Wi-Fi capabilities.<br />
<br />
My home-assistant journey has now included motion sensors, rgb led lights, temperature and humidity sensing. I have control of my webos tv, sonos speakers, my router, also Ikea Trådfri lighting.<br />
<br />
The sonoff switches I did not program in Arduino IDE, I used the Atom based <a href="https://atom.io/packages/platomformio" target="_blank">platformio</a>.<br />
<br />
Whats quite cool is that you have one gpio availible for a sensor too, like dht22 or you can of course run a rgb led strip with adressable leds!<br />
<br />
Will do a short writeup about my setup one of these days.Olav Alexander Mjeldehttp://www.blogger.com/profile/03340652303841762228noreply@blogger.com0tag:blogger.com,1999:blog-185064607024105803.post-39981145316494264922017-05-10T22:17:00.001+02:002017-05-10T22:17:46.410+02:00WS2812B RGB Led Chips<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMt2IOxAt0q72g9Nm_-pca-wduhgSMtZHvDOw7RwYZtom3SYJZIO4Uzy3QTEoCkNykQwlTIUUy81T5VRYyuwYeJIA6blEoiS9m_UIc_Jxaca3f4b5-836ZU3y4QO6We4tnABSCh_ZqqBM/s1600/20170510_220149.jpg" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMt2IOxAt0q72g9Nm_-pca-wduhgSMtZHvDOw7RwYZtom3SYJZIO4Uzy3QTEoCkNykQwlTIUUy81T5VRYyuwYeJIA6blEoiS9m_UIc_Jxaca3f4b5-836ZU3y4QO6We4tnABSCh_ZqqBM/s320/20170510_220149.jpg" width="240" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">The soldering pads are ok sized even for<br />persons that arent soldering very often.</td></tr>
</tbody></table>
Recieved 100 WS2812B RGB Led Chips today.<br />These are the same kind that is used in the neopixel (and clones of such).<br /><br />It means you can do adressable RGB leds with "as many" pixels as you want, simply using just data in / data out (and power + ground).<br />
<br />
Adafruit has a nice tech sheet of the LED chips (5050): https://cdn-shop.adafruit.com/datasheets/WS2812.pdf<br />
<br />
I have had fun with these lights in the past, by hacking IKEA lamps, making my own MQTT IoT smart-light (connected to Home Assitant).<br /><br />So, what are potential use-cases?<br />
<br />
<ul>
<li>Very compact lights on a bicycle</li>
<li>Very compact lights on a stroller</li>
<li>Hidden lighting insde a house, behind a TV etc.</li>
<li>Lights for toys/RC-cars, etc.</li>
</ul>
<div>
Since they are individual adressable, you dont use a lot of ports on the MCU.. Let's say you want to make a doll house with rgb lighting in every room, also on the outside. That is not an issue, you can just use a couple of pins on the MCU :-) Then you can use other pins for motion sensors, oled display etc.</div>
<div>
<br /></div>
<div>
Of course there is a limit of how much current you can draw from the MCU, so you might have to provide external power if you are using a lot of leds.</div>
Olav Alexander Mjeldehttp://www.blogger.com/profile/03340652303841762228noreply@blogger.com0tag:blogger.com,1999:blog-185064607024105803.post-35781359066278735902017-01-16T19:02:00.001+01:002017-01-16T19:02:24.691+01:00OnePlus 3T - get your nougatSome countries lag in the update cycle of the infamous phone OnePlus 3T (also the OnePlus 3).<br />
<br />
In a few easy steps you can get Nougat (Android 7) today!<br />
<br />
<br />
<ol>
<li>Download Opera VPN from Google Play Store</li>
<li>Activate said VPN</li>
<li>Set region to oh Canada</li>
<li>Search for update in menu</li>
<li>Start update</li>
<li>Pause update</li>
<li>Disable VPN</li>
<li>Resume update</li>
</ol>
<div>
Steps 6-8 are optional, yet will speed up the download of said update.</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhQ2RjXVspiRTdrn41ysPH56_M2-WClBLxMt5KeGi2DvYn_W-5KGEQ_bFi2U0I12MbCMlP_DmPpLsaRNXQvus2xazNO0LEwZCNkzMIy9llDeEkVYZMIjTCkETn-KnponOnZqbkT5Bh8Hs/s1600/Screenshot_20170113-162808.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhQ2RjXVspiRTdrn41ysPH56_M2-WClBLxMt5KeGi2DvYn_W-5KGEQ_bFi2U0I12MbCMlP_DmPpLsaRNXQvus2xazNO0LEwZCNkzMIy9llDeEkVYZMIjTCkETn-KnponOnZqbkT5Bh8Hs/s320/Screenshot_20170113-162808.png" width="180" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjT5m-1_2NSTHR-4d0rNIQex6ainjX4QL6EakIIZyd3rHkWdr9ia4G7QufKLV5e-3qxLcM7fbVdcZ_riO4t6MeejkfA0CRVnYOwTaAxA-CTpT-9AJJsqP1qXIZVhvNs7ewN2rMB0WTvW2Y/s1600/Screenshot_20170113-162803.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjT5m-1_2NSTHR-4d0rNIQex6ainjX4QL6EakIIZyd3rHkWdr9ia4G7QufKLV5e-3qxLcM7fbVdcZ_riO4t6MeejkfA0CRVnYOwTaAxA-CTpT-9AJJsqP1qXIZVhvNs7ewN2rMB0WTvW2Y/s320/Screenshot_20170113-162803.png" width="180" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi97p7xpcufc-SD8mdowAzkNpd7S_rZgr0RUHDyj7isDbRP4AlJCFcLMWOP-KlrnRNzcVVhrhJWYXCrHoUvOL_6kRTohyVCb8XLYOF0zuxctfxArSz4DDVCl13kKTJd_pBh8IXFr6M7Io8/s1600/Screenshot_20170113-162812.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi97p7xpcufc-SD8mdowAzkNpd7S_rZgr0RUHDyj7isDbRP4AlJCFcLMWOP-KlrnRNzcVVhrhJWYXCrHoUvOL_6kRTohyVCb8XLYOF0zuxctfxArSz4DDVCl13kKTJd_pBh8IXFr6M7Io8/s320/Screenshot_20170113-162812.png" width="180" /></a></div>
<div>
<br /></div>
Olav Alexander Mjeldehttp://www.blogger.com/profile/03340652303841762228noreply@blogger.com0tag:blogger.com,1999:blog-185064607024105803.post-50597312264083578592016-04-13T21:21:00.000+02:002016-04-13T21:24:31.729+02:00Android app for weather and local air quality - now updated with feedback UI!<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_OJHxxZoHASr3VFI0CcKrgJaB7Vfrcg59yIvye4A9K3TZrWhwo-3rVOoCH9ZhROE-FBNaftDavDY791FSHR83qp3zoThi10VE_jsg0c9PdKjeWL5TfH7Rqm9sRUs1HEqo9hCRBDKpACU/s1600/feedback.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_OJHxxZoHASr3VFI0CcKrgJaB7Vfrcg59yIvye4A9K3TZrWhwo-3rVOoCH9ZhROE-FBNaftDavDY791FSHR83qp3zoThi10VE_jsg0c9PdKjeWL5TfH7Rqm9sRUs1HEqo9hCRBDKpACU/s400/feedback.jpg" width="215" /></a></div>
For my BA project I'm making a contextual app for Android 2.3+ that targets the users context (time and place). It shows the forecast and weather now as well as local air quality.<br />
<br />
Weather is shown for the entire globe where as the air quality is limited to stations in Norway. It uses my service bus that runs on a LEMP server with Redis for key/value storage.<br />
<br />
My App asks my servicebus for the closest stations, the service bus runs geospatial queries and then query the API's if it's not already stored in Redis.<br />
<br />
The user can then enrichen the data by submitting how the local weather is, as some times it's not the closest station that is most correct (maybe you live at a different elevation, maybe there is a mountain between you and the closest station or other factors that would mean that other stations should be weighted above the closest ones.).<br />
<br />
Current data sources:<br />
<ul>
<li><a href="http://www.yr.no/">yr.no</a></li>
<li><a href="http://www.nilu.no/">nilu.no</a></li>
</ul>
Olav Alexander Mjeldehttp://www.blogger.com/profile/03340652303841762228noreply@blogger.com0Bergen, Norge60.391262799999993 5.3220544000000759.888751299999996 4.03116090000007 60.89377429999999 6.61294790000007tag:blogger.com,1999:blog-185064607024105803.post-37037998921655717472016-03-09T20:23:00.001+01:002016-03-09T20:25:23.138+01:00Android app for hacked robot vacuum I tried the third party Android app for my IoT hacked robot vacuum and I really like it.<br />
<br />
Thank you the german hackers and of course LG that uses linux!<br />
<br />
Here are some pics from alfa release.<br /><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEji4HhJ9tkEwEEXCUJARJHW4dfRM91oq0A_BE4mGyGuXZTslLgquzEJ_ccpbwsa1V4iw42cneBbY_Y-HvkqoBtA09B_m6qT9v3k2FThHW4wM0l9Mak9HCpsR8y56exkexVvHIr51BL5BtU/s1600/Screenshot_20160309-201831.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEji4HhJ9tkEwEEXCUJARJHW4dfRM91oq0A_BE4mGyGuXZTslLgquzEJ_ccpbwsa1V4iw42cneBbY_Y-HvkqoBtA09B_m6qT9v3k2FThHW4wM0l9Mak9HCpsR8y56exkexVvHIr51BL5BtU/s400/Screenshot_20160309-201831.png" width="225" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUGqC1qNwPMYHMEWyZmA7vZcn1W6MfeDLjyETCEBp4AK1sfXJeCZVDYYSX9vKBgr9iVXMue2i1tf-E8jCJCG2jiZA86TnmwCcsRCiYb3jJmlcC2Mw44MDwDVLzomu2XWtGxvyzqsTkMz0/s1600/Screenshot_20160309-201836.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUGqC1qNwPMYHMEWyZmA7vZcn1W6MfeDLjyETCEBp4AK1sfXJeCZVDYYSX9vKBgr9iVXMue2i1tf-E8jCJCG2jiZA86TnmwCcsRCiYb3jJmlcC2Mw44MDwDVLzomu2XWtGxvyzqsTkMz0/s400/Screenshot_20160309-201836.png" width="225" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNj0HX2qydiC43oHslxiRu88lf2KVBkVaSF6mjAPHF-CHxzrWUIMKntZc4mb_VSr_3J1M7m0t5c0-Gmqa3GfEcuiqZtWHD5PYuXjYFBimJh2kRvaY6TNAOFSNjIdB0-cCqQiCWzho5QE0/s1600/Screenshot_20160309-201842.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNj0HX2qydiC43oHslxiRu88lf2KVBkVaSF6mjAPHF-CHxzrWUIMKntZc4mb_VSr_3J1M7m0t5c0-Gmqa3GfEcuiqZtWHD5PYuXjYFBimJh2kRvaY6TNAOFSNjIdB0-cCqQiCWzho5QE0/s400/Screenshot_20160309-201842.png" width="225" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUerJEwJIZPIt7DhL-n9e6YzyRyET9lC991uFSoPWTDLSylmMOj9aq0jOuWhzZ1ASBwap37ukBgI1vncBHcvk47KpTswDDl0Yv7lDN0x_DGDpDNkOh1lNSuenW3hOvDn93_nexM57pK8E/s1600/Screenshot_20160309-201740.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUerJEwJIZPIt7DhL-n9e6YzyRyET9lC991uFSoPWTDLSylmMOj9aq0jOuWhzZ1ASBwap37ukBgI1vncBHcvk47KpTswDDl0Yv7lDN0x_DGDpDNkOh1lNSuenW3hOvDn93_nexM57pK8E/s400/Screenshot_20160309-201740.png" width="225" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVuj7kmNIEXPOapo3UDpy33qC0iB0Ji45IyIl3QjUyNY_124FmpWRvL42iIySDOQphgraVmd4OIRFfaTI83D22XvwmHH0onWI48SMdHitnTMZZF_TdTvyOpTOre7FsXusk2Wnk6OGwle4/s1600/Screenshot_20160309-201854.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVuj7kmNIEXPOapo3UDpy33qC0iB0Ji45IyIl3QjUyNY_124FmpWRvL42iIySDOQphgraVmd4OIRFfaTI83D22XvwmHH0onWI48SMdHitnTMZZF_TdTvyOpTOre7FsXusk2Wnk6OGwle4/s400/Screenshot_20160309-201854.png" width="225" /></a></div>
<br />
If you want to try the app, look at my previous blog post: <a href="http://mjelde.blogspot.no/2016/03/lg-hom-bot-square-wifi-mod.html" target="_blank">LG Hom Bot Square Wi-Fi mod</a>Olav Alexander Mjeldehttp://www.blogger.com/profile/03340652303841762228noreply@blogger.com0tag:blogger.com,1999:blog-185064607024105803.post-26847463326928754192016-03-09T19:55:00.001+01:002016-03-09T21:00:16.828+01:00LG Hom Bot Square WiFi MOD<div class="separator" style="clear: both; text-align: center;">
<span style="text-align: start;">LG Hom Bot Square now with Wi-Fi :-)<br /><br />This is a very nice Internet Of Things modification to the LG robot vacuum!<br /><br />After completing the guide here: </span><a href="http://www.robvanhamersveld.nl/2015/03/13/lg-hombot-3-wifi-mod/">http://www.robvanhamersveld.nl/2015/03/13/lg-hombot-3-wifi-mod/</a> I went to the german robot hacking forums where I found out that they also made an Android APP. Will have to download the APK and maybe the source too.</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2lXGHdLEq_esHYvBfW0bTNhpe5JAu3S3vpPXUIJj_T7DvE-6st5Y-QKSz6aCuelmMxGnuyvbCRUkoGCivZ0wPCic4Uy5IuG5E5Eh__QGW-EkVuLeC2J70CGvS1iy9x6nvNa7o1AMTbUQ/s1600/robot.PNG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="251" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2lXGHdLEq_esHYvBfW0bTNhpe5JAu3S3vpPXUIJj_T7DvE-6st5Y-QKSz6aCuelmMxGnuyvbCRUkoGCivZ0wPCic4Uy5IuG5E5Eh__QGW-EkVuLeC2J70CGvS1iy9x6nvNa7o1AMTbUQ/s400/robot.PNG" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">This is how the robot views the world!</td></tr>
</tbody></table>
<br />
The Android APP can be downloaded from here: <a href="https://github.com/rampage128/hombot-control/releases/">https://github.com/rampage128/hombot-control/releases/</a><br />
<br />
This is what a robot map looks like<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhs4B7aGt4mfp6S6FirPPizVQVH56Kumi4zKHP-T1-bGlmxczQRTxdAS-XAnCq_XZE60ziS6m9pRNUwpirSkYUzkdXAOD374rVbxa_F6DTQ6ZjwtGa3IZNL2ETSlUyKW3br4ICKRbFxbQ8/s1600/robotart.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="318" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhs4B7aGt4mfp6S6FirPPizVQVH56Kumi4zKHP-T1-bGlmxczQRTxdAS-XAnCq_XZE60ziS6m9pRNUwpirSkYUzkdXAOD374rVbxa_F6DTQ6ZjwtGa3IZNL2ETSlUyKW3br4ICKRbFxbQ8/s400/robotart.PNG" width="400" /></a></div>
<br />
<br />
Related german links:<br />
<br />
<ul>
<li><a href="http://www.roboter-forum.com/showthread.php?13166-Android-App-f%FCr-Hombot-WLAN-Hack" target="_blank">Robot WLAN APP Hack</a></li>
<li><a href="http://www.roboter-forum.com/showthread.php?10009-LG-Hombot-3-0-WLAN-Steuerung-per-Weboberfl%E4che" target="_blank">Robot Wireless Hack</a></li>
</ul>
Olav Alexander Mjeldehttp://www.blogger.com/profile/03340652303841762228noreply@blogger.com0tag:blogger.com,1999:blog-185064607024105803.post-25038342183890488862016-03-08T16:48:00.000+01:002016-03-08T23:50:07.510+01:00Sony Z5 series getting Android Marshmellow<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLHGG-tAoR3UN-TjYXP53ZkyRqzSYiGhKgbaaogE0QKQYDHkXxoPnGXwh3yA6jcJlY7hVzBLn7tH8EZ8sZF3Fny_WVRVIK99f_qESOCSqptiuUbcPDaY2lH4SAkO1SOAMN4QQ1lOb3-U8/s1600/marshmellow.PNG" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="213" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLHGG-tAoR3UN-TjYXP53ZkyRqzSYiGhKgbaaogE0QKQYDHkXxoPnGXwh3yA6jcJlY7hVzBLn7tH8EZ8sZF3Fny_WVRVIK99f_qESOCSqptiuUbcPDaY2lH4SAkO1SOAMN4QQ1lOb3-U8/s320/marshmellow.PNG" width="320" /></a></div>
Sony Z5 series now has marshmellow rolled out in Norway. If you have yet to get it OTA you can try to connect a USB cable to your PC (having Sony PC Companion installed).<br />
<br />Olav Alexander Mjeldehttp://www.blogger.com/profile/03340652303841762228noreply@blogger.com0tag:blogger.com,1999:blog-185064607024105803.post-73456351419327867892016-02-29T23:18:00.000+01:002016-02-29T23:18:02.895+01:00Redis service bus for API calls<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCZNO7aegPmmQtIvDPi3WBXMkzi1LmnCBh8DBSzDGg47GuZSo17PRh8B3G-tn7Q_Y3XAYDHXzfbEp52K5QCXRXrvmmTUwZITJYBlB_K2McZlu69qvBzH5ZGvjTjhvqS0JwstStb_yWNs8/s1600/kontekst.jpg" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="135" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCZNO7aegPmmQtIvDPi3WBXMkzi1LmnCBh8DBSzDGg47GuZSo17PRh8B3G-tn7Q_Y3XAYDHXzfbEp52K5QCXRXrvmmTUwZITJYBlB_K2McZlu69qvBzH5ZGvjTjhvqS0JwstStb_yWNs8/s320/kontekst.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Redis service bus for API calls means that I can store the<br />users context (geo fence) as a time+place context.</td></tr>
</tbody></table>
Instead of having all the users query the same API calls for the same context, why not geo fence the API queries and let redis act as a remote storage for the results? That's what I asked my self in my undergoing bachelors project.<br /><br />My Android app "Kontekst" (Norwegian for Context) will query data sources like <a href="http://yr.no/" target="_blank">YR</a> and <a href="http://nilu.no/" target="_blank">NILU – Norsk institutt for luftforskning</a>.<br />
<br />The context of the user shold show data relevant for the user and the user should not have to wait for the same data delivered to other users in the same context. There is the dimension place (location) and there is time. Time doesent stand still even though the user does and after 10 minutes, the data is considered stale when it comes to air quality and the local weather situation.<br /><br />Yet there are hundreds of thousands of inhabitants, even in the city of Bergen, Norway! So why not use the contexts and harvest the great powers of Redis?Olav Alexander Mjeldehttp://www.blogger.com/profile/03340652303841762228noreply@blogger.com0tag:blogger.com,1999:blog-185064607024105803.post-91946573243810986822016-02-07T16:01:00.001+01:002016-02-07T16:03:20.275+01:00Redis, put your socks on!Instead of handling connections via the TCP connection, one of the most important yields of Redis performance enhancment would have to be getting the sockets up and running.<br />
<br />
On unbuntu server 14.04 you have the settings by doing like so:<br />
<span style="background-color: #eeeeee;">sudo su</span><br />
<span style="background-color: #eeeeee;">vi /etc/redis/redis.conf</span><br />
<br />
Find the socket by searching in vim:<br />
<span style="background-color: #eeeeee;">:/unixsocket <enter></span><br />
<br />
When you find the line with redis socket, just uncomment it, so it becomes:<br />
<span style="background-color: #eeeeee;">unixsocket /var/run/redis/redis.sock</span><br />
<span style="background-color: #eeeeee;">unixsocketperm 755</span><br />
<br />
Then write and quit vim.<br />
<span style="background-color: #eeeeee;">:wq</span><br />
<br />
Then you need to reload the redis server, you can do it like so:<br />
<span style="background-color: #eeeeee;">service redis-server restart</span><br />
<span style="background-color: #eeeeee;"><br /></span>
<span style="background-color: white;">You can of course try to force a reload instead of doing a restart, but I find redis to often need a restart where Nginx often have enough with a reload. </span><br />
<span style="background-color: white;"><br /></span>
<span style="background-color: white;">So, what are the gains my dear sir?</span><br />
I did some benchmarks on my 5$ VPS.<br />
<br />
<b>First look at redis without socks (TCP):</b><br />
root@xxxx:/var/www/kontekst# <span style="background-color: #eeeeee;">redis-benchmark -q -n 10000</span><br />
PING_INLINE: 57471.27 requests per second<br />
PING_BULK: 54347.82 requests per second<br />
SET: 24038.46 requests per second<br />
GET: 25974.03 requests per second<br />
INCR: 26315.79 requests per second<br />
LPUSH: 25641.03 requests per second<br />
LPOP: 40650.41 requests per second<br />
SADD: 65789.48 requests per second<br />
SPOP: 44247.79 requests per second<br />
LPUSH (needed to benchmark LRANGE): 43290.04 requests per second<br />
LRANGE_100 (first 100 elements): 24570.02 requests per second<br />
LRANGE_300 (first 300 elements): 11185.68 requests per second<br />
LRANGE_500 (first 450 elements): 6997.90 requests per second<br />
LRANGE_600 (first 600 elements): 6930.01 requests per second<br />
MSET (10 keys): 37735.85 requests per second<br />
<div>
<br />
Then the next one is looking at socks for less overhead:</div>
<div>
<br /></div>
<div>
<b>(Remember to change your sock location!)</b><br />
root@xxxx:<span style="background-color: #eeeeee;">/var/www/kontekst# redis-benchmark -q -n 10000 -s<span style="color: red;"> /.../.../.../redis.sock</span></span><br />
<br />
PING_INLINE: 108695.65 requests per second<br />
PING_BULK: 112359.55 requests per second<br />
SET: 109890.11 requests per second<br />
GET: 111111.11 requests per second<br />
INCR: 90090.09 requests per second<br />
LPUSH: 128205.12 requests per second<br />
LPOP: 129870.13 requests per second<br />
SADD: 67114.09 requests per second<br />
SPOP: 61728.39 requests per second<br />
LPUSH (needed to benchmark LRANGE): 60606.06 requests per second<br />
LRANGE_100 (first 100 elements): 23752.97 requests per second<br />
LRANGE_300 (first 300 elements): 9149.13 requests per second<br />
LRANGE_500 (first 450 elements): 8361.20 requests per second<br />
LRANGE_600 (first 600 elements): 5896.23 requests per second<br />
MSET (10 keys): 56497.18 requests per second<br />
<br />
So the socks connection gives: 53497.18 - 37735.85 = 15761,33 increase in requests per second!<br />
This is completely free and takes you 2 lines of configuration... So why not do it? Even if your Redis handles it's IO today, you will of course put less strain on CPU and Memory too.</div>
Olav Alexander Mjeldehttp://www.blogger.com/profile/03340652303841762228noreply@blogger.com0tag:blogger.com,1999:blog-185064607024105803.post-82880624964635150152016-02-07T00:32:00.002+01:002016-02-07T00:32:23.061+01:005$ VPS rocks the boat!I'm fairly impressed by the 5$ VPS by <a href="https://www.digitalocean.com/?refcode=4e614172d618" target="_blank">Digital Ocean (DO)</a>, which gives you real SSD storage, 512 Mb RAM and 1 core, 1Tb traffic out. The fact that I got 10$ after signing up (for free) is also nice.<br /><br /><a href="https://www.digitalocean.com/?refcode=4e614172d618" target="_blank">Digital Ocean</a> has a lot of guides about everything you can imagine and they have a place where the community helps out. I even figured out they pay people to write guides!<br />
<br />You can get a lot done on Linux even with half a gigabyte of RAM. In a couple of days I've set up Ubuntu Server 14.04 (LTS), NGINX, PHP7, MySQL, Redis and grade A+ HTTPS using letscrypt.com.<br /><br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRKrC1drUaCwAF9fBXJ4U3LsRd457gAoQwO-pSDONPUivK7VxQoVqgSxRZnfIyOTUn5Ko-19qE5GxvBvXB4qN2pQxfVhoBnUwcmAQReaGrsVi4jbTvU5w8XGEWCiF732Y9dt4YgS_5EHM/s1600/ssl_a%252B.PNG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="221" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRKrC1drUaCwAF9fBXJ4U3LsRd457gAoQwO-pSDONPUivK7VxQoVqgSxRZnfIyOTUn5Ko-19qE5GxvBvXB4qN2pQxfVhoBnUwcmAQReaGrsVi4jbTvU5w8XGEWCiF732Y9dt4YgS_5EHM/s400/ssl_a%252B.PNG" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">A+ with let's crypt :-)</td></tr>
</tbody></table>
<br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgANqOxFjX_q3sgr9S2v44ONaRiQOqhwPhTHqWw-coQvDdLh3LLDUiylbrNFMJwG2ldru0NvNAgLVC_IQIEJ757Jk45H6m54wdfXGeg4No7uk31eoICCycMUwKxOm6rmoP1AkpQjiErPfI/s1600/redis.PNG" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgANqOxFjX_q3sgr9S2v44ONaRiQOqhwPhTHqWw-coQvDdLh3LLDUiylbrNFMJwG2ldru0NvNAgLVC_IQIEJ757Jk45H6m54wdfXGeg4No7uk31eoICCycMUwKxOm6rmoP1AkpQjiErPfI/s320/redis.PNG" width="304" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Redis caching WordPress objects</td></tr>
</tbody></table>
Redis caches all objects from my Wordpress instance, also it will cache my API calls from third parties (though with expiration). NGINX does both static file cache, also gzip compression etc.<br />
<br />
In comparison of my previous webhotel, can now do "what I want" (within reason). Let's say I want a failover cluster, then I just make a new "droplet" (virtual server) and I do some configuraion for a failover cluster. I moved my domain to theire DNS, so I can have full control in one place.<br />
<br />
NGINX is a great server, but I would also like to try this setup:<br />NGINX (reverse proxy) > Openlightspeed > Redis<br /><br />OR:<br />NGINX (reverse proxy) > Apache > Redis<br />In my latest example I would want to use mod_pagespeed in apache, as this is pluggable. In NGINX you have to compile it your self, so it's a bit more work when you are upgrading NGINX and have to compile dependencies.<br /><br />I'm running NGINX with HTTP/2, compression, cache etc. It flies! It's so much faster than regular hosting deals. Of course it's more work to get it up and running than just uploading files to a shared webhost.<br /><br />If you want to try digital ocean today, use my referral link please :-)<br /><br />>> <a href="https://www.digitalocean.com/?refcode=4e614172d618" target="_blank">Digital Ocean (DO)</a>, <<<br /><br />Also remember to find your place with lowest ping:<br />http://speedtest-sfo1.digitalocean.com/<br /><br />For me AMS2 was fastest and had lowest ping, ping is by all means the most important factor when it comes to internet services, as a high latency will give a slow page even though it's very light and optimized to fly.Olav Alexander Mjeldehttp://www.blogger.com/profile/03340652303841762228noreply@blogger.com0tag:blogger.com,1999:blog-185064607024105803.post-19695739100157535132015-12-15T19:08:00.002+01:002015-12-15T19:38:30.441+01:00Arduino - HXJ-17 mikrofon og hvordan den virker - Video!Et bilde sier mer enn tusen ord og en video har 24 bilder i sekundet, derfor følte jeg at et par minutters video kan vise mer enn mange artikler med tekst.<br />
<br />
Når det er skrevet, så vil videoen nedenfor vise hvordan mikrofonen fungerer og at den ikke er usensitiv som mange på Internett påstår.<br />
<br />
<iframe allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/YIaVyaRIK28" width="560"></iframe><br />
<br />
Relatert lenke:<br />
<br />
<ul>
<li><a href="https://github.com/olavxxx/Arduino-Sound-Sensor" target="_blank">Koden min på Github</a></li>
</ul>
Olav Alexander Mjeldehttp://www.blogger.com/profile/03340652303841762228noreply@blogger.com0tag:blogger.com,1999:blog-185064607024105803.post-61624491594089048872015-12-14T21:37:00.001+01:002015-12-14T21:47:38.329+01:00Hacke en ikealampe med Arduino og Adafruit Neopixel klone - Video!<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLCozK_yihyxxFt1K4EGQlKzY-Wcff3QSMPxiT8ivlr90k_XsMhzITQ-OakTsjNg2ols-oGOmB-H862F1no_Xo2wcNg4JSS6X4j6PSqE6fPXUP0wZKi8DH8oA9neF4dpWECw1aDpR7nYw/s1600/DSC_2118.JPG" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLCozK_yihyxxFt1K4EGQlKzY-Wcff3QSMPxiT8ivlr90k_XsMhzITQ-OakTsjNg2ols-oGOmB-H862F1no_Xo2wcNg4JSS6X4j6PSqE6fPXUP0wZKi8DH8oA9neF4dpWECw1aDpR7nYw/s400/DSC_2118.JPG" width="225" /></a>Som alltid åpnet jeg posten og til min store glede var det elektronikk der! Min NeoPixel klone var kommet frem, helt fra min gode venn (av mange andre) som sender meg gaver fra Kina.<br />
<br />
Når det er sagt, hva er neopixel? Jo, det er en ring med RGB-led som er unikt adresserbare.<br />
Dette betyr at du gjennom 3 kabler (data + strøm + jord) kan styre/adressere "uendelig" med leds.<br />
<br />
Jeg kjører her en demo på en ESP8266 (NodeMCU V1), men i praksis kan man gjøre dette på nesten hva som helst av Arduinokompatible enheter.<br />
<br />
For å teste dette veldig kjapt, tok jeg å lastet ned biblioteket til Adafruit og la det inn i Arduino library-mappen. Deretter limte jeg inn konstantene for å mappe om til riktig pinout på ESP8266:<br />
<br />
<blockquote class="tr_bq">
#define NODEMCU_D0 16<br />
#define NODEMCU_D1 5<br />
#define NODEMCU_D2 4<br />
#define NODEMCU_D3 0<br />
#define NODEMCU_D4 2<br />
#define NODEMCU_D5 14<br />
#define NODEMCU_D6 12<br />
#define NODEMCU_D7 13<br />
#define NODEMCU_D8 15<br />
#define NODEMCU_D9 3<br />
#define NODEMCU_D10 1<br />
#define NODEMCU_D12 10</blockquote>
<br />
Jeg valgte å deretter definere pinout i Adafruit-koden:<br />
<blockquote class="tr_bq">
#define PIN 4</blockquote>
Som man ser der oppe, er 4 = D2 (altså plugger jeg da data-linjen inn på D2 på ESP8266).<br />
<br />
Sketchen jeg testet, er den som heter "buttoncycler" som man finner under examples etter man har lagt inn library. Jeg måtte derfor definere opp en knapp også:<br />
<blockquote class="tr_bq">
#define BUTTON_PIN 5 </blockquote>
Vi ser der oppe at Pin 5 på Arduino tilsvarer D1 på ESP8266, altså tok jeg en kabel på D1 som er han i andre enden. Jeg har ikke knapp tilgjengelig så jeg tok enda en kabel på GND (jord). Når koden er som den er, vil de to kablene kortsluttet for et øyeblikk tilsvare en "momentary switch", en øyeblikksbryter. Sketchen vil starte animasjoner, den cycler gjennom 10 moduser.<br />
<br />
Man må også definere antall piksler man har, jeg har her 24 piksler:<br />
#define PIXEL_COUNT 24<br />
<br />
Ellers er det egentlig ikke så mye å gjøre, last det over på NodeMCUen og lek i vei :-)<br />
<br />
<b>Her er demovideoen når jeg testet</b><br />
<iframe allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/a3j1uB-rymY" width="560"></iframe>
<br />
Relaterte lenker<br />
<ul>
<li><a href="https://github.com/adafruit/Adafruit_NeoPixel" target="_blank">Github bibliotek - Adafruit</a></li>
</ul>
Olav Alexander Mjeldehttp://www.blogger.com/profile/03340652303841762228noreply@blogger.com0tag:blogger.com,1999:blog-185064607024105803.post-5276930056074886212015-12-07T18:58:00.005+01:002015-12-07T19:09:28.379+01:00Lag en imponerende bluescreen presentasjonsvideo på 1-2-3Fremfor å vise videoene dine "ramme til ramme", viser jeg her hvordan du kan lage imponerende innramminger på 1-2-3, som mitt eksempel her:<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEij52TGgkJfYj3Jre6DJbAR1c6NyuZq8cFOkrQI3stPHrnpy4d4dcEYmIeJToVqNS9M7WgkHS_Oyy6ET49jX_v4IQ72nzMpXdCDq19m0nqf0rE8mfw7U5Kiv4vRxkx5Go1BIuDg5C3MD_o/s1600/resultatet.PNG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="323" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEij52TGgkJfYj3Jre6DJbAR1c6NyuZq8cFOkrQI3stPHrnpy4d4dcEYmIeJToVqNS9M7WgkHS_Oyy6ET49jX_v4IQ72nzMpXdCDq19m0nqf0rE8mfw7U5Kiv4vRxkx5Go1BIuDg5C3MD_o/s400/resultatet.PNG" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Denne videoen har jeg aldri vist på tven min, men her ser du bilde av tven<br />
og det ser jo ekte ut, sant? Vi bruker her noe man kaller "blue screen" som<br />
de fleste har hørt om, for å gi en ny dimmensjon til videoen.</td></tr>
</tbody></table>
<br />
<br />
Det ser kanskje fancy ut, men det tar ca 10 minutter å "ramme inn" videoen, hvis du har klart et kamera. Enten trenger du Adobe Photoshop + Adobe Premiere, eller du kan hoppe over Photoshop hvis du har mulighet for å vise en solid bakgrunnsfarge på TVen din. Det er også mulig å bruke et laken, klippe ut fargede ark osv. Fantasien setter grenser, som alltid!<br />
<br />
<h3>
1) Ta bilde av TV-apparatet ditt</h3>
Du trenger ikke å bry deg om hva som er på skjermen, men hvis du ikke har Photoshop kan du velge å vise en blå eller grønn video (søk etter green background eller blue background på youtube og vis dette på tven)<br />
<br />
<h3>
2) I Photoshop lager du et nytt dokument på 1920x1080 piksler</h3>
Her drar du nå inn bildet av tven din og slå på grid (CTRL+ * ). Trykk så CTRL+T (transform).<br />
Nå må du trekke ut bildet slik at kantene går rett, slik at du ikke får forvrengt bilde.<br />
Bildet lagres nå ned som bluescreen.jpg med kvalitet 12.<br />
<br />
<h3>
3) Opprett Adobe premiere prosjekt, dra inn bildet du lagde i steg 2.</h3>
Pass på at du velger HDV og 1080P 24fps prosjekt.<br />
Importer bildet inn i prosjektmappen, dra det så inn på tidslinjen i det øverste videosporet.<br />
Nå må du åpne effektbiblioteket og trekk så bluescreen over laget ditt bluescreen.jpg<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVYOLn6qHYWUdB61RrQBlRK3PwPLDQ6nvqz3VlhWbNdhliPe7JdK1t7_g5zefA8WX7upXWNp1TC8UfXgSJ9SjWLeD5nsJ8xOG5jx36njlG0q8slikYsatIq3OZ3MbQb1r0Lc7ocZcsldc/s1600/howto.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="298" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVYOLn6qHYWUdB61RrQBlRK3PwPLDQ6nvqz3VlhWbNdhliPe7JdK1t7_g5zefA8WX7upXWNp1TC8UfXgSJ9SjWLeD5nsJ8xOG5jx36njlG0q8slikYsatIq3OZ3MbQb1r0Lc7ocZcsldc/s400/howto.jpg" width="400" /></a></div>
<br />
Hvis alt gikk som forventet, skal dette bli resultatet:<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQDlca2xvSGBc14P6PUbkLYk2TsSnF4dl4XIiAei9-8BEi7HsVSis2bRZdSvWldMZMYbV3vKxwOLJ-3iSDT7YFJPDro9vtvwhWuAxCTEyI1M0LhK7e-UARXYBV9iDatBptLueBvoyj6WA/s1600/bluescreenok.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQDlca2xvSGBc14P6PUbkLYk2TsSnF4dl4XIiAei9-8BEi7HsVSis2bRZdSvWldMZMYbV3vKxwOLJ-3iSDT7YFJPDro9vtvwhWuAxCTEyI1M0LhK7e-UARXYBV9iDatBptLueBvoyj6WA/s400/bluescreenok.PNG" width="400" /></a></div>
<br />
Man kan nå legge andre lag under dette laget og det ser ut som presentasjonen foregår på tv-apparatet. Den samme effekten kan man selvsagt bruke andre steder, i en bok osv. Man kunne også filmet tven sin mens den viste en solid bakgrunnsfarge. For en "sanntids"-bakgrunnsfarge er det viktig å tenke på at man ikke må stå foran bildet med samme farge som den man skal gjøre transparent. La oss si at jeg ønsket å stå foran tv-apparatet og filme, mens jeg skulle bluescreene inn en annen video på tven. Hvis jeg da hadde på meg blå genser, hadde jeg blitt usynlig der genseren var, det samme hadde skjedd med øynene mine.<br />
<br />
Hvis du har blå øyne kan du da prøve en "grønn bluescreen", en green screen. Eller du kan bruke andre farger, da kan du velge en av de andre keyene (flere å velge mellom).<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjq5g7QcMIiTp3HN0KAigygUPzwJozVGT77N_WKjSX3n_42_rV3W5XRS3Jy3hrDKjpR-WQbtXhyphenhyphenjKqMBlKqcW4NAkQPYnGTmf2y9We7rvJFFIbATcyU4XaEyA7rNCxNLP15wEemK6pKmok/s1600/resultatet.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="223" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjq5g7QcMIiTp3HN0KAigygUPzwJozVGT77N_WKjSX3n_42_rV3W5XRS3Jy3hrDKjpR-WQbtXhyphenhyphenjKqMBlKqcW4NAkQPYnGTmf2y9We7rvJFFIbATcyU4XaEyA7rNCxNLP15wEemK6pKmok/s400/resultatet.PNG" width="400" /></a></div>
<br />Olav Alexander Mjeldehttp://www.blogger.com/profile/03340652303841762228noreply@blogger.com0tag:blogger.com,1999:blog-185064607024105803.post-4823958785189351302015-12-03T23:21:00.001+01:002015-12-03T23:40:44.810+01:00Loddestemningen<div class="separator" style="clear: both; text-align: center;">
Beklager ordspillet - loddestemningen. Men stemningen for å lodde kom over meg, så det var passende følte jeg. </div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTfagRrWU8L8cTDVtEX0qw6Dof-h15BH7ioNKIOwmCHStq7BEKvXRgu_D4LUdWIej2swmLmUfMKGiyf5xvTyXfmdEq6RKT8SZ60QTiK6YD1dMM2mU4dQ7TpH41HM2y8YZOYz9vz9s6KS8/s1600/DSC_2096.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTfagRrWU8L8cTDVtEX0qw6Dof-h15BH7ioNKIOwmCHStq7BEKvXRgu_D4LUdWIej2swmLmUfMKGiyf5xvTyXfmdEq6RKT8SZ60QTiK6YD1dMM2mU4dQ7TpH41HM2y8YZOYz9vz9s6KS8/s400/DSC_2096.JPG" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Dette er en flux capacitor, den gjør tidsreise mulig.<br />
Neida, det er en 16 bit ADC (analog til digital converter).</td></tr>
</tbody></table>
16 bit ADC gir 4 inputs gjennom i2c, det betyr at man trenger bare 2 kabler inn mot Arduino og kan da koble enten 4 sensorer på den, eller man kan kjøre en differensialmåling på 2 sensorer for enda mer nøyaktig måling (da hele 16 bit, mot 15 bit hvis man kjører 4 sensorer).<br />
<br />
Man kan også programmere den fra koden sin og velge å forsterke signal med 2/3x (standard), 1x, 2x, 4x, 8x og 16x. Så hvis man har for eksempel 1V maks ut fra en analog sensor, kan man øke gain med 4 og få ut 4V maks. Når det er sagt, kan man også adressere de ved å laske over mot "addr". Mer om det i <a href="https://learn.adafruit.com/adafruit-4-channel-adc-breakouts/assembly-and-wiring" target="_blank">guiden hos adafruit</a>:<br />
<br />
Man kan altså kjøre 4 16 bit ADC for å gi 4x4 = 16 analoge input med 15bit målinger inn gjennom da 2 ledninger mot mikrokontrolleren! (pluss strøm og jord) eller: 2x4 = 8 x 16bit målinger gjennom to ledninger.. Man må selvsagt ha kabler til sensorer og mellom enhetene i i2c bussen :-)<br />
<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGz6XhLNs34I431a46Fan9g7t2yMSGITVA0MDGoBM7rGcSZnP2mmeDSsTRJp5iLEAtyWdcfSmDKyPHOyg3IoqrkN2EP6MwF1XzKX0EK9eeFGuVPn9Gs-rgGElzbJqDI-08x-3GRTq8cDU/s1600/DSC_2098.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGz6XhLNs34I431a46Fan9g7t2yMSGITVA0MDGoBM7rGcSZnP2mmeDSsTRJp5iLEAtyWdcfSmDKyPHOyg3IoqrkN2EP6MwF1XzKX0EK9eeFGuVPn9Gs-rgGElzbJqDI-08x-3GRTq8cDU/s400/DSC_2098.JPG" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Her ser vi en lyssensor jeg loddet på pinner.</td></tr>
</tbody></table>
Jeg har nå i praksis 3 typer lyssensorer, hvor av dette er den beste av de til vanlig lysmåling. Men jeg har også noen UV-målere samt noen enklere målere enn den her.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRK4HxW3YtG0asmwj4ds9ODosnQ2zq-EwoJx4tG7C1LlnMpde_2-dOW4S4FRieCbgvNX0FBFOBiAS3yF0tY1gvI40trwmtscoMX-zdWyqoxT1hajgc6xnQVuYv-ifBFHf0tjwQTd0Wa-g/s1600/DSC_2100.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRK4HxW3YtG0asmwj4ds9ODosnQ2zq-EwoJx4tG7C1LlnMpde_2-dOW4S4FRieCbgvNX0FBFOBiAS3yF0tY1gvI40trwmtscoMX-zdWyqoxT1hajgc6xnQVuYv-ifBFHf0tjwQTd0Wa-g/s640/DSC_2100.JPG" width="360" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Liten Arduino Pro Micro før jeg lodder fast pinnene.</td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1Uuo673gwVpvY2csKYnN730-c807oc7lNcghoMGy2co-qPJVtH3f_-v8k0nmuIyugStAewftD3OnZies3hgvbIQuPOQgcXpabavirLkaFbm-gKFD8x7R6PORErqSagwy8Tu_M0MPsh3w/s1600/DSC_2102.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1Uuo673gwVpvY2csKYnN730-c807oc7lNcghoMGy2co-qPJVtH3f_-v8k0nmuIyugStAewftD3OnZies3hgvbIQuPOQgcXpabavirLkaFbm-gKFD8x7R6PORErqSagwy8Tu_M0MPsh3w/s400/DSC_2102.JPG" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Her er alt jeg loddet i kveld, man ser to kapasitive<br />
Touch sensorer, samt en 16 bit adc, en voltage divider<br />
Og en lyssensor. </td></tr>
</tbody></table>
<br />Olav Alexander Mjeldehttp://www.blogger.com/profile/03340652303841762228noreply@blogger.com0tag:blogger.com,1999:blog-185064607024105803.post-48832672360775240262015-12-03T19:18:00.002+01:002015-12-03T19:20:34.297+01:00Bergens tidende lanserte rentekartetTjenesten "rentekartet" fra Bergens Tidende var ganske morsomt, men samtidig fikk det meg til å lure litt. Hvorfor er den en åpenbar geografisk sammenheng mellom rentenivået til innebyggerne i vårt land?<br />
<br />
Nå er rentekartet litt vanskelig å se i sin helhet uten å modifisere DOM (Document Object Model) på grunn av at det ikke er laget med tanke på responsivt design, dessverre. Men jeg tok å manipulerte DOM for å se utsnitt av hele landet:<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpRGOlF8PJuLjUf38txbxN0bMucRo2ezz113r8SccJn02yV6Tdjo_lR-51nAXAxzS_omr2QW6qnkEnI2ygpgTLnzpPnntuT58E_oCb8ltRAWhPpFXD1cWZ-JJaO1LamRUlmNJpzpIPANs/s1600/noreg.PNG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpRGOlF8PJuLjUf38txbxN0bMucRo2ezz113r8SccJn02yV6Tdjo_lR-51nAXAxzS_omr2QW6qnkEnI2ygpgTLnzpPnntuT58E_oCb8ltRAWhPpFXD1cWZ-JJaO1LamRUlmNJpzpIPANs/s400/noreg.PNG" width="396" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Det er jo tydelig at en del områder har greie rentevilkår<br />
Men de som bor midt på fjellet eller langs svenskegrensen ser ut<br />
til å ha dårlige rentevilkår.</td></tr>
</tbody></table>
Det jeg umiddelbart begynte å lure på, var om det var noe som gjorde at de som bor de stedene kanskje ikke refinansierer sine boliglån? De har kanskje tilknytning til lokalbanken sin?<br />
Kan det være andre årsaker? Kanskje datagrunnlaget er for lite og de få som svarte har dårlige vilkår? BT er jo en bergensavis så det er jo naturlig at de får mange respondenter på vestlandet.<br />
<br />
Et annet alternativ kan også være at det er dyrere boliger der rentenivået er lavere. At folk er "bedre kunder" gir jo gjerne bedre vilkår? Unntak for boligprisene fins jo, men dette er jo et snitt av flere respondenter. Boliger er jo dyrere i storbyene enn utenfor og da har gjerne banken bedre marginer? Det blir bare spekulasjoner, men jeg synes nå det var interessant observasjon :-P<br />
<br />
Sjekk gjerne ut rentekartet selv <a href="http://www.bt.no/bolig/Rentekart-Har-du-darligere-rente-enn-naboen-648916_1.snd">http://www.bt.no/bolig/Rentekart-Har-du-darligere-rente-enn-naboen-648916_1.snd</a>Olav Alexander Mjeldehttp://www.blogger.com/profile/03340652303841762228noreply@blogger.com0tag:blogger.com,1999:blog-185064607024105803.post-76212931315561258852015-12-03T13:42:00.000+01:002015-12-04T13:30:30.542+01:00LilyTiny LilyPad ATtiny85 - Wearable IoT - kom i gang!LilyTiny LilyPad ATtiny85 er en mikrokontroller som skal tåle vaskemaskinen og er laget for å sy på klær, kostymer eller annet.
I bunn og grunn bygger den på Atmega sin ATtiny85 men har innebygd USB-krets som forenkler innlasting av fastvare samt strømleveranse gjennom USB er jo da også mulig.
Jeg kjøpte enhetene gjennom aliexpress og som vanlig fulgte det ikke med noe annet enn kretskortet. Derfor skal jeg avmystifisere kretskortet gjennom dette innlegget.<br />
<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjugg5N0WHHsXaJ1n6bPhwEg7gynYc7ycMjEKgd3Hprv8hG5Z3mjRthB2-Tn07kOPTmsJUBwI3ykv4lbMJFzjqp2uQqsRtQGKHcTh5L304J87j6CscUspSXgJxthpaJWnFeJ6xopYAct-g/s1600/DSC02570.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjugg5N0WHHsXaJ1n6bPhwEg7gynYc7ycMjEKgd3Hprv8hG5Z3mjRthB2-Tn07kOPTmsJUBwI3ykv4lbMJFzjqp2uQqsRtQGKHcTh5L304J87j6CscUspSXgJxthpaJWnFeJ6xopYAct-g/s400/DSC02570.JPG" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Den gjør ikke skam på navnet sitt "LilyTiny"</td></tr>
</tbody></table>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrvFaC_YMMkpjfgFVRiBR3n9r12B7r1x039VOUjA0u1unUVzCx4yV4EhzfVMszpJPKirNxNz9xckZxBuUQewzJ2oLzvrbzQCwsJLDsEpib1cTdqEl8jIjWQIFkU_5HT1tqLTg2rt9RrJg/s1600/DSC02569.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrvFaC_YMMkpjfgFVRiBR3n9r12B7r1x039VOUjA0u1unUVzCx4yV4EhzfVMszpJPKirNxNz9xckZxBuUQewzJ2oLzvrbzQCwsJLDsEpib1cTdqEl8jIjWQIFkU_5HT1tqLTg2rt9RrJg/s400/DSC02569.JPG" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Størrelsesmessig er den som en femkroner.</td></tr>
</tbody></table>
<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg93h9pM2bHjlWg7BtBbaUMuR8xENIEuT93ldy_DCv6mI6SCmB0zF0hFygp_aqNnP10v4SaJrsY1yzdTdNhaHPw4x4DPEpnfjAoEWSmFF8yht8XZ8eHJVvUc_harTmH92FiSq35SC_nzHE/s1600/DSC02572.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg93h9pM2bHjlWg7BtBbaUMuR8xENIEuT93ldy_DCv6mI6SCmB0zF0hFygp_aqNnP10v4SaJrsY1yzdTdNhaHPw4x4DPEpnfjAoEWSmFF8yht8XZ8eHJVvUc_harTmH92FiSq35SC_nzHE/s400/DSC02572.JPG" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Baksiden viser koblingsmulighetene man har mot ATtiny85 <abbr title="Small Outlined Integrated Circuit">SOIC</abbr><br />
(Small Outlined Integrated Circuit).</td></tr>
</tbody></table>
<h3>
Tilkoblingsmuligheter</h3>
<div>
Bak på enheten står det følgende: </div>
<div>
P0, P1, P2, 5V, VIN, GND, P5, P4, P3.</div>
<div>
<br /></div>
<div>
Men hvordan brukes dette i praksis?</div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-kEyHz-Sh3GYirRySzVJ_BZgNyyo_JD4HpQs15Bl0S_A2xXY-gY-V_G1eCEh6v2G1n_JprwvNXKT3GExLBVaSq7SW7ctNEfp0GIlM33fC82NPkF3euUW7yCNMXOOZEDZwLwsQ9AtliIk/s1600/lilytiny.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="88" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-kEyHz-Sh3GYirRySzVJ_BZgNyyo_JD4HpQs15Bl0S_A2xXY-gY-V_G1eCEh6v2G1n_JprwvNXKT3GExLBVaSq7SW7ctNEfp0GIlM33fC82NPkF3euUW7yCNMXOOZEDZwLwsQ9AtliIk/s400/lilytiny.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Her ser man ATtiny 85 chippen sine muligheter og hva som er koblet opp hvor.</td></tr>
</tbody></table>
<div>
Basert på kretskortet og ATtiny85 kan man derfor lese seg frem til:</div>
<div>
<ul>
<li>IO - inputs / outputs</li>
<ul>
<li>P0 - PWM / MOSI / D1</li>
<ul>
<li>PB0 (MOSI/DI/SDA/AIN0/OC0A/OC1A/AREF/PCINT0)</li>
<ul>
<li>Pin 5 på chippen</li>
</ul>
</ul>
<li>P1 - PWM / MISO / D0</li>
<ul>
<li>PB1 (MISO/DO/AIN1/OC0B/OC1A/PCINT1)</li>
<ul>
<li>Pin 6 på chippen</li>
</ul>
</ul>
<li>P2 - A1</li>
<ul>
<li>PB2 (SCK/USCK/SCL/ADC1/T0/INT0/PCINT2)</li>
<ul>
<li>Pin 7 på chippen</li>
</ul>
</ul>
<li>P3 - A3</li>
<ul>
<li>PB3 (PCINT3/XTAL1/CLKI/OC1B/ADC3)</li>
<ul>
<li>Pin 2 på chippen</li>
</ul>
</ul>
<li>P4 -A2</li>
<ul>
<li>PB4 (PCINT4/XTAL2/CLKO/OC1B/ADC2)</li>
<ul>
<li>Pin 3 på chippen</li>
</ul>
</ul>
<li>P5 - Reset / A0</li>
<ul>
<li>PB5 (PCINT5/RESET/ADC0/dW)</li>
<ul>
<li>Pin 1 på chippen</li>
</ul>
</ul>
</ul>
<li>Strøm</li>
<ul>
<li>VIN</li>
<ul>
<li>Volt inn ()</li>
</ul>
<li>GND</li>
<ul>
<li>Jord</li>
</ul>
<li>5V</li>
<ul>
<li>5 Volt</li>
</ul>
</ul>
</ul>
</div>
<br />
For å bruke Arduino IDE med enheten må man legge inn driver, følg guiden her:<br /><a href="https://digistump.com/wiki/digispark/tutorials/connecting">https://digistump.com/wiki/digispark/tutorials/connecting</a><br />
<br />
Deretter er det litt forskjellig fra hvordan vanlig Arduino virker, man må velge "Micronucleus" som programmer og man må koble ut kortet når man skal laste opp fastvaren, deretter sier Arduino IDE at du skal koble den til og vips fyker den over. (Du vil altså ikke se en com-enhet, slik du gjør med vanlig Arduino, du får heller ei brukt serial printline mot PC).<br />
<br />
<br />
Relaterte lenker:<br />
<br />
<ul>
<li><a href="http://www.atmel.com/images/atmel-2586-avr-8-bit-microcontroller-attiny25-attiny45-attiny85_datasheet.pdf" target="_blank">Atmel sin tekniske manual i PDF-form</a></li>
<li><a href="https://learn.sparkfun.com/tutorials/tiny-avr-programmer-hookup-guide/attiny85-use-hints" target="_blank">SparkFun sin ATtiny85 manual</a></li>
</ul>
Olav Alexander Mjeldehttp://www.blogger.com/profile/03340652303841762228noreply@blogger.com0tag:blogger.com,1999:blog-185064607024105803.post-21402246218791244542015-12-02T00:11:00.000+01:002015-12-02T08:19:32.213+01:00Arduino + OLED + Mikrofon = visuell lydmåler<span style="background-color: white; color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: 13.2px; line-height: 18.48px;">Etter å ha kjøpt et par oleds, en del Arduinoer og mange sensorer, har jeg lekt en del.En av de første tingene jeg gjorde, var å lage en værstasjon som lastet data fra nettet. Men det var jo data som eksisterte fra før i skyen, Vi vet jo at det regner i bergen i morgen også, så hva er vitsen med værmeldingen?</span><br />
<br style="background-color: white; color: #666666; font-family: 'Trebuchet MS', Trebuchet, Verdana, sans-serif; font-size: 13.2px; line-height: 18.48px;" />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="background: rgb(255, 255, 255); border: 1px solid rgb(238, 238, 238); box-shadow: rgba(0, 0, 0, 0.0980392) 1px 1px 5px; color: #666666; font-family: 'Trebuchet MS', Trebuchet, Verdana, sans-serif; font-size: 13.2px; line-height: 18.48px; margin-left: auto; margin-right: auto; padding: 5px; position: relative; text-align: center;"><tbody>
<tr><td><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigvieEK0lWZbpyb2tcu6zA3XcvNTCRt8VhgI8VPmaMKyjqri5mRna2lZqkEiY6JtJa5yjE4Msut9iRUycZSW7toZwCwNn_rL9uskX29wjWvEIpRdrTh27WKKtUKUginindRIXDQz7fnkk/s1600/11374191_906400582759050_1466625278_n.jpg" imageanchor="1" style="color: #888888; margin-left: auto; margin-right: auto; text-decoration: none;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigvieEK0lWZbpyb2tcu6zA3XcvNTCRt8VhgI8VPmaMKyjqri5mRna2lZqkEiY6JtJa5yjE4Msut9iRUycZSW7toZwCwNn_rL9uskX29wjWvEIpRdrTh27WKKtUKUginindRIXDQz7fnkk/s400/11374191_906400582759050_1466625278_n.jpg" style="background: transparent; border: none; box-shadow: rgba(0, 0, 0, 0.0980392) 0px 0px 0px; padding: 0px; position: relative;" width="398" /></a></td></tr>
<tr><td class="tr-caption" style="font-size: 10.56px;"><span style="font-size: x-small; text-align: start;">Pga. dårlig støtte for ESP8266 og OLED måtte jeg teste flere biblioteker<br />før jeg fant ett som fungerte ( </span><a href="https://github.com/squix78/esp8266-oled-ssd1306" style="color: #888888; font-size: medium; text-align: start; text-decoration: none;">https://github.com/squix78/esp8266-oled-ssd1306</a><span style="font-size: x-small; text-align: start;"> ).</span></td></tr>
</tbody></table>
<span style="background-color: white; color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: 13.2px; line-height: 18.48px;">Det biblioteket lekte jeg litt med, blant annt tok jeg min thingspeak kode og la inn OLED-biblioteket. Det fungerte for det meste fint. Jeg måtte så pause alt av Arduino en stund pga. jeg ikke hadde tid (eller fritid). Men to ting jeg har laget som tok relativt liten innsats:</span><br />
<h3 style="background-color: white; color: #666666; font-family: 'Trebuchet MS', Trebuchet, Verdana, sans-serif; margin: 0px; position: relative;">
<b>1. Arduino parkeringssensor (ultrasonisk sensor)</b></h3>
<br style="background-color: white; color: #666666; font-family: 'Trebuchet MS', Trebuchet, Verdana, sans-serif; font-size: 13.2px; line-height: 18.48px;" />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="background: rgb(255, 255, 255); border: 1px solid rgb(238, 238, 238); box-shadow: rgba(0, 0, 0, 0.0980392) 1px 1px 5px; color: #666666; font-family: 'Trebuchet MS', Trebuchet, Verdana, sans-serif; font-size: 13.2px; line-height: 18.48px; margin-left: auto; margin-right: auto; padding: 5px; position: relative; text-align: center;"><tbody>
<tr><td><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQWYgckbjnyGNDdakChxvD4KjT8vuPXhAgCFQ0Zfu0pTJtTu1tJOADNAaAXG0lqIma7afZrY2emHKk9ajqg1etN2-35OaQ73UNBQoNEiJvYtARRULuQcH8UzwmY1ETlZIwl_2KXdMDKD4/s1600/11875459_970544606322858_1483812336_n.jpg" imageanchor="1" style="clear: right; color: #888888; margin-bottom: 1em; margin-left: auto; margin-right: auto; text-decoration: none;"><img border="0" height="397" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQWYgckbjnyGNDdakChxvD4KjT8vuPXhAgCFQ0Zfu0pTJtTu1tJOADNAaAXG0lqIma7afZrY2emHKk9ajqg1etN2-35OaQ73UNBQoNEiJvYtARRULuQcH8UzwmY1ETlZIwl_2KXdMDKD4/s400/11875459_970544606322858_1483812336_n.jpg" style="background: transparent; border: none; box-shadow: rgba(0, 0, 0, 0.0980392) 0px 0px 0px; padding: 0px; position: relative;" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="font-size: 10.56px;">Første prototype på avstandssensor<br />
tallet er centimeter unna objekt</td></tr>
</tbody></table>
<span style="background-color: white; color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: 13.2px; line-height: 18.48px;">Avstandssensoren kan man lese om her: </span><a href="https://www.arduino.cc/en/Tutorial/Ping" style="background-color: white; color: #888888; font-family: 'Trebuchet MS', Trebuchet, Verdana, sans-serif; font-size: 13.2px; line-height: 18.48px; text-decoration: none;">https://www.arduino.cc/en/Tutorial/Ping</a><br />
<br style="background-color: white; color: #666666; font-family: 'Trebuchet MS', Trebuchet, Verdana, sans-serif; font-size: 13.2px; line-height: 18.48px;" />
<span style="background-color: white; color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: 13.2px; line-height: 18.48px;">Min sensor har fire pins, en dedikert for sending av ultrasonisk lyd og en pin dedikert for lesing. Men i praksis gjør min kode det samme som den der, i tillegg til OLED-visning.</span><br />
<br />
<blockquote class="instagram-media" data-instgrm-captioned data-instgrm-version="6" style=" background:#FFF; border:0; border-radius:3px; box-shadow:0 0 1px 0 rgba(0,0,0,0.5),0 1px 10px 0 rgba(0,0,0,0.15); margin: 1px; max-width:658px; padding:0; width:99.375%; width:-webkit-calc(100% - 2px); width:calc(100% - 2px);"><div style="padding:8px;"> <div style=" background:#F8F8F8; line-height:0; margin-top:40px; padding:50.0% 0; text-align:center; width:100%;"> <div style=" background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAMAAAApWqozAAAAGFBMVEUiIiI9PT0eHh4gIB4hIBkcHBwcHBwcHBydr+JQAAAACHRSTlMABA4YHyQsM5jtaMwAAADfSURBVDjL7ZVBEgMhCAQBAf//42xcNbpAqakcM0ftUmFAAIBE81IqBJdS3lS6zs3bIpB9WED3YYXFPmHRfT8sgyrCP1x8uEUxLMzNWElFOYCV6mHWWwMzdPEKHlhLw7NWJqkHc4uIZphavDzA2JPzUDsBZziNae2S6owH8xPmX8G7zzgKEOPUoYHvGz1TBCxMkd3kwNVbU0gKHkx+iZILf77IofhrY1nYFnB/lQPb79drWOyJVa/DAvg9B/rLB4cC+Nqgdz/TvBbBnr6GBReqn/nRmDgaQEej7WhonozjF+Y2I/fZou/qAAAAAElFTkSuQmCC); display:block; height:44px; margin:0 auto -44px; position:relative; top:-22px; width:44px;"></div></div> <p style=" margin:8px 0 0 0; padding:0 4px;"> <a href="https://www.instagram.com/p/-j_faHRO_K/" style=" color:#000; font-family:Arial,sans-serif; font-size:14px; font-style:normal; font-weight:normal; line-height:17px; text-decoration:none; word-wrap:break-word;" target="_blank">#Arduino #oled #distance</a></p> <p style=" color:#c9c8cd; font-family:Arial,sans-serif; font-size:14px; line-height:17px; margin-bottom:0; margin-top:8px; overflow:hidden; padding:8px 0 7px; text-align:center; text-overflow:ellipsis; white-space:nowrap;">En video publisert av @olavxxx <time style=" font-family:Arial,sans-serif; font-size:14px; line-height:17px;" datetime="2015-11-26T21:01:40+00:00">torsdag 26. Nov.. 2015 PST</time></p></div></blockquote>
<script async defer src="//platform.instagram.com/en_US/embeds.js"></script>
<h3 style="background-color: white; color: #666666; font-family: 'Trebuchet MS', Trebuchet, Verdana, sans-serif; margin: 0px; position: relative;">
<b>2. Arduino lydmåler</b></h3>
<span style="background-color: white; color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: 13.2px; line-height: 18.48px;">Arduino lydmåleren var litt værre, men etter jeg har fått det til er det ikke så vanskelig det heller.</span><br />
<span style="background-color: white; color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: 13.2px; line-height: 18.48px;">Problemet med lydmåleren er at den i utgangspunktet ser ut til å ikke virke. Folk på det store Internettet påstår også den har veldig lav følsomhet. Det er nok på grunn av at de ikke har skjønt hvordan den virker.</span><br />
<br style="background-color: white; color: #666666; font-family: 'Trebuchet MS', Trebuchet, Verdana, sans-serif; font-size: 13.2px; line-height: 18.48px;" />
<span style="background-color: white; color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: 13.2px; line-height: 18.48px;">Det første man må gjøre som alt annet, er å skjønne hvordan det henger sammen og hvorfor det virker (eller ikke virker). Dette er jo vanlige problemstillinger for IT-folk :-P</span><br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="background: rgb(255, 255, 255); border: 1px solid rgb(238, 238, 238); box-shadow: rgba(0, 0, 0, 0.0980392) 1px 1px 5px; color: #666666; font-family: 'Trebuchet MS', Trebuchet, Verdana, sans-serif; font-size: 13.2px; line-height: 18.48px; margin-left: auto; margin-right: auto; padding: 5px; position: relative; text-align: center;"><tbody>
<tr><td><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjg3ID0ry37v3wweKf6dgevkfKm-1zoX2nGF7ffoZcyjgxAaGpz7PSDaCCqEE70-KsIjAiY8YPp7O-GkEGLG95jwYIC0hH_qw68_j25xBnWJ4lAuKOyPKr7JfiOzrgsuENMsraejcHIX2w/s1600/12317401_142787859417384_2134918504_n.jpg" imageanchor="1" style="color: #888888; margin-left: auto; margin-right: auto; text-decoration: none;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjg3ID0ry37v3wweKf6dgevkfKm-1zoX2nGF7ffoZcyjgxAaGpz7PSDaCCqEE70-KsIjAiY8YPp7O-GkEGLG95jwYIC0hH_qw68_j25xBnWJ4lAuKOyPKr7JfiOzrgsuENMsraejcHIX2w/s320/12317401_142787859417384_2134918504_n.jpg" style="background: transparent; border: none; box-shadow: rgba(0, 0, 0, 0.0980392) 0px 0px 0px; padding: 0px; position: relative;" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="font-size: 10.56px;">Fire mikrofoner, men den ene mangler 2903 SMD-chippen...<br />
Kina skylder meg en 2903 SMD-chip.</td></tr>
</tbody></table>
<br style="background-color: white; color: #666666; font-family: 'Trebuchet MS', Trebuchet, Verdana, sans-serif; font-size: 13.2px; line-height: 18.48px;" />
<span style="background-color: white; color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: 13.2px; line-height: 18.48px;">Jeg kjøpte fire mikrofoner for mikrokontrollere på aliexpress, som vanlig fulgte det ikke med manualer eller koblingsskjemaer, heller ei kabler. Men man vet jo at det skal ha spenning og jord, i tillegg vet man jo at digital er 1 eller 0 og analog er 0-X. Jeg sier der X på grunn av at analog er en variabel verdi som avhenger av innverdien. Mikrofonen støtter både 3.3V og 5V, men 5V vil jo gi høyere tall ut.</span><br />
<br style="background-color: white; color: #666666; font-family: 'Trebuchet MS', Trebuchet, Verdana, sans-serif; font-size: 13.2px; line-height: 18.48px;" />
<span style="background-color: white; color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: 13.2px; line-height: 18.48px;">Når man kobler det opp og leser ut digital verdi får man 1 eller 0, men det er ikke alt. Man kan (og må) kalibrere mikrofonen. Når man gir mikrofonen strøm og jord, lyser det opp to leds:</span><br />
<br />
<ul style="background-color: white; color: #666666; font-family: 'Trebuchet MS', Trebuchet, Verdana, sans-serif; font-size: 13.2px; line-height: 18.48px; margin: 0.5em 0px; padding: 0px 2.5em;">
<li style="margin: 0px 0px 0.25em; padding: 0px;">Strømindikator</li>
<li style="margin: 0px 0px 0.25em; padding: 0px;">Lydindikator (deteksjon)</li>
</ul>
<div style="background-color: white; color: #666666; font-family: 'Trebuchet MS', Trebuchet, Verdana, sans-serif; font-size: 13.2px; line-height: 18.48px;">
Det man må gjøre er å skru og skru, det tar litt tid.. Rotary switch heter dette. Man må skru helt til lyset forsvinner, man skal bare så vidt skru seg dit. Dette må man gjøre i et rom med "vanlig" lydnivå, uten tale, musikk, tv osv. (ingen bakgrunnstøy). Når det er gjort, kan man teste å klappe, plystre eller noe. Da skal det blinke forsiktig i den ene led mens den andre fortsetter å lyse konstant som alltid.</div>
<div style="background-color: white; color: #666666; font-family: 'Trebuchet MS', Trebuchet, Verdana, sans-serif; font-size: 13.2px; line-height: 18.48px;">
<br /></div>
<div style="background-color: white; color: #666666; font-family: 'Trebuchet MS', Trebuchet, Verdana, sans-serif; font-size: 13.2px; line-height: 18.48px;">
Når man har kalibrert mikrofonen vil man i praksis ha invertert det digitale signalet. Det har ikke noe å si i praksis, men man kan bruke det digitale signalet til å detektere klapp, knipsing eller annet. Kanskje man vil lage en "secret knock" som låser opp døren eller en mikrofon som skrur ned tvlyden hvis den går over et visst nivå? Det er jo uendelig med muligheter her og fantasien setter forsåvidt grensen.</div>
<div style="background-color: white; color: #666666; font-family: 'Trebuchet MS', Trebuchet, Verdana, sans-serif; font-size: 13.2px; line-height: 18.48px;">
<br /></div>
<div style="background-color: white; color: #666666; font-family: 'Trebuchet MS', Trebuchet, Verdana, sans-serif; font-size: 13.2px; line-height: 18.48px;">
Mikrofonen i seg selv gir da enten 1 eller 0 på digital, men analog gir som sagt X verdi fra 0. I praksis gir den aldri 0, den har en "baseline" som vil variere etter hvor mye bakgrunnstøy man har i rommet. Dette vil i praksis være den verdien man har når man tar å gjør om kalibrert mikrofon til spenning med formelen:</div>
<div style="background-color: white; color: #666666; font-family: 'Trebuchet MS', Trebuchet, Verdana, sans-serif; font-size: 13.2px; line-height: 18.48px;">
<br /></div>
<blockquote class="tr_bq" style="background-color: white; color: #666666; font-family: 'Trebuchet MS', Trebuchet, Verdana, sans-serif; font-size: 13.2px; line-height: 18.48px;">
volts = (lestAnalogVerdi * innSpenning ) / 1024</blockquote>
<span style="background-color: white; color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: 13.2px; line-height: 18.48px;">Jeg valgte å bruke 3.3V på grunn av at den har mindre støy enn 5V. Men dette gir uansett ut et tall etter kalibrering, uten at man lager noen lyder. Tallet er nok veldig lavt, kanskje 0.08. Dette vil jo være "baseline" som man må si er et referanse nullpunkt.</span><br />
<br style="background-color: white; color: #666666; font-family: 'Trebuchet MS', Trebuchet, Verdana, sans-serif; font-size: 13.2px; line-height: 18.48px;" />
<span style="background-color: white; color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: 13.2px; line-height: 18.48px;">Da tar man for eksempel å ganger dette opp for grafisk visning:</span><br />
<blockquote class="tr_bq" style="background-color: white; color: #666666; font-family: 'Trebuchet MS', Trebuchet, Verdana, sans-serif; font-size: 13.2px; line-height: 18.48px;">
double dspval = ((volts-0.07) * 1024) ;</blockquote>
<span style="background-color: white; color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: 13.2px; line-height: 18.48px;">Jeg trakk der vekk 0.07 som var min kalibrerte baseline, det vil nok være avvik basert på bakgrunnslyder, mikrofon osv. Samt man justerer på en skrue når man kalibrerer, så tallet vil ikke være statisk. Trikset er å skrive ut verdien i console og se hvilken minimumsverdi man får.</span><br />
<br style="background-color: white; color: #666666; font-family: 'Trebuchet MS', Trebuchet, Verdana, sans-serif; font-size: 13.2px; line-height: 18.48px;" />
<span style="background-color: white; color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: 13.2px; line-height: 18.48px;">Egentlig burde jeg endre koden min til å ha en "baseline" som en variabel, bare ta vare på laveste verdien og bruke den til å filtrere ut. Det vil jo bety at jeg må ha en måte å rekalibrere, en knapp eller noe.. ("calibrate"). Det er jo ganske enkelt, så lenge knappen holdes inne, kan den lese av lydnivået og lagre laveste nivået den får. Deretter bruker man det som referansenullpunktet.</span><br />
<br style="background-color: white; color: #666666; font-family: 'Trebuchet MS', Trebuchet, Verdana, sans-serif; font-size: 13.2px; line-height: 18.48px;" />
<span style="background-color: white; color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: 13.2px; line-height: 18.48px;">Det tror jeg at jeg må lage en dag jeg har tid :-) Men det blir sikkert ikke i Desember.</span><br />
<span style="background-color: white; color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: 13.2px; line-height: 18.48px;">Når det er sagt, så tar jeg jo bare da denne verdien og skriver den til OLEDen. Da bruker jeg funksjoner som fins i </span><a href="https://github.com/olikraus/u8glib/wiki" style="background-color: white; color: #888888; font-family: 'Trebuchet MS', Trebuchet, Verdana, sans-serif; font-size: 13.2px; line-height: 18.48px; text-decoration: none;" target="_blank">u8glib biblioteket</a><span style="background-color: white; color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: 13.2px; line-height: 18.48px;">.</span><br />
<br style="background-color: white; color: #666666; font-family: 'Trebuchet MS', Trebuchet, Verdana, sans-serif; font-size: 13.2px; line-height: 18.48px;" />
<span style="background-color: white; color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: 13.2px; line-height: 18.48px;">EKsempel på den grafiske "speedometer"-nålen:</span><br />
<blockquote class="tr_bq" style="background-color: white; color: #666666; font-family: 'Trebuchet MS', Trebuchet, Verdana, sans-serif; font-size: 13.2px; line-height: 18.48px;">
u8g.drawLine(0+dataverdien, 32, 64, 64);</blockquote>
<span style="background-color: white; color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: 13.2px; line-height: 18.48px;">Jeg har da en metode som får inn verdien som skrives i tekst i øvre delen av skjermen, samt jeg har da denne "speedometernålen" som bruker samme inndataverdi.</span><br />
<br style="background-color: white; color: #666666; font-family: 'Trebuchet MS', Trebuchet, Verdana, sans-serif; font-size: 13.2px; line-height: 18.48px;" />
<span style="background-color: white; color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: 13.2px; line-height: 18.48px;">Det jeg har tenkt at jeg burde lage, var en sanntidsgraf, det er jo ganske enkelt egentlig. Jeg kan jo ikke holde for mye data i en mikrokontroller, men det er jo et 128x64 piksel display, hvor jeg dedikerer 128x32 til tekst og 128x32 til grafen. Men i praksis er det ikke heniktsmessig med 32 datapunkter på grunn av at 1 piksel brede datapunkter blir kanskje litt kornete grafikk. Derfor ser jeg for meg at jeg kan fylle en matrise på kanskje 16 eller kanskje så lite som 8. Med 8 blir det jo 32/8 = 4 piksler bredde som kan gi en "fin bakke" mellom punkter på den lille skjermen.</span><br />
<br style="background-color: white; color: #666666; font-family: 'Trebuchet MS', Trebuchet, Verdana, sans-serif; font-size: 13.2px; line-height: 18.48px;" />
<span style="background-color: white; color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: 13.2px; line-height: 18.48px;">Jeg har uansett ikke komemt i gang med det enda, er bare en tanke jeg har i hodet :-P Men hvis jeg lager den graf-funksjonen, kan jeg jo bruke den til andre ting også. Miljøstasjonen kan jo vise svevestøv, temperatur, fukt osv.</span><br />
<br style="background-color: white; color: #666666; font-family: 'Trebuchet MS', Trebuchet, Verdana, sans-serif; font-size: 13.2px; line-height: 18.48px;" />
<span style="background-color: white; color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: 13.2px; line-height: 18.48px;">Her er lydmåleren i praksis i en hverdagslig test:</span><br />
<div class="separator" style="background-color: white; clear: both; color: #666666; font-family: 'Trebuchet MS', Trebuchet, Verdana, sans-serif; font-size: 13.2px; line-height: 18.48px; text-align: center;">
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/8TpcrWkwH7E/0.jpg" frameborder="0" height="266" src="https://www.youtube.com/embed/8TpcrWkwH7E?feature=player_embedded" width="320"></iframe></div>Olav Alexander Mjeldehttp://www.blogger.com/profile/03340652303841762228noreply@blogger.com0tag:blogger.com,1999:blog-185064607024105803.post-35287813736334929932015-11-05T23:18:00.001+01:002015-11-05T23:25:51.464+01:00NodeMcu + Arduino IDE + Thingspeak = Sant<h3 style="clear: both; text-align: left;">
WOHOO, NANANANANANANANNAA!</h3>
<div class="separator" style="clear: both; text-align: left;">
Det er ikke første gang jeg sender til det store Internettet fra en mikrokontroller, det gjorde jeg først med en Arduino koblet mot en Rasberry Pi 2 gjennom en trådløs seriell bro. På RPIen kjrøte da pythonscript som sendte videre data.<br /><br />Hele mikrokontrollergamet ble jeg kjent med gjennom <a href="http://www.friskby.no/">www.friskby.no</a>, men jeg har jo som alltid den utforskende egenskapen som jeg er kjent for å ha :-P Derfor må jeg teste alt mulig rart!</div>
<br />
Hvor minimalistisk er ikke en NodeMCU med Arduino IDE, kodet opp til å sende rett til thingspeak.com? En alt-i-ett enhet! (med unntak av sensorer)<br />
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqdie9TKiRBK6p1lpc3Oy0e2sKaQ-6uUoh2wjTxyBuwt3U2uVVsTu-lK2HbmnloIhEwSWxFwRn8_7gRk26Rn0JyNxpkaAvNF2mTH-5Zkbwc7ElCnGgHivZgo1_ycArOdSlnHiZ50Nwmr0/s1600/aint+no+thang+but+a+chicken+wang.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="287" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqdie9TKiRBK6p1lpc3Oy0e2sKaQ-6uUoh2wjTxyBuwt3U2uVVsTu-lK2HbmnloIhEwSWxFwRn8_7gRk26Rn0JyNxpkaAvNF2mTH-5Zkbwc7ElCnGgHivZgo1_ycArOdSlnHiZ50Nwmr0/s400/aint+no+thang+but+a+chicken+wang.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Jeg tok en bacon på bildet for å illustrere hvor godt dette virker.</td></tr>
</tbody></table>
<br />
<br />
<br />
Jeg kjører nå DHT22 rett inn i thingspeak :-) Se gjerne beviset her: <a href="https://thingspeak.com/channels/64263">https://thingspeak.com/channels/64263</a><br />
<br />
Alternativt kan de late bare beskue bildet mitt:<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwsNJBVJGJwOINDSKD22JbhDcW4PuSzM5vF-bOa9RSWdsneNpw8-baTbSdIjZ8W2XRa_4iBaH-QMiAYriSYmxNbTWU0vKKpoMyZvnOE9uzVjEos7HJstTifLD1MX8iJ6SfJhSIsB0P3v4/s1600/thingspeak.PNG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwsNJBVJGJwOINDSKD22JbhDcW4PuSzM5vF-bOa9RSWdsneNpw8-baTbSdIjZ8W2XRa_4iBaH-QMiAYriSYmxNbTWU0vKKpoMyZvnOE9uzVjEos7HJstTifLD1MX8iJ6SfJhSIsB0P3v4/s640/thingspeak.PNG" width="436" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">ESP8266 er dårlig navn på sensoren, jeg må nok lage en kanal per sensor og navngi<br />
kanalene etter sensortype. Det er vel mer naturlig enn å navngi mikrokontrolleren :P</td></tr>
</tbody></table>
<br />Olav Alexander Mjeldehttp://www.blogger.com/profile/03340652303841762228noreply@blogger.com0tag:blogger.com,1999:blog-185064607024105803.post-28290661417108876622015-11-05T22:06:00.000+01:002015-11-05T22:08:07.328+01:00Komme i gang med Arduino IDE sammen med NodeMCUMitt blogginnlegg om å komme i gang med NodeMCU hadde jeg trodd skulle fortsatt med koding i <a href="http://www.lua.org/" target="_blank">LUA-script</a>. Men det var ikke så bra å kode i det språket. Jeg vurderte å teste <a href="http://espressif.com/en/products/esp8266/" target="_blank">Expressif</a> også, men til syvende og sist fant jeg ut at jeg skulle teste Arduino IDE sammen med NodeMCU.<br />
<br />
Årsaken for at jeg fant ut at jeg måtte gå videre var:<br />
<br />
<ul>
<li>Merkelige feil i de få bibliotekene som eksisterer</li>
<li>Ikke like mange biblioteker som Arduino har</li>
</ul>
<div>
Det er egentlig ikke så "alvorlige" feil, men det er jo feil som gjør at man river seg i hodet.</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div>
Jeg prøvde til og med å gå over på <a href="https://github.com/nodemcu/nodemcu-firmware/releases" target="_blank">DEV-firmware</a>, men det hjalp ikke. Jeg kom meg litt videre, men fikk bare nye feil og merkeligheter :-P</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVoF6pzwLYoAH58EdTTM6Rtl53OtKcyeRiR40-uKaunmJZyZXlhlGcgbcLywthYLHZ6IPSEeV_kkJ6KsRMSuMmjFufM5uXFFKGdF59Sfsvc7P_bFusaVMXbHTHOt82noZwlSItCPslbxg/s1600/nodemcu_flash2.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="191" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVoF6pzwLYoAH58EdTTM6Rtl53OtKcyeRiR40-uKaunmJZyZXlhlGcgbcLywthYLHZ6IPSEeV_kkJ6KsRMSuMmjFufM5uXFFKGdF59Sfsvc7P_bFusaVMXbHTHOt82noZwlSItCPslbxg/s320/nodemcu_flash2.PNG" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div>
<br /></div>
<h3>
Fremgangsmåte for å få NodeMCU DEV V2 til å virke i Arduino IDE</h3>
<div>
Først åpner du <a href="https://github.com/esp8266/Arduino" target="_blank">github / esp8266 / Arduino</a> og kopier stien til board manager. Per i dag er den:<br />
<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; color: #333333; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">http://arduino.esp8266.com/stable/package_esp8266com_index.json</code><span style="background-color: white; color: #333333; font-family: "helvetica neue" , "helvetica" , "segoe ui" , "arial" , "freesans" , sans-serif , "segoe ui emoji" , "segoe ui symbol"; font-size: 16px; line-height: 25.6px;"> , denne må legges inn i File>Preferences>Additional boards manager URL.</span></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiq68UIinyddFWnRVKulYUo_B23UIJFkEsCXUOYPurv9ELcKsmyGpq_q292vgODvUggjD7FO702-6gBQgFjDe8w8G4pXALe9Okh0TKRPfGr65D_NU1FRoV0nvWgpfQe6JmfNgk5OytcLb8/s1600/boards-manager.PNG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="211" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiq68UIinyddFWnRVKulYUo_B23UIJFkEsCXUOYPurv9ELcKsmyGpq_q292vgODvUggjD7FO702-6gBQgFjDe8w8G4pXALe9Okh0TKRPfGr65D_NU1FRoV0nvWgpfQe6JmfNgk5OytcLb8/s320/boards-manager.PNG" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Her ser man boards manager med stien.</td></tr>
</tbody></table>
<br />
Når dette er gjort, tar man å trykker OK.<br />
<div>
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRnLpLp8gC70-7NQE909x8U-8u3XkN_-nRCsPcj-lv0Ft2EB_hBISIJeBUapPpZOMqDEx2yarmD8i9bK_EebbUwWFYavo9A5kXaoy5RQaWR_CppF_deMvmtMcThYX1ZY4x7l9UhukR8GM/s1600/esp8266+arduino.PNG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="181" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRnLpLp8gC70-7NQE909x8U-8u3XkN_-nRCsPcj-lv0Ft2EB_hBISIJeBUapPpZOMqDEx2yarmD8i9bK_EebbUwWFYavo9A5kXaoy5RQaWR_CppF_deMvmtMcThYX1ZY4x7l9UhukR8GM/s320/esp8266+arduino.PNG" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Søk etter ESP i Tools > Board > Boards manager, velg<br />
så installer.</td></tr>
</tbody></table>
<div>
<br /></div>
<div>
Når den er ferdig, slår du av Arduino IDE. Slå deretter på Arduino IDE, velg Tools> Board > NodeMcu V1 (ESP12E Module). Deretter tar du Tools > Programmer > "USBasp".<br />
<br />
Nå kan du se om det virker, ta File > Example > DHT Sensor Library > DHT Tester.<br />
Hold inne knappen "FLASH" på NodeMCU mens du laster opp fra Arduino IDE.<br />
<br />
Hvis du får feilmelding med:</div>
<div>
<blockquote class="tr_bq">
packages/esp8266/tools/xtensa-lx106-elf-gcc</blockquote>
Da må du laste ned en fil manuelt, se: <a href="https://github.com/esp8266/Arduino/issues/612">https://github.com/esp8266/Arduino/issues/612</a>.<br />
På windows vil du <a href="https://files.gitter.im/esp8266/Arduino/Abqa/libm.a.tbz" target="_blank">laste ned libm.a</a> og legge den inn i:<br />
<div>
</div>
</div>
<div>
C:\Users\<b>DITTBRUKERNAVN</b>\AppData\Roaming\Arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9\xtensa-lx106-elf\lib<br />
<br />
NB! Filen er pakket (to ganger), den kan pakkes ut med 7-zip.</div>
<div>
<br /></div>
<div>
Slå nå av Arduino IDE og slå den på igjen.<br />
Prøv igjen å laste opp kode samtidig som at du holder inne "FLASH".<br />
<br />
Hvis du nå har ingen problemer, er det tid for kaffe. Hvis ikke, må du mest sannsynlig legge inn følgende i boards.txt:</div>
<div>
<a href="https://gist.github.com/andysmithfal/c8d08898ee6ef146355c">https://gist.github.com/andysmithfal/c8d08898ee6ef146355c</a></div>
<div>
<br /></div>
<div>
I Windows må du først åpne for eksempel notepad++ som administrator, deretter åpne filen, legge det inn på bunnen og lagre. Deretter restarter du Arduino IDE nok en gang og prøver igjen.<br />
<br />
Nå bør det virke :-) Hvis ikke, må du selge PCen din på finn.</div>
<div>
<br /></div>
<h3>
Last opp din første kode på NodeMCU med Arduino IDE!</h3>
<div>
. </div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9Q4iTRTIRWe4Tcy07NcnNmsKn7XW-0gNnZE4B2zHLy8cIV3ViNSC-GTNDeNRnfpwihIf49YwtSeHT7AFTboqtexjHgw0JZREs7wieUlT3PvRDXLZbxmK3iYmUcWk8KnDEXURRfuUqzPw/s1600/dhttester.PNG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9Q4iTRTIRWe4Tcy07NcnNmsKn7XW-0gNnZE4B2zHLy8cIV3ViNSC-GTNDeNRnfpwihIf49YwtSeHT7AFTboqtexjHgw0JZREs7wieUlT3PvRDXLZbxmK3iYmUcWk8KnDEXURRfuUqzPw/s320/dhttester.PNG" width="271" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-size: small; text-align: start;">Etter feilsøkingen ovenfor kan du laste opp din første kode, <br />hold inne flash-knappen på NodeMCU og trykk på last opp i Arduino IDE</span></td></tr>
</tbody></table>
<br />
Nå kan du åpne konsollet (Tools>Serial Monitor). Følg med på magien:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2lDAJuZlCTkW8aLy3Qs0WfHSkmj1gKF68x-WaHRIoIQbDWGKlarszN-_GhL0hUYMcq1Pn747terh5lnvH6K3HM_B4DUg4l2D17kVpaB9-S9sIrpveANBM9t_U0OWSUU6bkNIA-9VsY9k/s1600/dht22_console.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="264" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2lDAJuZlCTkW8aLy3Qs0WfHSkmj1gKF68x-WaHRIoIQbDWGKlarszN-_GhL0hUYMcq1Pn747terh5lnvH6K3HM_B4DUg4l2D17kVpaB9-S9sIrpveANBM9t_U0OWSUU6bkNIA-9VsY9k/s320/dht22_console.PNG" width="320" /></a></div>
<div>
<br /></div>
<div>
For at du skal få opp noe her, må du jo nødvendigvis ha en DHT22 eller en DHT11 sensor, samt du må velge riktig sensortype i koden og koble den riktig opp på NodeMCU. Jeg brukte DHT22 laget for Arduino (shield), den skal ha +5V, Jord og en IO-port. Jeg koblet jord på GND, +5V på SD2 og D4 brukte jeg som IO-pin.</div>
Olav Alexander Mjeldehttp://www.blogger.com/profile/03340652303841762228noreply@blogger.com0tag:blogger.com,1999:blog-185064607024105803.post-74842773926587217632015-11-05T17:47:00.000+01:002015-12-07T20:50:56.924+01:00Komme i gang med NodeMCUNår du har kjøpt din egen NodeMCU eller lånt en av en venn, kan du endelig komme i gang.<br />
Spørsmålet du kanskje da har, er hvordan du kommer i gang.. Hva er de første stegene?<br />
<br />
Jeg har derfor laget en liten guide her, jeg har prøvd å holde den lettfattelig med illustrasjoner og forklaringer. Etter denne guiden er på plass, kommer jeg mest sannsynlig til å lage noe i praksis.<br />
<br />
Den første guiden handler bare om å få på plass det basiske: kommunikasjon mellom deg og NodeMCU og oppkobling mellom NodeMCU og ditt nettverk. I god tradisjon vil jeg også oppgradere firmware (fastvare) på NodeMCU før jeg starter.<br />
<br />
Guiden min tar for seg at du har kjøpt en NodeMCU med innebygget USB-kontroller, hvis det ikke er tilfelle må du nesten ha en FTDI->USB adapter og koble rx>tx og tx>rx.. Men nok småpreik, jeg gjør resten av guiden gjennom bilder :-)<br />
<br />
Guiden vil være ca tilsvarende for Windows, OSX, Ubuntu og andre operativsystemer.<br />
<br />
<h3>
<span style="font-weight: normal;">Kom i gang</span></h3>
Det aller første du gjør, er å gå inn på <a href="https://github.com/nodemcu/nodemcu-firmware" target="_blank">github/nodemcu</a><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1hPnbxuLJim5NAw7M7NeacxxJK73vkDN6UGmJ9fmkQvQFETAp4wyvLx6U-SyvP4MIQ51uGDGFe2p_jzRcMdCHMzGr1Ugq3Nr6oEGybakO0xzncdzqaJpIC7uGyEFEEufZJ5VT2bQdh7A/s1600/nodemcu1.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1hPnbxuLJim5NAw7M7NeacxxJK73vkDN6UGmJ9fmkQvQFETAp4wyvLx6U-SyvP4MIQ51uGDGFe2p_jzRcMdCHMzGr1Ugq3Nr6oEGybakO0xzncdzqaJpIC7uGyEFEEufZJ5VT2bQdh7A/s320/nodemcu1.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Først kobler du NodeMCU med en MicroUSB kabel til din PC</td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjg2-8NMZYfvmKBETjYNV81iDpF0Pw5y8GRNbPgNf-opPHw3hkIkGumbj5ag4xbQzutdvz5gX4ahDA2lIxgIlnnqTTkBI_iXJLzbTait7LXShu0RX259SjJSG7ATigOISvlnI9alI1FuQI/s1600/flash.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="186" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjg2-8NMZYfvmKBETjYNV81iDpF0Pw5y8GRNbPgNf-opPHw3hkIkGumbj5ag4xbQzutdvz5gX4ahDA2lIxgIlnnqTTkBI_iXJLzbTait7LXShu0RX259SjJSG7ATigOISvlnI9alI1FuQI/s320/flash.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-size: small; text-align: start;">Programmet lastes ned og kjøres.<br />Du trykker egentlig bare "flash".<br />Du finner det på </span><a href="https://github.com/nodemcu/nodemcu-flasher" style="font-size: medium; text-align: start;" target="_blank">github / nodemcu-flasher</a></td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjq_GvRuSxrHPZ9e3scTvaptY7S5NqliF3CsNFqxMSxepGda45OISBgoFuWBPNJMXnJt4ouJLpExPNi9zHCM6FjNpeWgkGVzwppY1PoPsQZoD08y1PXMHpRKKxBwmxjEHiF4Kyp2Ehneh8/s1600/koble-til-nodemcu.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="264" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjq_GvRuSxrHPZ9e3scTvaptY7S5NqliF3CsNFqxMSxepGda45OISBgoFuWBPNJMXnJt4ouJLpExPNi9zHCM6FjNpeWgkGVzwppY1PoPsQZoD08y1PXMHpRKKxBwmxjEHiF4Kyp2Ehneh8/s320/koble-til-nodemcu.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Deretter må du inn å finne comport (jeg hadde COM6) som<br />
NodeMCU viser deg. I dette eksempelet bruker jeg <a href="http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html" target="_blank">putty</a>.<br />
Velg Serial i radiobutton til høyre, fyll inn riktig tall for COM-port.<br />
Baud må mest sannsynlig stå på 9600.</td></tr>
</tbody></table>
<br />
Når de to stegene ovenfor er gjort, har du følgende kommandoer du kan skrive inn i putty:<br />
<blockquote class="tr_bq">
wifi.setmode(wifi.STATION)<br />
wifi.sta.config("minWiFiSSID","MittWiFiPassord")</blockquote>
Deretter sjekker du at du fikk en ip-adresse av din router:<br />
<blockquote class="tr_bq">
print(wifi.sta.getip())</blockquote>
<div>
Du bør få ut:</div>
<div>
<ip adresse> <nettmaske> <gateway></div>
<div>
<br />
Så enkelt var det!<br />
<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYS6BFBuPEmAE3k16CVY-uIk2gxQW2h2BP2DQHum91-P4YxSkKNnOhIanmqyPWaH98s6ght4YHOKavfDtIsYLAP5k9q83OIPqMD7MY13oUCiXxctTA4SQ8vF2hD3CGnJN3D0VkD3MK-sg/s1600/nodemcu2.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYS6BFBuPEmAE3k16CVY-uIk2gxQW2h2BP2DQHum91-P4YxSkKNnOhIanmqyPWaH98s6ght4YHOKavfDtIsYLAP5k9q83OIPqMD7MY13oUCiXxctTA4SQ8vF2hD3CGnJN3D0VkD3MK-sg/s320/nodemcu2.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-size: small; text-align: start;">Heartbeat ("hjerteslag") fra WiFi-koblingen vises <br />i form av en liten blinkende LED.</span></td></tr>
</tbody></table>
<br />
<br />
NB! Pro tip:<br />
Hvis du synes Putty er vanskelig og har erfaring med Arduino IDE, er det ingen ting som tilsier at du ikke kan bruke Arduino IDE sammen med NodeMCU. Du starter i så fall Arduino, velger COM-port og åpner konsollet. Sett NL + CR som linjeendelse nede i høyre hjørnet.</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqlLwl4tvOzRd0LxRXzPL0huTDDkCADm7AyUP4VhFySEV8UuK6m4ilQvsxHVpmop07nKX1Kmd67-oke_3L7eOLagQBRsXsBVvWNZU4bjutlyOyc-E99ZsZVT_Jr_E6kZj6vybQJh_VzJs/s1600/arduinoide.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="216" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqlLwl4tvOzRd0LxRXzPL0huTDDkCADm7AyUP4VhFySEV8UuK6m4ilQvsxHVpmop07nKX1Kmd67-oke_3L7eOLagQBRsXsBVvWNZU4bjutlyOyc-E99ZsZVT_Jr_E6kZj6vybQJh_VzJs/s320/arduinoide.jpg" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<h3 style="clear: both; text-align: left;">
Videre læring</h3>
<div>
<br />
<ul>
<li><a href="https://github.com/nodemcu/nodemcu-firmware/wiki/nodemcu_api_en" target="_blank">Github / NodeMCU funksjonsdokumentasjon</a></li>
<li><a href="http://www.lua.org/" target="_blank">LUA dokumentasjon på programmeringsspråket</a></li>
</ul>
</div>
Olav Alexander Mjeldehttp://www.blogger.com/profile/03340652303841762228noreply@blogger.com0tag:blogger.com,1999:blog-185064607024105803.post-66023213417160242472015-11-04T19:14:00.000+01:002015-11-04T19:14:02.597+01:00Hardwarefest!Selv om jeg er glad i å programmere i mykvare, er det alltid morsomt med harde pakker. I dag fikk jeg flere hardware-pakker i posten! Jeg lar dette bli et innlegg hvor jeg viser de uten alt for mye tekst.<br /><br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhLi6ONdtgubMHuTyDWExGGw4acfyQ_UfCVdmQzAb918lung3bPfLtbsW6uSYKwefxmoYi9NtFVzPHF3heK1X5W9Ixt_ouBe96c1TSbdQp1jfB4Aa4vAOo2cvNYj_5RJl5-WFoKLRBOWQ/s1600/dht22.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="212" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhLi6ONdtgubMHuTyDWExGGw4acfyQ_UfCVdmQzAb918lung3bPfLtbsW6uSYKwefxmoYi9NtFVzPHF3heK1X5W9Ixt_ouBe96c1TSbdQp1jfB4Aa4vAOo2cvNYj_5RJl5-WFoKLRBOWQ/s320/dht22.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">DHT22 er en fukt og temperatursensor, denne er noe bedre enn<br />DHT11 som jeg har flere av allerede.</td></tr>
</tbody></table>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9jrbeoU37SOsmxovMH69ScmtEIXGUENx5vj0K-HKehinSN08wFMcCwXcJ7wBajy182eX-BnFD74ckh0Q8KZM6V4jvlK9Wmlj4QnCIiHEs6xDYvcilnSyjaksHMG47kXWwgGLOx01_kao/s1600/lyssensor.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9jrbeoU37SOsmxovMH69ScmtEIXGUENx5vj0K-HKehinSN08wFMcCwXcJ7wBajy182eX-BnFD74ckh0Q8KZM6V4jvlK9Wmlj4QnCIiHEs6xDYvcilnSyjaksHMG47kXWwgGLOx01_kao/s320/lyssensor.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Dette er en bevegelsessensor som jeg skal leke med</td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixEMKM5TGj50A1ezv6T6J1QJZZTGNwsBzFgqvoXOsjZoI4UIceu4M8KeE_CeuOtk7t0Gwt1KC1QueGdQp_61dRZY2oTKZBAIWz2jX9BB3ocb__PNmghWp8d1fOytknx1xXJjUnjgHJj6U/s1600/nodemcu.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="212" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixEMKM5TGj50A1ezv6T6J1QJZZTGNwsBzFgqvoXOsjZoI4UIceu4M8KeE_CeuOtk7t0Gwt1KC1QueGdQp_61dRZY2oTKZBAIWz2jX9BB3ocb__PNmghWp8d1fOytknx1xXJjUnjgHJj6U/s320/nodemcu.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">NodeMCU (ESP8266) er en mikrokontroller med innebygd<br />WiFi, det gir en fin IoT (Internet Of Things) enhet. Den er også<br /><a href="https://github.com/esp8266/Arduino" target="_blank">kompatibel med Arduino</a></td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgcIhinlDpgKur59-XVUxUgAqpv1EI78WJxJNjdyRFG5HnvDy86dJVhopZDZsXhu5eBvPf9g3oeHHq3VVvhHBXB0C98kV8OgR0UcPYIUCwzQpE39LToKotrbVhgD-LYZfTcPMRhIbL7Rc/s1600/promicro.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="212" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgcIhinlDpgKur59-XVUxUgAqpv1EI78WJxJNjdyRFG5HnvDy86dJVhopZDZsXhu5eBvPf9g3oeHHq3VVvhHBXB0C98kV8OgR0UcPYIUCwzQpE39LToKotrbVhgD-LYZfTcPMRhIbL7Rc/s320/promicro.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Arduino Pro Micro, det er min minste Arduino hittil.<br />Det skal bli morsomt å lodde på de headerne :-)<br />Ble litt overrasket over hvor mye mindre den er enn Nano V3.</td></tr>
</tbody></table>
<br /><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4hbwpyrE7ojnGLp31dBkecQs7WNawcs6MsDb-OstBLCQZ6xmzOum0mfpqAVxmXHB8RsokfoHgnM6L6QeskfMy7_jhABufavQBd7TD1AST7Ee-9QIFeC-ls4N_8E0U4t5tb-ZKsssEbSY/s1600/forsidekort.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="212" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4hbwpyrE7ojnGLp31dBkecQs7WNawcs6MsDb-OstBLCQZ6xmzOum0mfpqAVxmXHB8RsokfoHgnM6L6QeskfMy7_jhABufavQBd7TD1AST7Ee-9QIFeC-ls4N_8E0U4t5tb-ZKsssEbSY/s320/forsidekort.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Utviklingskort for ESP8266, gjør det enklere å koble på sensorer.</td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3p-kcbX3Nrjg1VNUSuadWRSPkgCtVmQtovf1HXY2bodpkASN17BDJ0n4bBE3b1YtBBACXSJPUgCAP3O1-W67GsEcG_AUh4_abVTKT_fsImbiVs_q1o7wV_VtAtCYUQ4HSbykgphsVX8U/s1600/bakside_kort.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="212" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3p-kcbX3Nrjg1VNUSuadWRSPkgCtVmQtovf1HXY2bodpkASN17BDJ0n4bBE3b1YtBBACXSJPUgCAP3O1-W67GsEcG_AUh4_abVTKT_fsImbiVs_q1o7wV_VtAtCYUQ4HSbykgphsVX8U/s320/bakside_kort.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Bakside av utviklingskort for ESP8266, glemte å tenke på<br />at jeg må ha en strømforsyning på minst 6V :-P<br />Må se om den kan mates med 5V via headers.</td></tr>
</tbody></table>
<br />Olav Alexander Mjeldehttp://www.blogger.com/profile/03340652303841762228noreply@blogger.com0